реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Отправка СМС через ATmega164
KIG
сообщение Dec 28 2008, 13:42
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 25-12-06
Пользователь №: 23 884



Здравствуйте.
Пытаюсь написать программу на С++ для AVR микроконтроллера, которая будет отправлять СМС через GSM модем. СМС отправляю в PDU режиме. Для этого требуется специальная кодировка. Может у кого-нибудь есть пример (исходник) функции по отправке СМС, формирующий кодовую посылку в модем, который можно взять за образец. Заранее спасибо.
Go to the top of the page
 
+Quote Post
chief_olimp
сообщение Dec 28 2008, 14:11
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344



В какой кодировке собираетесь отправлять текст? где он хранится? Откуда номера? Наверное правильнее написать программу самому а что не понятно - спросить. Например можно воспользоваться програмой SiMoCo (для Siemens) что бы отследить данные отправляемые на телефон. Или программой PDUSpy для формирования и расшифровки СМС.
Для затравки PDU

Сообщение отредактировал chief_olimp - Dec 28 2008, 14:17
Go to the top of the page
 
+Quote Post
KIG
сообщение Dec 28 2008, 14:19
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 25-12-06
Пользователь №: 23 884



Конкретно меня интересует компактный код, позволяющий преобразовать данные из массива типа char в pdu строку. Мне подошел бы любой образец.
Go to the top of the page
 
+Quote Post
chief_olimp
сообщение Dec 28 2008, 14:57
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344



Вопросы_по_программной_отправке_SMS
Go to the top of the page
 
+Quote Post
Baser
сообщение Dec 28 2008, 18:55
Сообщение #5


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Можно почитать это:
Формат PDU или как сформировать и распаковать SMS, Application Note
Go to the top of the page
 
+Quote Post
shb
сообщение Dec 29 2008, 06:08
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 425
Регистрация: 17-07-06
Из: Россия МО
Пользователь №: 18 877



Цитата(Baser @ Dec 28 2008, 21:55) *
Но везде подходить творчески могут быть ошибки как здесь. При описании Поля SCA (поле адрес сервисного центра) фраза
Цитата
Длина адреса определяется, как количество цифр в номере! В это количество входят только цифры, то есть ни знак + для международного номера, ни дополняющий до четного количества символ F (см. ниже) цифрами НЕ являются и в длину не входят!
относится не к этому полю а к Полям ОА (адрес источника) и DA (адрес приемника). В первом же случае длина это количество байт (не цифр) вместе с типом номера SC и добавленного символа F (он для того и добавляется чтобы при нечетном количестве цифр номера получить целый байт).
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 3 2009, 16:19
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Пытаюсь отправить СМС .

Говорю SIM300 :

AT+CSCS="UCS2" // устанавливаю кодировку юникод
AT+CMGF=1 // устанавливаю текстовый режим
AT+CSMP=17,167,0,25 //устанавливаю параметры текстового режима
// + 7 9 0 5 5 3 1 4 0 6 3 телефон в юникод
AT+CMGS="002B00370039003000350035003300310034003000360033"<HELLOW

На последнюю строчку SIM300 отвечает ошибка Operation not allowed
Почему ?

Спасибо !


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
PIC_Embedder
сообщение Jan 3 2009, 16:32
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 30-07-08
Из: Украина Луганск
Пользователь №: 39 308



Читал SIM300_AN_V1.2RUS.pdf? Там всё популярно описано.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 3 2009, 16:44
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(PIC_Embedder @ Jan 3 2009, 19:32) *
Читал SIM300_AN_V1.2RUS.pdf? Там всё популярно описано.


А где его взять ?
Поисковики на SIM300_AN вообще ничего не находят.
Киньте на мыло 3_141592@mail.ru

Спасибо !

Сообщение отредактировал MiklPolikov - Jan 3 2009, 16:46


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
PIC_Embedder
сообщение Jan 3 2009, 16:51
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 30-07-08
Из: Украина Луганск
Пользователь №: 39 308



Взял с сайта Гаммы. Лучше здесь выложу, может ещё кому-то пригодится.

Сообщение отредактировал PIC_Embedder - Jan 3 2009, 16:52
Прикрепленные файлы
Прикрепленный файл  SIM300_AN_V1.2RUS.pdf ( 556.26 килобайт ) Кол-во скачиваний: 171
 
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 10 2009, 16:12
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Делаю вроде бы всё как в SIM300_AN_V1.2RUS.pdf

AT+CMGS="+79055314063"
0x0D //это ENTER
>
HELLO
0x1A //это CTRL+Z


Sim300 отвечает ERROR . Что неправильно ?
Спасибо !

Сообщение отредактировал MiklPolikov - Jan 10 2009, 16:15


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
M_Z
сообщение Jan 10 2009, 16:32
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 483
Регистрация: 1-09-06
Из: Гродно РБ
Пользователь №: 20 011



Цитата(MiklPolikov @ Jan 10 2009, 19:12) *
Делаю вроде бы всё как в SIM300_AN_V1.2RUS.pdf

AT+CMGS="+79055314063"
0x0D //это ENTER
>
HELLO
0x1A //это CTRL+Z


Sim300 отвечает ERROR . Что неправильно ?
Спасибо !


Если Вы программируете модем в юникоде,
AT+CSCS="UCS2" // устанавливаю кодировку юникод (Это из Вашего предыдущего топика)
то слать в него нужно в юникоде.

Сообщение отредактировал M_Z - Jan 10 2009, 16:49
Go to the top of the page
 
+Quote Post
rvk
сообщение Jan 10 2009, 16:36
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 13-05-06
Из: Камышин
Пользователь №: 17 067



