fk0, легенда (05.12.2012 12:18, просмотров: 258) ответил MegaJohn на для CSTT и прочие GPRSные команды какие таймауты ставить ?
Практически самую большую задержку вызывают команды работающие с SIM-картой которая не работает сама и команды отправки SMS в ситуации, когда SMS не отправляется. В последнем случае и 90 секунд может быть мало. Практически -- 60 на всё более чем достаточно. Далее следует "AT\r" (SIMCOM умеет "забывать" послать ERROR или OK). Если через пару секунд OK нет -- завис, выключай питание. Иначе на предыдущую команду возвращается ошибка "нет ответа". Таймаут на конкретную команду -- это сложно, их же можно с десяток в одну строку. И приходится -- для тех, у которых нет (см V.250) конечного ответа (OK, ERROR, NO CARRIER, CONNECT и т.п.) дополнять их хоть бы любой пустой, чтоб получить тот же OK (я тебе на электрониксе про GPRS'ные пример давал). Вообще в V.250 предусмотрено, что можно прервать команду. Но SIMCOM увы и тут как всегда. Кстати длительная отправка SMS -- ещё одна причина для CMUX. По-уму где-то 3 канала нужно: SMS, GPRS (хоть PPP, хоть функции встроенного стека, и всё остальное. Ещё одно преимущество CMUX -- SIMCOM умеет втихую перезапускаться, когда внутри у него ошибки. Это очень подлая функция: программа об этом не знает, настройки модема изменяются и работает что-нибудь потом не так. С CMUX это решается просто: там связь рвётся сразу при таком перезапуске и всё очевидно дальше.
[ZX]