// DataRecipient.h: interface for the CDataRecipient class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DATARECIPIENT_H__E99E37E0_139E_420B_867A_7C8D15C1C773__INCLUDED_)
#define AFX_DATARECIPIENT_H__E99E37E0_139E_420B_867A_7C8D15C1C773__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "remote/ModemMessage.h"

class CDataRecipient  
{
public:

	// Public sets
	virtual void setConnected(bool value) {};
	virtual void setWaterAlarm(int number, bool value) {};
	virtual void setCircuit(int number, bool value) {};
	virtual void setServerAlarm(int number, bool value) {};
	virtual void setTemperature(int number, double value) {};
	virtual void setTailcone(double rpm, double elevator, double rudder) {};
	virtual void setTailconeRaw(short propeller, short elevator,short rudder,short throttle) {};
	virtual void setAttitude(double roll, double pitch, double yaw, double rollRate,
		double pitchRate, double yawRate) {};
	virtual void setDepthSensor(double depth, double temperature, double pressure) {};
	virtual void setSpeed(double speed) {};
	virtual void setAltitude(double altitude) {};
	virtual void setDepth(double depth) {};
	virtual void setAttitude(double pitch, double roll) {};
	virtual void setHeading(double heading) {};
	virtual void setPosition(double latitude, double longitude) {};
	virtual void setDevice(int number, const char *name, int circuit) {};
	virtual void setCircuitCurrent(int number, double value) {};
	virtual void setGroundFaultCurrent(int number, double value) {};
	virtual void setDropWeightStatus(bool descend, bool ascend, bool emer) {};
	virtual void setBatteryGlobal(double voltage, double amps, double capacity, short errorLevel,
		int numBatteries, int numOn, int numAlive) {};
	virtual void setBatteryInfo(int num, double voltage, double amps, double minV, 
		double maxV, double temp, double capacity, char state, char errorState, int comms,
		int errorLevel) {};
	virtual void setDvl(double vx, double vy, double vz, double range) {};
	virtual void setDvlBeamVelocities(double v1, double v2, double v3, double v4) {};
	virtual void setDvlBeamRanges(double r1, double r2, double r3, double r4) {};
	virtual void setDvlAttTemp(double roll, double pitch, double yaw, double temp) {};
	virtual void setHoming(double azimuth, double rangeRate) {};
	virtual void setGps(double latitude, double longitude, bool differential,
		int numSatellites, double hdop, int updateTime) {};
	virtual void setNmeaPos(char* str) {};
	virtual void setMissionTime(int time) {};
	virtual void setCurrentBehavior(int curS, int curB, int misRunning) {};
	virtual void setOas(double rawRange, double meanRange, double maxRange) {};
	virtual void setSvs(double rawTOF, double speedM, double speedMm) {};
	virtual void setCircuitInfo(int circNum, const char* name) {};
	virtual void gotMessage(const ModemMessage* pMM) {};
	virtual void sentMessage(const ModemMessage* pMM) {};
	virtual void setLn250(int ln250type, float sysTime, char valid, float lat, float lon, float alt, float nvel,
						  float evel, float vvel, float biasX, float biasY, float pitch, float roll, float yaw,
						  float pRate, float rRate, float yRate, short mode, short type){};
	virtual void setDriverStatus(char *name, int status) {};
	virtual void setAttributeAck(bool type, bool success, short state, short priority, char* name) {};
	virtual void setLogDirName(CString str) {};
	virtual void setControlExecute(CString str) {};

	virtual CString myIdent(void) {
		CString r = "not_defined";
		return r;
	};
};

#endif // !defined(AFX_DATARECIPIENT_H__E99E37E0_139E_420B_867A_7C8D15C1C773__INCLUDED_)
