Library used to configure a AD9854 Libreria usada para comunicarse con el AD9854

Dependents:   JRO_DDSv2 JRO_DDSv2_rev2019

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?

UserRevisionLine numberNew 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