Доброго времени суток, уважаемые!
Сажусь писать программу под PIC18 для общения с SIM300DZ в составе модема GNS-300RS. В общих чертах всё понятно: отсылается строка, принимается и разбирается ответ. С отсылкой строк более-менее просто, например
putrsUSART ((const far rom char *)"AT+CSMINS?\r\n"); А вот с разбором строк и временем ожидания ответа от модема (в особенности при работе с GPRS) пока туго... хочется сделать нечто автоматизированное, чтобы был массив или структура с запросом, временем ожидания ответа, типовыми ответами и идентификаторами действий, связанных с теми или иными типами ответов. Мне это видится приблизительно так:
Код
struct GSM_Struct
{
char Send[XX];
unsigned int Timeout;
char Receive[YY];
unsigned char State[Z];
} GSM[NUMBER_OF_OPERATIONS];
Верно ли я подхожу к решению этой задачи? Может ли кто-нибудь поделиться мыслями на этот счёт? Кто как делает разбор приходящих строк? В особенности при работе с GPRS.
Ещё хотелось бы узнать, какие начальные настройки модема должны производиться при его первом запуске.
Добавлю ещё, что устройство, которое будет работать с модемом, призвано делать много чего ещё помимо общения с интернетом, причём это "много чего ещё" является более приоритетным. Логика работы такова, что даже при зависаниях связи/железа SIM300 (в перспективе SIM900) должны выполняться основные задачи.
Думаю, Ваши ответы очень помогут многим начинающим освоиться с темой. Спасибо всем! С уважением, Максим.