summaryrefslogtreecommitdiff
path: root/src/atcmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/atcmd.c')
-rw-r--r--src/atcmd.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/atcmd.c b/src/atcmd.c
index 76372d2..aad15e9 100644
--- a/src/atcmd.c
+++ b/src/atcmd.c
@@ -611,6 +611,21 @@ int atcmd_v_write(int fd, int mode)
return 0;
}
+int atcmd_q_write(int fd, int mode)
+{
+ char buf[ATCMD_LINE_SIZE];
+ int tmp;
+
+ atcmd_writeline(fd, "ATQ%d", mode);
+ tmp = atcmd_expect_line(fd, buf, sizeof(buf), "OK");
+ if (tmp <= 0) {
+ log_debug("expected OK but it was not received");
+ return -1;
+ }
+
+ return 0;
+}
+
int atcmd_plus_cmgf_write(int fd, int mode)
{
char buf[ATCMD_LINE_SIZE];
@@ -1099,6 +1114,11 @@ int atcmd_init(int fd, int read_timeout)
{
int tmp;
+ tmp = atcmd_q_write(fd, 0);
+ if (tmp < 0) {
+ return tmp;
+ }
+
tmp = atcmd_v_write(fd, 1);
if (tmp < 0) {
return tmp;