mirror of
https://github.com/KevinMidboe/TinyGSM.git
synced 2025-10-29 18:00:18 +00:00
Re-align Quectel 2G with manuals
This commit is contained in:
@@ -186,7 +186,7 @@ TINY_GSM_MODEM_SET_BAUD_IPR()
|
|||||||
|
|
||||||
TINY_GSM_MODEM_TEST_AT()
|
TINY_GSM_MODEM_TEST_AT()
|
||||||
|
|
||||||
TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS()
|
TINY_GSM_MODEM_MAINTAIN_LISTEN()
|
||||||
|
|
||||||
bool factoryDefault() {
|
bool factoryDefault() {
|
||||||
sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write
|
sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write
|
||||||
@@ -606,11 +606,21 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
size_t modemRead(size_t size, uint8_t mux) {
|
size_t modemRead(size_t size, uint8_t mux) {
|
||||||
sendAT(GF("+QIRD="), mux, ',', size);
|
// TODO: Does this work????
|
||||||
|
// AT+QIRD=<id>,<sc>,<sid>,<len>
|
||||||
|
// id = GPRS context number - 0, set in GPRS connect
|
||||||
|
// sc = roll in connection - 1, client of connection
|
||||||
|
// sid = index of connection - mux
|
||||||
|
// len = maximum length of data to send
|
||||||
|
sendAT(GF("+QIRD=0,1,"), mux, ',', size);
|
||||||
|
// sendAT(GF("+QIRD="), mux, ',', size);
|
||||||
if (waitResponse(GF("+QIRD:")) != 1) {
|
if (waitResponse(GF("+QIRD:")) != 1) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
size_t len = stream.readStringUntil('\n').toInt();
|
streamSkipUntil(':'); // skip IP address
|
||||||
|
streamSkipUntil(','); // skip port
|
||||||
|
streamSkipUntil(','); // skip connection type (TCP/UDP)
|
||||||
|
size_t len = stream.readStringUntil('\n').toInt(); // read length
|
||||||
sockets[mux]->sock_available = len;
|
sockets[mux]->sock_available = len;
|
||||||
|
|
||||||
for (size_t i=0; i<len; i++) {
|
for (size_t i=0; i<len; i++) {
|
||||||
@@ -618,27 +628,11 @@ protected:
|
|||||||
sockets[mux]->sock_available--;
|
sockets[mux]->sock_available--;
|
||||||
// ^^ One less character available after moving from modem's FIFO to our FIFO
|
// ^^ One less character available after moving from modem's FIFO to our FIFO
|
||||||
}
|
}
|
||||||
waitResponse();
|
waitResponse(); // ends with an OK
|
||||||
DBG("### READ:", len, "from", mux);
|
DBG("### READ:", len, "from", mux);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t modemGetAvailable(uint8_t mux) {
|
|
||||||
sendAT(GF("+QIRD="), mux, GF(",0"));
|
|
||||||
size_t result = 0;
|
|
||||||
if (waitResponse(GF("+QIRD:")) == 1) {
|
|
||||||
streamSkipUntil(','); // Skip total received
|
|
||||||
streamSkipUntil(','); // Skip have read
|
|
||||||
result = stream.readStringUntil('\n').toInt();
|
|
||||||
if (result) DBG("### DATA AVAILABLE:", result, "on", mux);
|
|
||||||
waitResponse();
|
|
||||||
}
|
|
||||||
if (!result) {
|
|
||||||
sockets[mux]->sock_connected = modemGetConnected(mux);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool modemGetConnected(uint8_t mux) {
|
bool modemGetConnected(uint8_t mux) {
|
||||||
sendAT(GF("+QISTATE=1,"), mux);
|
sendAT(GF("+QISTATE=1,"), mux);
|
||||||
//+QISTATE: 0,"TCP","151.139.237.11",80,5087,4,1,0,0,"uart1"
|
//+QISTATE: 0,"TCP","151.139.237.11",80,5087,4,1,0,0,"uart1"
|
||||||
@@ -702,7 +696,7 @@ TINY_GSM_MODEM_STREAM_UTILITIES()
|
|||||||
} else if (r5 && data.endsWith(r5)) {
|
} else if (r5 && data.endsWith(r5)) {
|
||||||
index = 5;
|
index = 5;
|
||||||
goto finish;
|
goto finish;
|
||||||
} else if (data.endsWith(GF(GSM_NL "+QIRD:"))) {
|
} else if (data.endsWith(GF(GSM_NL "+QIRD:"))) { // TODO: QIRD? or QIRDI?
|
||||||
streamSkipUntil(','); // Skip the context
|
streamSkipUntil(','); // Skip the context
|
||||||
streamSkipUntil(','); // Skip the role
|
streamSkipUntil(','); // Skip the role
|
||||||
int mux = stream.readStringUntil('\n').toInt();
|
int mux = stream.readStringUntil('\n').toInt();
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ TINY_GSM_MODEM_SET_BAUD_IPR()
|
|||||||
|
|
||||||
TINY_GSM_MODEM_TEST_AT()
|
TINY_GSM_MODEM_TEST_AT()
|
||||||
|
|
||||||
TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS()
|
TINY_GSM_MODEM_MAINTAIN_LISTEN()
|
||||||
|
|
||||||
bool factoryDefault() {
|
bool factoryDefault() {
|
||||||
sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write
|
sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write
|
||||||
@@ -613,11 +613,21 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
size_t modemRead(size_t size, uint8_t mux) {
|
size_t modemRead(size_t size, uint8_t mux) {
|
||||||
sendAT(GF("+QIRD="), mux, ',', size);
|
// TODO: Does this work????
|
||||||
|
// AT+QIRD=<id>,<sc>,<sid>,<len>
|
||||||
|
// id = GPRS context number - 0, set in GPRS connect
|
||||||
|
// sc = roll in connection - 1, client of connection
|
||||||
|
// sid = index of connection - mux
|
||||||
|
// len = maximum length of data to send
|
||||||
|
sendAT(GF("+QIRD=0,1,"), mux, ',', size);
|
||||||
|
// sendAT(GF("+QIRD="), mux, ',', size);
|
||||||
if (waitResponse(GF("+QIRD:")) != 1) {
|
if (waitResponse(GF("+QIRD:")) != 1) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
size_t len = stream.readStringUntil('\n').toInt();
|
streamSkipUntil(':'); // skip IP address
|
||||||
|
streamSkipUntil(','); // skip port
|
||||||
|
streamSkipUntil(','); // skip connection type (TCP/UDP)
|
||||||
|
size_t len = stream.readStringUntil('\n').toInt(); // read length
|
||||||
sockets[mux]->sock_available = len;
|
sockets[mux]->sock_available = len;
|
||||||
|
|
||||||
for (size_t i=0; i<len; i++) {
|
for (size_t i=0; i<len; i++) {
|
||||||
@@ -630,22 +640,6 @@ protected:
|
|||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t modemGetAvailable(uint8_t mux) {
|
|
||||||
sendAT(GF("+QIRD="), mux, GF(",0"));
|
|
||||||
size_t result = 0;
|
|
||||||
if (waitResponse(GF("+QIRD:")) == 1) {
|
|
||||||
streamSkipUntil(','); // Skip total received
|
|
||||||
streamSkipUntil(','); // Skip have read
|
|
||||||
result = stream.readStringUntil('\n').toInt();
|
|
||||||
if (result) DBG("### DATA AVAILABLE:", result, "on", mux);
|
|
||||||
waitResponse();
|
|
||||||
}
|
|
||||||
if (!result) {
|
|
||||||
sockets[mux]->sock_connected = modemGetConnected(mux);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool modemGetConnected(uint8_t mux) {
|
bool modemGetConnected(uint8_t mux) {
|
||||||
sendAT(GF("+QISTATE=1,"), mux);
|
sendAT(GF("+QISTATE=1,"), mux);
|
||||||
//+QISTATE: 0,"TCP","151.139.237.11",80,5087,4,1,0,0,"uart1"
|
//+QISTATE: 0,"TCP","151.139.237.11",80,5087,4,1,0,0,"uart1"
|
||||||
@@ -713,7 +707,7 @@ TINY_GSM_MODEM_STREAM_UTILITIES()
|
|||||||
} else if (r6 && data.endsWith(r6)) {
|
} else if (r6 && data.endsWith(r6)) {
|
||||||
index = 6;
|
index = 6;
|
||||||
goto finish;
|
goto finish;
|
||||||
} else if (data.endsWith(GF(GSM_NL "+QIRD:"))) {
|
} else if (data.endsWith(GF(GSM_NL "+QIRD:"))) { // TODO: QIRD? or QIRDI?
|
||||||
streamSkipUntil(','); // Skip the context
|
streamSkipUntil(','); // Skip the context
|
||||||
streamSkipUntil(','); // Skip the role
|
streamSkipUntil(','); // Skip the role
|
||||||
int mux = stream.readStringUntil('\n').toInt();
|
int mux = stream.readStringUntil('\n').toInt();
|
||||||
|
|||||||
Reference in New Issue
Block a user