//=========================================================================
// Summary  :
// Filename : MMEnvironmental.h
// Author   : nf
// Project  :
// Revision : 1
// Created  : 2001/06/12
// Modified : 2001/06/12
//=========================================================================
// Description :  Depth sensor message
//=========================================================================
#ifndef _MMEnvironmental_H
#define _MMEnvironmental_H

#include "ModemMessage.h"
#include "MMUtils.h"

#define EnvironmentalMessageTimeOut 30

//////////////////////////////////////////////
class MMEnvironmental : public MMConvertible
{

public:
	MMEnvironmental(const ModemMessage *pMM);
	MMEnvironmental(short temperature, short humidity, float pressure, Boolean leak);

	virtual const char* pcRead(const char* sourceBuffer);
	virtual char* pcWrite(char* destBuffer) const;
	virtual ModemMessage::Type tGetMessageType() const
		{ return ModemMessage::tMMEnvironmental; };

	void setTemperature(short temperature)
		{ m_temperature = temperature; };
	void setHumidity(short humidity)
		{ m_humidity = humidity; };
	void setPressure(float pressure)
		{ m_pressure = pressure; };
	void setLeak(Boolean leak)
		{ m_leak = leak; };

	short getTemperature()
		{ return m_temperature; };
	short getHumidity()
		{ return m_humidity; };
	float getPressure()
		{ return m_pressure; };
	Boolean getLeak()
	    { return m_leak; };

	void toString(char* str);
	virtual int iGetDefaultTimeout() const { return EnvironmentalMessageTimeOut; };
	static int size() { return 5; };

protected:
	short m_temperature;
	short m_humidity;
	float m_pressure;
	Boolean m_leak;
};

#endif
