AT Parser and bufferedSerial based SPWF library
Dependencies: ATParser
Dependents: X_NUCLEO_IDW01M1v2
Fork of SPWF01SA by
Revision 19:df8d7f70a740, committed 2016-09-21
- Comitter:
- mansiag
- Date:
- Wed Sep 21 10:22:40 2016 +0000
- Parent:
- 18:fd46c2ca8eb7
- Child:
- 20:01031cd39e73
- Commit message:
- modified recv() function
Changed in this revision
| SPWFSA01.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- 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)
{
