Publish for the JRO Radar Controller.
Fork of jro by
JroIpdata.h@4:de495ce256b8, 2015-02-10 (annotated)
- Committer:
- miguelcordero191
- Date:
- Tue Feb 10 14:28:42 2015 +0000
- Revision:
- 4:de495ce256b8
- Parent:
- 2:3d8d52e9751c
- Child:
- 5:6500be930b36
Some features were added to library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
miguelcordero191 | 4:de495ce256b8 | 1 | #ifndef JRO_IPDATA |
miguelcordero191 | 4:de495ce256b8 | 2 | #define JRO_IPDATA |
miguelcordero191 | 4:de495ce256b8 | 3 | |
miguelcordero191 | 0:b444ea725ba7 | 4 | #include "mbed.h" |
miguelcordero191 | 1:7c424a3e12ea | 5 | |
miguelcordero191 | 1:7c424a3e12ea | 6 | #define HEADER "$JRO$" |
miguelcordero191 | 1:7c424a3e12ea | 7 | #define ID_CLASS 2 |
miguelcordero191 | 1:7c424a3e12ea | 8 | #define ID_DEV 1 |
miguelcordero191 | 1:7c424a3e12ea | 9 | |
miguelcordero191 | 4:de495ce256b8 | 10 | #define NI_PAYLOAD "NI" |
miguelcordero191 | 4:de495ce256b8 | 11 | #define NI_LEN 2 |
miguelcordero191 | 4:de495ce256b8 | 12 | |
miguelcordero191 | 1:7c424a3e12ea | 13 | /* |
miguelcordero191 | 1:7c424a3e12ea | 14 | IP DATA STRUCTURE |
miguelcordero191 | 1:7c424a3e12ea | 15 | |
miguelcordero191 | 2:3d8d52e9751c | 16 | 5B 4B 1B 1B 2B NB 1B |
miguelcordero191 | 1:7c424a3e12ea | 17 | CAB LEN ID_CLASS ID_DEV CMD PAYLOAD XOR |
miguelcordero191 | 1:7c424a3e12ea | 18 | |
miguelcordero191 | 1:7c424a3e12ea | 19 | ID_CLASS: Identifica la clase de dispositivo a programar |
miguelcordero191 | 1:7c424a3e12ea | 20 | |
miguelcordero191 | 1:7c424a3e12ea | 21 | 1 -> CR |
miguelcordero191 | 1:7c424a3e12ea | 22 | 2 -> DDS |
miguelcordero191 | 1:7c424a3e12ea | 23 | 3 -> JARS |
miguelcordero191 | 1:7c424a3e12ea | 24 | 4 -> USRP |
miguelcordero191 | 1:7c424a3e12ea | 25 | 5 -> ECHOTEK |
miguelcordero191 | 1:7c424a3e12ea | 26 | 6 -> ABS |
miguelcordero191 | 1:7c424a3e12ea | 27 | 7 -> CLK_GEN |
miguelcordero191 | 1:7c424a3e12ea | 28 | |
miguelcordero191 | 1:7c424a3e12ea | 29 | ID_DEV: Identifica el id del dispositivo a programar |
miguelcordero191 | 1:7c424a3e12ea | 30 | |
miguelcordero191 | 1:7c424a3e12ea | 31 | Desde el 1-255, el 0 es usado como broadcast. |
miguelcordero191 | 1:7c424a3e12ea | 32 | |
miguelcordero191 | 1:7c424a3e12ea | 33 | CMD: Identifica el comando enviado que define la operacion a realizar |
miguelcordero191 | 1:7c424a3e12ea | 34 | |
miguelcordero191 | 1:7c424a3e12ea | 35 | 1 -> RESET |
miguelcordero191 | 1:7c424a3e12ea | 36 | 2 -> DEV. ENABLE |
miguelcordero191 | 1:7c424a3e12ea | 37 | 3 -> CONFIG |
miguelcordero191 | 1:7c424a3e12ea | 38 | 4 -> |
miguelcordero191 | 1:7c424a3e12ea | 39 | 5 -> |
miguelcordero191 | 1:7c424a3e12ea | 40 | |
miguelcordero191 | 1:7c424a3e12ea | 41 | */ |
miguelcordero191 | 0:b444ea725ba7 | 42 | |
miguelcordero191 | 0:b444ea725ba7 | 43 | class IpData{ |
miguelcordero191 | 0:b444ea725ba7 | 44 | |
miguelcordero191 | 0:b444ea725ba7 | 45 | private: |
miguelcordero191 | 0:b444ea725ba7 | 46 | |
miguelcordero191 | 1:7c424a3e12ea | 47 | char* rx_buff; |
miguelcordero191 | 1:7c424a3e12ea | 48 | |
miguelcordero191 | 0:b444ea725ba7 | 49 | char id_class; |
miguelcordero191 | 0:b444ea725ba7 | 50 | char id_dev; |
miguelcordero191 | 0:b444ea725ba7 | 51 | unsigned short cmd; |
miguelcordero191 | 0:b444ea725ba7 | 52 | char* payload; |
miguelcordero191 | 1:7c424a3e12ea | 53 | unsigned long len_payload; |
miguelcordero191 | 1:7c424a3e12ea | 54 | char xor_rd; |
miguelcordero191 | 0:b444ea725ba7 | 55 | |
miguelcordero191 | 1:7c424a3e12ea | 56 | char *tx_buff; |
miguelcordero191 | 1:7c424a3e12ea | 57 | unsigned long len_tx_data; |
miguelcordero191 | 1:7c424a3e12ea | 58 | unsigned long len_tx_buffer; |
miguelcordero191 | 1:7c424a3e12ea | 59 | |
miguelcordero191 | 1:7c424a3e12ea | 60 | bool isValidData; |
miguelcordero191 | 0:b444ea725ba7 | 61 | |
miguelcordero191 | 0:b444ea725ba7 | 62 | char* __findHeader(char* buffer); |
miguelcordero191 | 2:3d8d52e9751c | 63 | char __getXor(char* data, unsigned long len_data); |
miguelcordero191 | 2:3d8d52e9751c | 64 | int __verifyData(char* ip_data, unsigned long len_data); |
miguelcordero191 | 0:b444ea725ba7 | 65 | int __getParameters(); |
miguelcordero191 | 0:b444ea725ba7 | 66 | |
miguelcordero191 | 0:b444ea725ba7 | 67 | public: |
miguelcordero191 | 0:b444ea725ba7 | 68 | |
miguelcordero191 | 1:7c424a3e12ea | 69 | IpData(char* tx_buffer); |
miguelcordero191 | 1:7c424a3e12ea | 70 | char id; |
miguelcordero191 | 4:de495ce256b8 | 71 | char* encode( unsigned short cmd, const char* payload, unsigned long len_payload); |
miguelcordero191 | 2:3d8d52e9751c | 72 | int decode(char* buffer, unsigned long len_buffer); |
miguelcordero191 | 0:b444ea725ba7 | 73 | char getIdClass(); |
miguelcordero191 | 0:b444ea725ba7 | 74 | char getIdDevice(); |
miguelcordero191 | 1:7c424a3e12ea | 75 | unsigned short getCmd(); |
miguelcordero191 | 0:b444ea725ba7 | 76 | unsigned long getPayloadLen(); |
miguelcordero191 | 0:b444ea725ba7 | 77 | char* getPayload(); |
miguelcordero191 | 1:7c424a3e12ea | 78 | char* getTxData(); |
miguelcordero191 | 1:7c424a3e12ea | 79 | unsigned long getTxDataLen(); |
miguelcordero191 | 4:de495ce256b8 | 80 | char* getNIData(unsigned short cmd=0x0); |
miguelcordero191 | 4:de495ce256b8 | 81 | unsigned long getNIDataLen(); |
miguelcordero191 | 4:de495ce256b8 | 82 | }; |
miguelcordero191 | 0:b444ea725ba7 | 83 | |
miguelcordero191 | 4:de495ce256b8 | 84 | #endif |