A simple project for sending button input up to AT&T Flow
Dependencies: FXOS8700CQ MODSERIAL mbed
For instructions on using this program, see the AT&T Starter Kit tutorial on it.
Diff: main.cpp
- Revision:
- 1:af7a42f7d465
- Parent:
- 0:9d5134074d84
- Child:
- 2:0e2ef866af95
diff -r 9d5134074d84 -r af7a42f7d465 main.cpp --- a/main.cpp Fri Jul 08 23:52:38 2016 +0000 +++ b/main.cpp Sat Jul 09 00:45:53 2016 +0000 @@ -63,10 +63,12 @@ // int DecodeASCIIstr(string& ins, string& outs) { int val, n = 0; - char ts[2]; + char ts[] = {0,0,0}; while(n<ins.length()) { - val = atoi((const char*)ins[n])*16+atoi((const char*)ins[n+1]); + ts[0] = ins[n]; + ts[1] = ins[n+1]; + sscanf(ts,"%X",&val); sprintf(ts,"%c",val); outs.append(ts); n += 2; @@ -85,19 +87,19 @@ // will only accept up to 1500 characters, and the converted srings will be 2x the // input string since the hex representation of 1 character is a two digit hex value. // -int CreateASCIIstr(string& in, string& out) { +int CreateASCIIstr(string& ins, string& outs) { int i = 0; char ts[3]; - - if( in.length() > 749 ) + + if( ins.length() > 749 ) return 0; - while(in[i] != 0x00) { - sprintf(ts,"%02X", in[i]); - out.append(ts); + while(ins[i] != 0x00) { + sprintf(ts,"%02X", ins[i]); + outs.append(ts); i++; } - return out.length(); + return outs.length(); } @@ -220,7 +222,7 @@ void hts221_init(void); - pc.printf(BLU "Hello World from AT&T Shape!\r\n"); + pc.printf(BLU "Hello World from AT&T Shape!\r\n\n\r"); pc.printf(GRN "Initialize the HTS221\n\r"); i = hts221.begin(); @@ -231,6 +233,15 @@ printf("Temp is: %0.2f F \n\r",CTOF(hts221.readTemperature())); printf("Humid is: %02d %%\n\r",hts221.readHumidity()); + + string newstr, outstr, instr = "0123456789aAbBcCdDeEfFxXyYzZ"; + pc.printf("\n\rTest ASCII String creation: \n\r"); + i = CreateASCIIstr(instr,outstr); + pc.printf(">Initially the string is '%s' (%d long)\n\r>after encode it is '%s' (%d characters long).\n\r", + instr.c_str(),instr.length(),outstr.c_str(),i); + i = DecodeASCIIstr(outstr, newstr); + pc.printf(">after decoding the encoded string, it is '%s' (%d long)\n\r\n\r",newstr.c_str(),i); + // Initialize the modem printf(GRN "Modem initializing... will take up to 60 seconds" DEF "\r\n");