920MHz wireless module 'FEP' Library

Dependents:   CompactController_2017 quadOmni_yanagi NHK2017_octopus NHK2017_octopus2 ... more

Revision:
4:7259654e8082
Parent:
1:c5cf36bf2e3b
Child:
5:9f7d2ba5e188
--- a/FEP.cpp	Sun Feb 26 06:54:46 2017 +0000
+++ b/FEP.cpp	Fri Jul 14 09:20:10 2017 +0000
@@ -54,8 +54,13 @@
     return FEP_NO_RESPONSE;
 }
 
-uint8_t FEP::write_txt(char _data[],uint8_t _addr){
-    serial.printf("@TXT%03uA%sB\r\n",_addr,_data);
+uint8_t FEP::write_txt(char _data[],uint8_t _addr,uint8_t len){
+//    serial.printf("@TXT%03uA%sB\r\n",_addr,_data);
+    serial.printf("@TXT%03uG",_addr);
+    for(int i = 0;i<len;i++) {
+        serial.printf("%02x",_data[i]);
+    }
+    serial.printf("H\r\n");
     return FEP::getResponse();
 }
 
@@ -93,7 +98,7 @@
     return _intensity;
 }
 
-uint8_t FEP::read_txt(char _newdata[])
+uint8_t FEP::read_txt(char *str,uint8_t len)
 {
     uint16_t i,n,m,k;
     char raw_data[256];
@@ -116,10 +121,8 @@
                             intensity_c[1]=raw_data[n+7];
                             intensity_c[2]=raw_data[n+8];
                             _intensity=abs(atoi(intensity_c));
-                            if(data[0]=='A' && data[n-1]=='B') {
-                                for(m=0;m<(n-2);m++){
-                                    _newdata[m]=data[m+1];
-                                }
+                            if(data[0]=='G' && data[n-1]=='H') {
+                                FEP::hex2dec(data,str,len);
                                 return FEP_RX_SUCCESS;
                             } else {
                                 return FEP_RX_FAIL;
@@ -139,3 +142,13 @@
     }
     return FEP_NO_RESPONSE;
 }
+
+void FEP::hex2dec(char data[],char *str,uint8_t len) {
+    char *endptr;
+    char buf[2];
+    for(int i = 0;i < len*2;i+=2) {
+        buf[0] = data[1+i];
+        buf[1] = data[1+i+1];
+        str[i/2] = (char)strtol(buf, &endptr, 16);
+    }
+}