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

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

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

MMDepthSensor::MMDepthSensor(float depth, float temperature, float pressure,
	int updateTime)
{
	setDepth(depth);
	setTemperature(temperature);
	setPressure(pressure);
	setUpdateTime(updateTime);
}

const char* MMDepthSensor::pcRead(const char* sourceBuffer)
{
	const char* pcEnd = ::pcRead(sourceBuffer, &m_depth);
	pcEnd = ::pcRead(pcEnd, &m_temperature);
	pcEnd = ::pcRead(pcEnd, &m_pressure);
	pcEnd = ::pcRead(pcEnd, &m_updateTime);
	return pcEnd;
}

char* MMDepthSensor::pcWrite(char* destBuffer) const
{
	char* pcEnd = ::pcWrite(destBuffer,m_depth);
	pcEnd = ::pcWrite(pcEnd,m_temperature);
	pcEnd = ::pcWrite(pcEnd,m_pressure);
	pcEnd = ::pcWrite(pcEnd,m_updateTime);
	return pcEnd;
}

void MMDepthSensor::toString(char* str)
{
	sprintf(str,"tMMDepthSensor: depth=%f, temp=%f, pressure=%f, time=%d",
		getDepth(), getTemperature(), getPressure(),getUpdateTime());
}
