920MHz wireless module 'FEP' Library
Dependents: CompactController_2017 quadOmni_yanagi NHK2017_octopus NHK2017_octopus2 ... more
Diff: FEP.cpp
- Revision:
- 4:7259654e8082
- Parent:
- 1:c5cf36bf2e3b
- Child:
- 5:9f7d2ba5e188
diff -r d9a5c56e34e5 -r 7259654e8082 FEP.cpp --- 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); + } +}