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

Dependents:   JRO_DDSv2 JRO_DDSv2_rev2019

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?

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