-
- а что не так с СМС? Отправка или получение? У меня получение -
AT+CMGL="ALL" (обычно идут по одной и ее потом сразу удаляю). Там в
теле ответа всё - дата, телефон, текст. И отправка. Кинул
AT+CMGS="+7913.....". Получил оттуда ">" - выдал текст (не
забыв в конце 0х1А). Ну и удалил - AT+CMGD=1,4. раньше я всё это
делал тупо по порядку. Сейчас в фоне основной программы по признаку
завершения посылки ответа. Здесь в отличии от работы с FTP или SMTP
всё гораздо проще. - Лaгyнoв(13.02.2023 16:49)
- А такой вопрос. RTOS или нет? - vesago(17.02.2023 17:43)
- Все разбираю построчно, по мере прилета строк из кольцевого буфера
в линейную строку. Прилетает СМС асинхронно "+CMTI: "SM",1"
разбираю и выбираю номер номер этой СМС (чтобы не читать все смс),
после этого читаю смс по ее номеру AT+CMGR=1\r, а это будет
эхо+преамбула+текст_смс + ОК. Итого 4 строки. У эха нет спереди
\r\n и в конце только \r без \n. Строку эхо - в игнор, разбираю
преамбулу на предмет номера телефона, с которого пришло смс, если
номер тот, ждем когда придет petrd(31 знак., 13.02.2023 18:58)
- ну если разбирать в куче СМС, то тогда да. Непонятно только зачем.
Пришла, выполнил, удалил. Одновременно чтоб несколько кто-то слал -
такого у меня нет - Лaгyнoв(13.02.2023 19:01)
- Номер смс-ки это если по полной программе. При простом варианте при первом включении все СМС удаляются. Далее в цикле вместе с другими командами "зарос-ответ" висит ожидание "+CMTI: "SM",1". Мне нужны СМС с определенного номера, выбираю смс только с него, а то наслать могут отовсюду всякой хрени. Прочитал смс с нужного номера, разобрал текст по шаблону, выполнил, смс - удалил. Не с того номера СМС - игнор и удаление. - petrd(13.02.2023 22:28)
- ну если разбирать в куче СМС, то тогда да. Непонятно только зачем.
Пришла, выполнил, удалил. Одновременно чтоб несколько кто-то слал -
такого у меня нет - Лaгyнoв(13.02.2023 19:01)
- Здесь когда-то проскакивал ответ. Запрос на асинхронные данные надо передавать вместе ( ставить перед ) командой с синхронным ответом ( например, ОК ). Тогда посылка всегда будет подтверждаться ответом от второй команды ( нейтральной по последствиям ), после чего можно переходить к состоянию ожидания асинхронного ответа. Это я телепатировать пытаюсь. - teap0t(13.02.2023 14:30)
- а что не так с СМС? Отправка или получение? У меня получение -
AT+CMGL="ALL" (обычно идут по одной и ее потом сразу удаляю). Там в
теле ответа всё - дата, телефон, текст. И отправка. Кинул
AT+CMGS="+7913.....". Получил оттуда ">" - выдал текст (не
забыв в конце 0х1А). Ну и удалил - AT+CMGD=1,4. раньше я всё это
делал тупо по порядку. Сейчас в фоне основной программы по признаку
завершения посылки ответа. Здесь в отличии от работы с FTP или SMTP
всё гораздо проще. - Лaгyнoв(13.02.2023 16:49)