При помощи подачи AT-команд из Atmega16 конфигурирую GSM модуль от Siemens.
Модуль мне отвечает OK , Error, ^Sysstart и т.д.
Ответ модуля может иметь разную длину, как мне узнать когда он заканчивается т.е. сколько байт считывать?
Например, на подачу команды AT модуль отвечает OK, если посмотреть в ASCII дестичный код, то будет 13,10,79,75 (13-перевод курсора в начало строки, 10-переход на новую линию)
Непонятно сколько мне байт считывать?
*antzol*
May 28 2008, 22:39
А у модуля эхо случайно не включено? Возможно символы <CR><LF> перед OK это остатки возвращенной модулем вашей команды. Поэтому эхо наверно лучше выключить.
А об окончании ответа модуля можно узнавать по символу CR, идущему в конце ответа, например, ERROR<CR><LF>.
Цитата(man1 @ May 29 2008, 00:11)

Ответ модуля может иметь разную длину, как мне узнать когда он заканчивается т.е. сколько байт считывать?
Обычно, ответ модуля имеет вид:
<CR><LF><response><CR><LF>
т.е. если перед
<CR><LF> ничего нет, то пропустить <CR><LF>, если - что-то есть, то это "что-то" ответ модуля, а <CR><LF> и будет признаком окончания ответа.