SIM900 раз в минуту делает HTTP GET запрос. Все работает в целом хорошо, но иногда возникает сбой, начинающийся с ответа на HTTPACTION с кодом 604 и далее на все команды идет ответ CME ERROR 3 (operation not allowed). CME ERROR 3 может продолжаться долго.
Код ответа 604 на HTTPACTION означает Stack busy. Как это трактовать и как поступать в этом случае?
Почему после 604 входит в ступор и выдает CME ERROR 3, пока не оклимается?
SIM900 R11.0, 1137B03SIM900R64_ST_ENHANCE_E. Привожу лог взаимодействия.
Нормальный запрос:
Код
10.10.15 04:01:13, httpGet...
10.10.15 04:01:14, "+HTTPINIT"...
10.10.15 04:01:14, OK: "OK" (107 msec)
10.10.15 04:01:14, "+HTTPPARA="CID",1"...
10.10.15 04:01:14, OK: "OK" (106 msec)
10.10.15 04:01:14, "+HTTPPARA="URL","http://www...""...
10.10.15 04:01:14, OK: "OK" (117 msec)
10.10.15 04:01:14, httpAction...
10.10.15 04:01:14, "+HTTPACTION=0"...
10.10.15 04:01:16, OK: "+HTTPACTION:0,200,85" (1607 msec)
10.10.15 04:01:16, OK: httpAction = 1 (1620 msec)
10.10.15 04:01:16, httpRead(expectedDataLen = 85)...
10.10.15 04:01:16, OK: (107 msec)
10.10.15 04:01:16, "+HTTPTERM"...
10.10.15 04:01:16, OK: "OK" (106 msec)
10.10.15 04:01:16, OK: httpGet done (3110 msec)
Сбойный запрос:
Код
10.10.15 04:02:16, httpGet...
10.10.15 04:02:17, "+HTTPINIT"...
10.10.15 04:02:17, OK: "OK" (107 msec)
10.10.15 04:02:17, "+HTTPPARA="CID",1"...
10.10.15 04:02:17, OK: "OK" (107 msec)
10.10.15 04:02:17, "+HTTPPARA="URL","http://www...""...
10.10.15 04:02:17, OK: "OK" (110 msec)
10.10.15 04:02:18, httpAction...
10.10.15 04:02:18, "+HTTPACTION=0"...
10.10.15 04:02:28, ERR: NO_RESPONSE, "+HTTPACTION:0," not found (10107 msec)
10.10.15 04:02:29, "+HTTPACTION=0"...
10.10.15 04:02:29, OK: "+HTTPACTION:0,604,0" (108 msec)
10.10.15 04:02:29, ERR: httpCode = 604
10.10.15 04:02:29, ERR: httpAction = 0 (11242 msec)
10.10.15 04:02:29, "+HTTPTERM"...
10.10.15 04:02:29, ERR: CME_ERROR: "+CME ERROR: operation not allowed" (107 msec)
10.10.15 04:02:29, ERR: httpGet failed (12615 msec)
После сбойного далее может идти долго ответ CME_ERROR 3 на все команды:
Код
10.10.15 04:02:32, httpGet...
10.10.15 04:02:33, "+HTTPINIT"...
10.10.15 04:02:33, ERR: CME_ERROR: "+CME ERROR: operation not allowed" (106 msec)
10.10.15 04:02:33, "+HTTPTERM"...
10.10.15 04:02:34, ERR: CME_ERROR: "+CME ERROR: operation not allowed" (107 msec)
10.10.15 04:02:35, "+HTTPINIT"...
10.10.15 04:02:35, ERR: CME_ERROR: "+CME ERROR: operation not allowed" (106 msec)
10.10.15 04:02:35, "+HTTPTERM"...
10.10.15 04:02:35, ERR: CME_ERROR: "+CME ERROR: operation not allowed" (106 msec)
10.10.15 04:02:36, "+HTTPINIT"...
10.10.15 04:02:36, ERR: CME_ERROR: "+CME ERROR: operation not allowed" (106 msec)
10.10.15 04:02:36, "+HTTPTERM"...
10.10.15 04:02:36, ERR: CME_ERROR: "+CME ERROR: operation not allowed" (106 msec)
10.10.15 04:02:36, ERR: httpGet failed (4423 msec)
Но этот случай оказался легким, на следующем цикле все восстановилось:
Код
10.10.15 04:02:39, httpGet...
10.10.15 04:02:40, "+HTTPINIT"...
10.10.15 04:02:41, ERR: CME_ERROR: "+CME ERROR: operation not allowed" (106 msec)
10.10.15 04:02:41, "+HTTPTERM"...
10.10.15 04:02:41, OK: "OK" (106 msec)
10.10.15 04:02:42, "+HTTPINIT"...
10.10.15 04:02:42, OK: "OK" (106 msec)
...
Сообщение отредактировал turnon - Oct 11 2015, 09:16