По команде Связь между Verifone Nurit8320 и внешним модемом Siemens MC55

Я общаюсь с сервером Verifone Nurit8320(DTE) через GSM модем siemens MC55 (DCE). Я передаю AT-команды через UART, чтобы дать команды модему siemens MC55 gsm (DCE).

Я дал задержку в 100 мс (обязательно) между каждой AT-командой, и я очищаю UART от DTE перед отправкой какой-либо команды.

Теперь проблема заключается в следующем

Во многих случаях DCE отвечает ответом ранее выполненной AT-команды. DCE UART никогда не очищается.

Где я могу получить набор AT-команд, чтобы очистить буфер UART DCE?

1 ответ

Решение

Проблема, которую вы пытаетесь решить (очистка DCE UART), - это неправильная проблема, на которой нужно сосредоточиться, потому что это проблема, которой нет в передаче команд AT.

После отправки AT-команды в DCE вы ДОЛЖНЫ прочитать каждый отдельный символ, отправленный обратно в качестве ответа от DCE, и анализировать текст, пока не получите код окончательного результата (например, OK, ERROR и еще несколько), прежде чем вы сможете отправить следующую команду AT. Любой другой способ обречен внести бесконечный список проблем и никогда, никогда, никогда не будет работать надежно.

Посмотрите этот ответ для общего описания того, как должна выглядеть отправка / анализ вашей AT-команды. Использование фиксированной задержки никогда не должно быть сделано; он либо прервет выполнение команды, либо, в лучшем случае, потратит время, ожидая излишне долгое время, не устраняя при этом риск прерывания, несмотря на ожидание. Посмотрите этот ответ для получения дополнительной информации об абортах AT-команд.

Другие вопросы по тегам