This is boring
Diff: SPWFSA01.cpp
- Revision:
- 19:df8d7f70a740
- Parent:
- 18:fd46c2ca8eb7
- Child:
- 20:01031cd39e73
diff -r fd46c2ca8eb7 -r df8d7f70a740 SPWFSA01.cpp --- a/SPWFSA01.cpp Fri Sep 16 11:31:36 2016 +0000 +++ b/SPWFSA01.cpp Wed Sep 21 10:22:40 2016 +0000 @@ -283,6 +283,7 @@ return false; } +/* int32_t SPWFSA01::recv(int id, void *data, uint32_t amount) { uint32_t recv_amount; @@ -325,6 +326,31 @@ } return recv_amount; } +*/ + +int32_t SPWFSA01::recv(int id, void *data, uint32_t amount) +{ + uint32_t recv_amount=0; + + while(!recv_amount) { + if(!(_parser.send("AT+S.SOCKQ=%d", id) //send a query (will be required for secure sockets) + && _parser.recv(" DATALEN: %u", &recv_amount) + && _parser.recv("OK"))) { + return -2; + } + } + if(recv_amount > amount) + recv_amount = amount; + + _parser.flush(); + if(!(_parser.send("AT+S.SOCKR=%d,%d", id, recv_amount) + && (_parser.read((char*)data, recv_amount) >0) + && _parser.recv("OK"))) { + return -2; + } + + return recv_amount; +} bool SPWFSA01::close(int id) {