> Как дожидаться результата операции?
- после посылки любой команды подразумевающей ответ устройства - необходимо переходить в режим ожидания ответа(подтверждения/ ошибки(
+...
), или приглашения (
>
)). Завершенная последовательность команд также подразумевает ожидания готовности к приему новых команд
OK
...
То есть - читаешь из порта пока не придет ответ(+, > , OK), только после этого посылаешь новую команду... Причем, согласитесь - на ответ
+<команда>
и
+CME/CMS ERROR: <err>
- дальнейшая последовательность действий должна несколько отличаться...
Если будет превышено время ожидания(скажем минут пять) - значит устройство "отвалилось" - переходишь в режим ожидания готовности устройства. Например можно с разумной периодичностью(не чаще двух секунд) посылать команду сброса ATZ - до тех пор пока устройство не скажет OK(я тута)... После чего заново выставляешь режимы устройства и переходишь в состояние работы...