Модем может быть не зарегистрирован, покажите полный лог с терминала, без комментариев.
Желательно его реакцию на команды AT+CREG и AT+CSQ, а также настройки оператора
SMS, может номер сервис центра не введен, дайте расширенную диагностику этого ERROR
при помощи AT+CMEE и AT+CEER команд

http://www.marlix.ir/PDFs/SIM300_ATC_V1.06.pdf

Сообщение отредактировал rvk - Jan 10 2009, 16:37
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 11 2009, 11:28
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Рассказываю подробно :

После включения питания и отправки
AT+CMGS="+79055314063"
0x0D
>
HELLO
0x1A

SIM300 отвечает
+CMS ERROR: 517

На все последующие попытки отправить смс получаю ответ
ERROR ERROR

После попытки отправить смс отправляю AT+CMEE? получаю
+CMEE: 1 OK

Если отправляю AT+CEER получаю
+ СEE: No cause was given OK

На AT+CSQ отвечает
+CSQ:21,0 OK

На AT+CREG? отвечает
+CREG: 0,1 OK

С входящими и исходящими звонками проблем нет

Сообщение отредактировал MiklPolikov - Jan 11 2009, 11:34


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
chief_olimp
сообщение Jan 11 2009, 11:53
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344



что отвечает на "AT+CMGF?" ?
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 11 2009, 12:11
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(chief_olimp @ Jan 11 2009, 14:53) *
что отвечает на "AT+CMGF?" ?


Спасибо ! Переключился в text mode и СМС стали отправлятся . Но на нелефон приходит не слово HELO а просто пустая строка , как будто пробел отправили. Почему так ?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
chief_olimp
сообщение Jan 11 2009, 12:29
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344



поройтесь в командах по моему у вас выставлена другая кодировка. txt mode работает только с 7 битными символами если я не ошибаюсь. По умолчанию у меня работало. Может у вас UCS2 установлено например
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 11 2009, 12:47
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(chief_olimp @ Jan 11 2009, 15:29) *
поройтесь в командах по моему у вас выставлена другая кодировка. txt mode работает только с 7 битными символами если я не ошибаюсь. По умолчанию у меня работало. Может у вас UCS2 установлено например


Было установлено IRA , поменял на GSM , всё равно СМС пустая приходит


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
chief_olimp
сообщение Jan 11 2009, 13:11
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344



проверьте что посылаете побитно прогой COMPUMP например. Может что и прояснится. Еще раз перечитайте SIM300_AN_V1.2RUS.pdf
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 11 2009, 14:13
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(chief_olimp @ Jan 11 2009, 16:11) *
проверьте что посылаете побитно прогой COMPUMP например. Может что и прояснится. Еще раз перечитайте SIM300_AN_V1.2RUS.pdf


Я не с компьютера это делаю.

Вот что интересно :

Отправляю сейчас в юникоде

AT+CMGS="002B00370039003000350035003300310034003000360033"
0x0D
>
041a043e043e044004340438043d04300442044b
0x1A

Должно прийти слово "коордтнаты", а приходит "A C D"
То есть номер в юникоде передаётся правильно, а текст -нет.

Если отправить 041a придёт A вместо русской К

Сообщение отредактировал MiklPolikov - Jan 11 2009, 14:20


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
chief_olimp
сообщение Jan 11 2009, 14:46
Сообщение #21


Местный
***

Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344



У меня работает с терминала.

AT+CMGF=1(0x0D)(0x0A)
OK
AT+CSCS="UCS2"(0x0D)(0x0A)
OK
AT+CSMP=17,167,0,25(0x0D)(0x0A)
OK

AT+CMGS="002B003X003X003X003X003X003X003X003X003X003X003X003X"(0x0D)(0x0A) Х - подмена цифры

>
041F0420041E041204150420041A0410002004210412042F04170418(0x1A) (текст "ПРОВЕРКА СВЯЗИ")

+CMGS: 158

OK

Сообщение отредактировал chief_olimp - Jan 11 2009, 14:48
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 11 2009, 15:43
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(chief_olimp @ Jan 11 2009, 17:46) *
У меня работает с терминала.

AT+CMGF=1(0x0D)(0x0A)
OK
AT+CSCS="UCS2"(0x0D)(0x0A)
OK
AT+CSMP=17,167,0,25(0x0D)(0x0A)
OK

AT+CMGS="002B003X003X003X003X003X003X003X003X003X003X003X003X"(0x0D)(0x0A) Х - подмена цифры

>
041F0420041E041204150420041A0410002004210412042F04170418(0x1A) (текст "ПРОВЕРКА СВЯЗИ")

+CMGS: 158

OK



У меня работает , если всё сдвинуть на 4 бита влево.
Т.е что бы передать "ПРОВЕРКА СВЯЗИ" нужно 41F0420041E041204150420041A0410002004210412042F04170418 , без нолика вначале.

Вопрос : ENTER после ввода телефона - это 0x0D или 0x0D 0x0A ?

Сообщение отредактировал MiklPolikov - Jan 11 2009, 15:48


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
chief_olimp
сообщение Jan 11 2009, 16:03
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344



ответ выше
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jan 11 2009, 16:19
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(MiklPolikov @ Jan 11 2009, 18:43) *
Вопрос : ENTER после ввода телефона - это 0x0D или 0x0D 0x0A ?
АТ команды заканчиваются вводом символа с кодом 0x0D, если вопрос был про это...
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st August 2025 - 00:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01594 секунд с 7
ELECTRONIX ©2004-2016