//=========================================================================
// Summary  :
// Filename : MMEnvironmental.cc
// Author   : nf
// Project  :
// Revision : 1
// Created  : 2001/06/12
// Modified : 2001/06/12
//=========================================================================
// Description :  Depth sensor message
//=========================================================================

#include <stdio.h>
#include "MMEnvironmental.h"

//////////////////////////////////////////////
//Position output message
MMEnvironmental::MMEnvironmental(const ModemMessage *pMM)
{
	Assert(pMM);
	Assert(pMM->getType()==tGetMessageType());
	const char* pcEnd = pcRead(pMM->getBuffer());
	Assert(pcEnd==pMM->getBuffer()+pMM->getBufferSize());
}

MMEnvironmental::MMEnvironmental(short temperature, short humidity, float pressure, 
	Boolean leak)
{
	setTemperature(temperature);
	setHumidity(humidity);
	setPressure(pressure);
	setLeak(leak);
}

const char* MMEnvironmental::pcRead(const char* sourceBuffer)
{
	const char* pcEnd = ::pcRead(sourceBuffer, &m_temperature);
	pcEnd = ::pcRead(pcEnd, &m_humidity);
	pcEnd = ::pcRead(pcEnd, &m_pressure);
	pcEnd = ::pcRead(pcEnd, &m_leak);
	return pcEnd;
}

char* MMEnvironmental::pcWrite(char* destBuffer) const
{
	char* pcEnd = ::pcWrite(destBuffer,m_temperature);
	pcEnd = ::pcWrite(pcEnd,m_humidity);
	pcEnd = ::pcWrite(pcEnd,m_pressure);
	pcEnd = ::pcWrite(pcEnd,m_leak);
	return pcEnd;
}

void MMEnvironmental::toString(char* str)
{
	sprintf(str,"tMMEnvironmental: temperature=%d, humidity=%d, pressure=%f, leak=%d",
		getTemperature(), getHumidity(), getPressure(),getLeak());
}
