"", // 7
"\"Voice\"", // SERVICE_VOICE
};
-const char* ClassModem::ATresponses[14] = {
+const char* ClassModem::ATresponses[15] = {
"Nothing", // AT_NOTHING
"OK", // AT_OK
"Connection established", // AT_CONNECT
"Command error", // AT_ERROR
"<Empty line>", // AT_EMPTYLINE
"<Timeout>", // AT_TIMEOUT
- "<xonxoff>", // AT_XONXOFF
+ "<dle+etx>", // AT_DLEETX
+ "<xon>", // AT_XON
"<Unknown response>" // AT_OTHER
};
const char* ClassModem::callTypes[5] = {
lastResponse = AT_RING;
break;
case '\020':
- if (streq(buf, "\020\003")) // DC1/DC3 (XON/XOFF)
- lastResponse = AT_XONXOFF;
+ if (streq(buf, "\020\003")) // DLE/ETX
+ lastResponse = AT_DLEETX;
+ break;
+ case '\021':
+ if (streq(buf, "\021")) // DC1 (XON)
+ lastResponse = AT_XON;
break;
}
}
AT_ERROR = 9, // "ERROR" response
AT_EMPTYLINE = 10, // empty line (0 characters received)
AT_TIMEOUT = 11, // timeout waiting for response
- AT_XONXOFF = 12, // xon/xoff characters
- AT_OTHER = 13 // unknown response (not one of above)
+ AT_DLEETX = 12, // dle/etx characters
+ AT_XON = 13, // xon character
+ AT_OTHER = 14 // unknown response (not one of above)
};
private:
ModemServer& server; // server for getting to device
static const char* serviceNames[9]; // class 2 services
static const char* callStatus[10]; // printable call status
- static const char* ATresponses[14];
+ static const char* ATresponses[15];
ClassModem(ModemServer&, const ModemConfig&);