00001 #ifndef TELEPATIPKG_H_DEF 00002 #define TELEPATIPKG_H_DEF 00003 00004 #include <OPENR/ODataFormats.h> 00005 #include <OPENR/OSyslog.h> 00006 00009 using namespace std; 00010 00014 enum pkg_type { 00015 DUMMY=0, 00016 INFO=1, 00017 HI=2, 00018 HIREPLY=3, 00019 BYE=4, 00020 ACK=5, 00021 DUMMYLED=6, 00022 COUNTER=7, 00023 LEADER=8, 00024 LEADERREPLY=9, 00025 COMMAND=10, 00026 TIMEINFO=11, 00027 OTHHEADREADY=12, 00028 OTHLEGSREADY=13, 00029 BREAKTHELINE=14 00030 }; 00031 00032 00048 class TelepatiPkg { 00049 public: 00051 TelepatiPkg(); 00056 TelepatiPkg(byte* ptr); 00057 00059 virtual ~TelepatiPkg() { 00060 delete [] message; 00061 }; 00062 00065 virtual inline void setAibo(int a) { aibo=a; return;}; 00068 virtual inline int getAibo() {return aibo;}; 00071 virtual inline pkg_type getType() { return type;}; 00076 virtual inline size_t getSize() { return size; }; 00079 virtual inline bool needConfirm() { return needAck; }; 00082 virtual inline unsigned short getSerial() { return serialNum; }; 00083 00090 virtual byte* getMsg() = 0; 00091 00096 virtual TelepatiPkg* clone() = 0; 00097 00102 byte* createStdHeader(size_t pkgDataSize); 00103 00110 static TelepatiPkg* createPkg(byte* ptr); 00111 00115 static size_t getSizeOfPkg(byte* ptr); 00116 00117 static const int ADDR_INVALID=254; 00118 static const int ADDR_BROADCAST=255; 00119 static const size_t STD_HEADER_SIZE = 7; 00121 protected: 00123 int aibo; 00125 pkg_type type; 00127 unsigned short size; 00129 bool needAck; 00131 unsigned short serialNum; 00133 byte* message; 00134 }; 00135 #endif 00136