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

Dependents:   JRO_DDSv2 JRO_DDSv2_rev2019

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();
     
 
 };