/users/dtb26/GITROOT/VetSim-Core/src/examples/Messages.hpp

00001 #include <messaging.h>
00002 
00003 #ifndef LATENCY_MESSAGES_H_
00004 #define LATENCY_MESSAGES_H_
00005 
00006 namespace Latency {
00007 
00008 class Command: public Message {
00009 public:
00010         Command();
00011         Command(Message * message);
00012 
00013         void setGroup(uint8_t groupid);
00014         uint8_t getGroup();
00015 
00016         void setAddress(uint8_t address);
00017         uint8_t getAddress();
00018 
00019         static uint8_t getType(Message * message);
00020 protected:
00021         Data field_data[5];
00022         uint8_t type;
00023         uint8_t param;
00024         uint8_t group;
00025         uint8_t address;
00026         uint16_t value;
00027 };
00028 
00029 namespace Commands {
00030 
00031 class Joinable: public Command {
00032 public:
00033         Joinable();
00034         Joinable(Message * msg);
00035 
00036         void setUniqueID(uint16_t uid);
00037         uint16_t getUniqueID();
00038 };
00039 
00040 class Join: public Joinable {
00041 public:
00042         Join();
00043         Join(Message * msg);
00044 };
00045 
00046 class JoinRequest: public Joinable {
00047 public:
00048         JoinRequest();
00049         JoinRequest(Message *);
00050 };
00051 
00052 class JoinAck: public Joinable {
00053 public:
00054         JoinAck();
00055         JoinAck(Message *);
00056 };
00057 
00058 class UpdateParam: public Command {
00059 public:
00060         UpdateParam();
00061         UpdateParam(Message *);
00062 
00063         void setParameter(uint8_t param);
00064         uint8_t getParameter();
00065 
00066         void setValue(uint16_t value);
00067         uint16_t getValue();
00068 };
00069 
00070 class StartExecution: public Command {
00071 public:
00072         StartExecution();
00073         StartExecution(Message *);
00074 };
00075 
00076 class StopExecutionRequest: public Command {
00077 public:
00078         StopExecutionRequest();
00079         StopExecutionRequest(Message *);
00080 };
00081 
00082 class StopExecution: public Command {
00083 public:
00084         StopExecution();
00085         StopExecution(Message *);
00086 };
00087 
00088 } // Command namespace
00089 
00090 class Payload: public Message {
00091 public:
00092         Payload();
00093         Payload(Message *);
00094 
00095         void setGroup(uint8_t groupid);
00096         uint8_t getGroup();
00097 
00098         void setAddress(uint8_t address);
00099         uint8_t getAddress();
00100 
00101         void setSendTime(int64_t time);
00102         int64_t getSendTime();
00103 
00104         void setPayloadLength(uint16_t length);
00105         uint16_t getPayloadLength();
00106 
00107         void setPayload(const void * payload);
00108         const void * getPayload();
00109 private:
00110         Data field_data[4];
00111         int64_t send_time;
00112         uint8_t group;
00113         uint8_t address;
00114 };
00115 
00116 class Report: public Message {
00117 public:
00118         Report();
00119         Report(Message *);
00120 
00121         void setGroup(uint8_t groupid);
00122         uint8_t getGroup();
00123 
00124         void setAddress(uint8_t address);
00125         uint8_t getAddress();
00126 
00127         void setLength(uint16_t length);
00128         uint16_t getLength();
00129 
00130         void setTxTimes(const int64_t * times);
00131         int64_t * getTxTimes();
00132 
00133         void setRxTimes(const int64_t * times);
00134         int64_t * getRxTimes();
00135 private:
00136         Data field_data[4];
00137         uint8_t group;
00138         uint8_t address;
00139         const int64_t * rx_times;
00140         const int64_t * tx_times;
00141 };
00142 
00143 } // Latency namespace
00144 
00145 #endif /* LATENCY_MESSAGES_H_ */

Generated on Thu Sep 27 11:11:48 2012 for VetSim by  doxygen 1.4.7