Library used to configure a AD9854 Libreria usada para comunicarse con el AD9854
Dependents: JRO_DDSv2 JRO_DDSv2_rev2019
JroIpdata.h@5:6500be930b36, 2015-02-23 (annotated)
- Committer:
- miguelcordero191
- Date:
- Mon Feb 23 20:36:23 2015 +0000
- Revision:
- 5:6500be930b36
- Parent:
- 4:de495ce256b8
- Child:
- 6:dd61acd77e2c
EthUtils module was added. Storing and reading ip address from internal flash.
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 | 5:6500be930b36 | 10 | #define OK_PAYLOAD "OK" |
miguelcordero191 | 5:6500be930b36 | 11 | #define OK_LEN 2 |
miguelcordero191 | 5:6500be930b36 | 12 | |
miguelcordero191 | 5:6500be930b36 | 13 | #define KO_PAYLOAD "KO" |
miguelcordero191 | 5:6500be930b36 | 14 | #define KO_LEN 2 |
miguelcordero191 | 5:6500be930b36 | 15 | |
miguelcordero191 | 4:de495ce256b8 | 16 | #define NI_PAYLOAD "NI" |
miguelcordero191 | 4:de495ce256b8 | 17 | #define NI_LEN 2 |
miguelcordero191 | 4:de495ce256b8 | 18 | |
miguelcordero191 | 1:7c424a3e12ea | 19 | /* |
miguelcordero191 | 1:7c424a3e12ea | 20 | IP DATA STRUCTURE |
miguelcordero191 | 1:7c424a3e12ea | 21 | |
miguelcordero191 | 2:3d8d52e9751c | 22 | 5B 4B 1B 1B 2B NB 1B |
miguelcordero191 | 1:7c424a3e12ea | 23 | CAB LEN ID_CLASS ID_DEV CMD PAYLOAD XOR |
miguelcordero191 | 1:7c424a3e12ea | 24 | |
miguelcordero191 | 1:7c424a3e12ea | 25 | ID_CLASS: Identifica la clase de dispositivo a programar |
miguelcordero191 | 1:7c424a3e12ea | 26 | |
miguelcordero191 | 1:7c424a3e12ea | 27 | 1 -> CR |
miguelcordero191 | 1:7c424a3e12ea | 28 | 2 -> DDS |
miguelcordero191 | 1:7c424a3e12ea | 29 | 3 -> JARS |
miguelcordero191 | 1:7c424a3e12ea | 30 | 4 -> USRP |
miguelcordero191 | 1:7c424a3e12ea | 31 | 5 -> ECHOTEK |
miguelcordero191 | 1:7c424a3e12ea | 32 | 6 -> ABS |
miguelcordero191 | 1:7c424a3e12ea | 33 | 7 -> CLK_GEN |
miguelcordero191 | 1:7c424a3e12ea | 34 | |
miguelcordero191 | 1:7c424a3e12ea | 35 | ID_DEV: Identifica el id del dispositivo a programar |
miguelcordero191 | 1:7c424a3e12ea | 36 | |
miguelcordero191 | 1:7c424a3e12ea | 37 | Desde el 1-255, el 0 es usado como broadcast. |
miguelcordero191 | 1:7c424a3e12ea | 38 | |
miguelcordero191 | 1:7c424a3e12ea | 39 | CMD: Identifica el comando enviado que define la operacion a realizar |
miguelcordero191 | 1:7c424a3e12ea | 40 | |
miguelcordero191 | 1:7c424a3e12ea | 41 | 1 -> RESET |
miguelcordero191 | 1:7c424a3e12ea | 42 | 2 -> DEV. ENABLE |
miguelcordero191 | 1:7c424a3e12ea | 43 | 3 -> CONFIG |
miguelcordero191 | 1:7c424a3e12ea | 44 | 4 -> |
miguelcordero191 | 1:7c424a3e12ea | 45 | 5 -> |
miguelcordero191 | 1:7c424a3e12ea | 46 | |
miguelcordero191 | 1:7c424a3e12ea | 47 | */ |
miguelcordero191 | 0:b444ea725ba7 | 48 | |
miguelcordero191 | 0:b444ea725ba7 | 49 | class IpData{ |
miguelcordero191 | 0:b444ea725ba7 | 50 | |
miguelcordero191 | 0:b444ea725ba7 | 51 | private: |
miguelcordero191 | 0:b444ea725ba7 | 52 | |
miguelcordero191 | 1:7c424a3e12ea | 53 | char* rx_buff; |
miguelcordero191 | 1:7c424a3e12ea | 54 | |
miguelcordero191 | 0:b444ea725ba7 | 55 | char id_class; |
miguelcordero191 | 0:b444ea725ba7 | 56 | char id_dev; |
miguelcordero191 | 0:b444ea725ba7 | 57 | unsigned short cmd; |
miguelcordero191 | 0:b444ea725ba7 | 58 | char* payload; |
miguelcordero191 | 1:7c424a3e12ea | 59 | unsigned long len_payload; |
miguelcordero191 | 1:7c424a3e12ea | 60 | char xor_rd; |
miguelcordero191 | 0:b444ea725ba7 | 61 | |
miguelcordero191 | 1:7c424a3e12ea | 62 | char *tx_buff; |
miguelcordero191 | 1:7c424a3e12ea | 63 | unsigned long len_tx_data; |
miguelcordero191 | 1:7c424a3e12ea | 64 | unsigned long len_tx_buffer; |
miguelcordero191 | 1:7c424a3e12ea | 65 | |
miguelcordero191 | 1:7c424a3e12ea | 66 | bool isValidData; |
miguelcordero191 | 0:b444ea725ba7 | 67 | |
miguelcordero191 | 0:b444ea725ba7 | 68 | char* __findHeader(char* buffer); |
miguelcordero191 | 2:3d8d52e9751c | 69 | char __getXor(char* data, unsigned long len_data); |
miguelcordero191 | 2:3d8d52e9751c | 70 | int __verifyData(char* ip_data, unsigned long len_data); |
miguelcordero191 | 0:b444ea725ba7 | 71 | int __getParameters(); |
miguelcordero191 | 0:b444ea725ba7 | 72 | |
miguelcordero191 | 0:b444ea725ba7 | 73 | public: |
miguelcordero191 | 0:b444ea725ba7 | 74 | |
miguelcordero191 | 1:7c424a3e12ea | 75 | IpData(char* tx_buffer); |
miguelcordero191 | 1:7c424a3e12ea | 76 | char id; |
miguelcordero191 | 4:de495ce256b8 | 77 | char* encode( unsigned short cmd, const char* payload, unsigned long len_payload); |
miguelcordero191 | 2:3d8d52e9751c | 78 | int decode(char* buffer, unsigned long len_buffer); |
miguelcordero191 | 0:b444ea725ba7 | 79 | char getIdClass(); |
miguelcordero191 | 0:b444ea725ba7 | 80 | char getIdDevice(); |
miguelcordero191 | 1:7c424a3e12ea | 81 | unsigned short getCmd(); |
miguelcordero191 | 0:b444ea725ba7 | 82 | unsigned long getPayloadLen(); |
miguelcordero191 | 0:b444ea725ba7 | 83 | char* getPayload(); |
miguelcordero191 | 1:7c424a3e12ea | 84 | char* getTxData(); |
miguelcordero191 | 1:7c424a3e12ea | 85 | unsigned long getTxDataLen(); |
miguelcordero191 | 4:de495ce256b8 | 86 | char* getNIData(unsigned short cmd=0x0); |
miguelcordero191 | 4:de495ce256b8 | 87 | unsigned long getNIDataLen(); |
miguelcordero191 | 5:6500be930b36 | 88 | char* getOKData(unsigned short cmd=0x0); |
miguelcordero191 | 5:6500be930b36 | 89 | unsigned long getOKDataLen(); |
miguelcordero191 | 5:6500be930b36 | 90 | char* getKOData(unsigned short cmd=0x0); |
miguelcordero191 | 5:6500be930b36 | 91 | unsigned long getKODataLen(); |
miguelcordero191 | 4:de495ce256b8 | 92 | }; |
miguelcordero191 | 0:b444ea725ba7 | 93 | |
miguelcordero191 | 4:de495ce256b8 | 94 | #endif |