Lisitsin 0 3 октября, 2016 Опубликовано 3 октября, 2016 · Жалоба Здравствуйте, уважаемые специалисты и уважаемые любители! Столкнулся с проблемой. Требуется Ваша квалификация в области GPRS связи. Собрал устройство на базе GPRS модуля SIM800C. Схема во вложении. Устройство работает нормально, СМС латинскими буквами отправляются. Но мне нужен русский язык, и я проштудировал статейку http://hardisoft.ru/soft/samodelkin-soft/o...i-na-c-chast-1/ в поисках истины. Написал программу для отправки СМС в соответствии со статьёй, но в итоге вижу ERROR без всяческих объяснений. Тогда я решил подключить терминалку и отправить код, приведённый непосредственно в статье, в разделе Краткий «Привет!!!», подставив только свой номер телефона (оператор ТЕЛЕ-2). То есть, что я делаю: 1) запускаю выполнение своей программы. Она включает модуль, ждёт когда пройдёт его регистрация в сети и отправляет ему команду AT+CMGF=0. Модуль отвечает ОК. Далее в программе у меня точка останова, в которой процессор отсоединяется от модуля, и в дело вступает терминалка. С неё я уже отправляю AT+CMGS=31 и получаю приглашение ввести код СМС ">". Отправляю ему код, и получаю ERROR. В чём дело - не могу понять. В коде изменил только номер телефона на свой, по формату и числу цифер в номере он аналогичен. Привожу полную прослушку ответов SIM800C, эхо включено: 41 54 0D 0D 0A 4F 4B 0D 0A 0D 0A 52 44 59 0D 0A | AT•••OK••••RDY•• 0D 0A 2B 43 46 55 4E 3A 20 31 0D 0A 0D 0A 2B 43 | ••+CFUN: 1••••+C 50 49 4E 3A 20 52 45 41 44 59 0D 0A 0D 0A 43 61 | PIN: READY••••Ca 6C 6C 20 52 65 61 64 79 0D 0A 0D 0A 53 4D 53 20 | ll Ready••••SMS 52 65 61 64 79 0D 0A 41 54 2B 43 4D 47 46 3D 30 | Ready••AT+CMGF=0 0D 0D 0A 4F 4B 0D 0A 41 54 2B 43 4D 47 53 3D 33 | •••OK••AT+CMGS=3 31 0D 0D 0A 3E 20 00 01 00 0B 91 97 00 09 81 78 | 1•••> ••••‘—••x F6 00 08 20 08 12 04 1F 04 40 04 38 04 32 04 35 | ö•• •••••@•8•2•5 04 42 00 21 00 21 00 21 0D 0A 45 52 52 4F 52 0D | •B•!•!•!••ERROR• 0A | • Если кто-то уже раболтал с отправкой русских СМС, хотелось бы услышать замечания, комментарии, критику) Спасибо !!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 3 октября, 2016 Опубликовано 3 октября, 2016 · Жалоба Проверьте завершение ввода данных с терминалки - насколько помню, там должно быть или <Ctrl-Z> или что-то подобное. Кодировка символов. Думаю что Ваша терминалка выдает в ASCII или 866 или CP1251. А на вход системы SMS скорее всего должен идти юникод. Так как SMS отправляют не только на англ. и русском но и несколько других языках. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 3 октября, 2016 Опубликовано 3 октября, 2016 · Жалоба прекрасно русские отправляются в режиме PDU Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lisitsin 0 3 октября, 2016 Опубликовано 3 октября, 2016 (изменено) · Жалоба Проверьте завершение ввода данных с терминалки - насколько помню, там должно быть или <Ctrl-Z> или что-то подобное. Кодировка символов. Думаю что Ваша терминалка выдает в ASCII или 866 или CP1251. А на вход системы SMS скорее всего должен идти юникод. Так как SMS отправляют не только на англ. и русском но и несколько других языках. Контрл зэт отправляется (0x1a)б иначе модуль не ответил бы даже еррором. Сообщение, конечно же, отправляется юникодом ... прекрасно русские отправляются в режиме PDU Я не вполне понял, так я вроде бы как раз в PDU и пытаюсь отправлять ... Изменено 3 октября, 2016 пользователем Lisitsin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lisitsin 0 4 октября, 2016 Опубликовано 4 октября, 2016 · Жалоба Не помогает даже онлайн-PDU конвертор ... http://adatum.ru/pdu-converter 41 54 0D 0D 0A 4F 4B 0D 0A 0D 0A 52 44 59 0D 0A | AT•••OK••••RDY•• 0D 0A 2B 43 46 55 4E 3A 20 31 0D 0A 0D 0A 2B 43 | ••+CFUN: 1••••+C 50 49 4E 3A 20 52 45 41 44 59 0D 0A 0D 0A 43 61 | PIN: READY••••Ca 6C 6C 20 52 65 61 64 79 0D 0A 0D 0A 53 4D 53 20 | ll Ready••••SMS 52 65 61 64 79 0D 0A 41 54 2B 43 4D 47 46 3D 30 | Ready••AT+CMGF=0 0D 0D 0A 4F 4B 0D 0A 41 54 2B 43 4D 47 53 3D 32 | •••OK••AT+CMGS=2 31 0D 0D 0A 3E 20 00 01 00 0B 91 97 00 09 81 78 | 1•••> ••••‘—••x F6 00 08 20 08 08 20 08 04 42 04 35 04 41 04 42 | ö•• •• ••B•5•A•B 0D 0A 45 52 52 4F 52 0D 0A | ••ERROR•• Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 4 октября, 2016 Опубликовано 4 октября, 2016 · Жалоба модемы и вообще система злопамятна. Сбросьте модем на заводские установки. (Возможно) Есть команды, относящиеся к GPRS, когда переключение режима запоминается не в регистрах модема а в системе. Соотв-но, чтобы переключиться, необходимо, даже после at&f, atz, at&w устанавливать (переключать) требуемый режим. Не исключено, что аналогичные процедуры-настройки и для SMS. Не знаю как у кого, а тарификация для SMS в ASCII и Unicode разная. Не исключено, что в систему надо выдать команду "хочу работать в Unicode". Попробуйте на другом операторе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lisitsin 0 4 октября, 2016 Опубликовано 4 октября, 2016 · Жалоба модемы и вообще система злопамятна. Сбросьте модем на заводские установки. Даже возврат к фабричным настройкам не помогает ... AT+CSCS="UCS2" тоже роли не играет ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smalcom 0 7 октября, 2016 Опубликовано 7 октября, 2016 · Жалоба Возьмите за правило при отладке задавать AT+CMEE=2. Так можно отличать ошибки синтаксиса от ошибок аргументов и прочего. И у вас похоже, что смска просто неправильная. Первым идёт размер номера сервисного центра, а за ним и номер. А у вас там 0x20 при допустимой длине 1-12. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться