Publish for the JRO Radar Controller.
Fork of jro by
Diff: ipserver.h
- Revision:
- 1:7c424a3e12ea
- Parent:
- 0:b444ea725ba7
--- a/ipserver.h Tue Dec 02 02:27:30 2014 +0000 +++ b/ipserver.h Thu Dec 04 14:35:52 2014 +0000 @@ -1,33 +1,76 @@ #include "mbed.h" -#define HEADER "$JRO$" + +#define HEADER "$JRO$" +#define ID_CLASS 2 +#define ID_DEV 1 + +/* +IP DATA STRUCTURE + +5B 3B 1B 1B 2B NB 1B +CAB LEN ID_CLASS ID_DEV CMD PAYLOAD XOR + +ID_CLASS: Identifica la clase de dispositivo a programar + + 1 -> CR + 2 -> DDS + 3 -> JARS + 4 -> USRP + 5 -> ECHOTEK + 6 -> ABS + 7 -> CLK_GEN + +ID_DEV: Identifica el id del dispositivo a programar + + Desde el 1-255, el 0 es usado como broadcast. + +CMD: Identifica el comando enviado que define la operacion a realizar + + 1 -> RESET + 2 -> DEV. ENABLE + 3 -> CONFIG + 4 -> + 5 -> + +*/ class IpData{ private: - char* buff; - unsigned long buffer_len; + char* rx_buff; + char id_class; char id_dev; unsigned short cmd; char* payload; - unsigned long payload_len; + unsigned long len_payload; + char xor_rd; - bool isData; + char *tx_buff; + unsigned long len_tx_data; + unsigned long len_tx_buffer; + + bool isValidData; char* __findHeader(char* buffer); - int __verifyData(char* ip_data, unsigned long len_data); + char __getXor( char* data, unsigned long len_data); + int __verifyData( char* ip_data, unsigned long len_data); int __getParameters(); public: - IpData(); - int setIpData(char* buffer, unsigned long len_buffer); + IpData(char* tx_buffer); + char id; + char* encode( unsigned short cmd, char* payload, unsigned long len_payload); + int decode( char* buffer, unsigned long len_buffer); char getIdClass(); char getIdDevice(); - char getIpCmd(); + unsigned short getCmd(); unsigned long getPayloadLen(); char* getPayload(); + char* getTxData(); + unsigned long getTxDataLen(); };