On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение



ссылка на сообщение  Отправлено: 03.08.16 22:35. Заголовок: Смс от Crestron


Подскажите возможно ли каким-либо образом организовать отправку некоего отчета о состоянии по смс при появление в Crestron определенного сигнала? Например сработало реле - отправляется отчет что сработало реле...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 71 , стр: 1 2 3 4 All [только новые]







ссылка на сообщение  Отправлено: 03.08.16 23:20. Заголовок: Хороший вопрос. Како..


Хороший вопрос. Какой-нибудь программирумый GSM-оповещатель был бы весьма кстати. В свое время наколхозил следующее решение.
Была подобрана контрольно-коммутационная панель ОПС с открытым интерфейсом и съедобным протоколом. К ней был прикручен штатный GSM-оповещатель, а в контроллере Crestron - прописана эмуляция тревожных событий. Этим событиям в конфиге панели были сопоставлены определенные SMS. Работало неплохо. Думаю, в наши времена существует более изящное решение.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 04.08.16 00:07. Заголовок: marty_iron да без п..


marty_iron
да без проблем - через GPRS модем с помощью AT команд.
Формат сами найдете или бросить пример?

И, кстати, еще можно отправлять Push.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




ссылка на сообщение  Отправлено: 04.08.16 12:04. Заголовок: Логично, напрямую в ..


Логично, напрямую в модем через com порт.
И стоит дешевле $50.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 04.08.16 15:08. Заголовок: Когда-то заморачивал..


Когда-то заморачивался подобной проблемой на AMX, подключите любой модем по RS-232, но предупреждаю АТ команды вам мозг взорвут гаранировано)

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 04.08.16 20:58. Заголовок: А смс-сервисы не подойдут?


Смс-сервисы не пробовали? Вроде не проблема

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 04.08.16 22:07. Заголовок: Использую сервис SM..


Использую сервис SMS Aero. Цена смс мизерная. По сути отправляете любое сообщение на любой сотовый телефон по IP, на какое хотите событие. Я только для сработки по датчику движения использую в режиме охраны.
Там правда есть один "минус", нужно шифровать в md5. Но модуль PJlink вам в помощь.
P.S. понятное дело процессор должен иметь доступ в Интернет.

+79161734005 Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 04.08.16 22:09. Заголовок: marin_n пишет: Смс-..


marin_n пишет:

 цитата:
Смс-сервисы не пробовали? Вроде не проблема


Там ничего сложного, но есть нюанс: если отрубится инет SMS через модем уйдет, а через SMS сервис нет.

Я обычно аварийные оповещения шлю через e-mail и push, если отправка не удалась - дублирую через SMS (экономия денег заказчика).

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 04.08.16 22:10. Заголовок: mr.weles пишет: Ког..


mr.weles пишет:

 цитата:
Когда-то заморачивался подобной проблемой на AMX, подключите любой модем по RS-232, но предупреждаю АТ команды вам мозг взорвут гаранировано)


Для отправки SMS используется всего одна АТ команда, ничего сложного.

А вот принимать SMS пока не научился (не было времени вникнуть глубже).

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




ссылка на сообщение  Отправлено: 04.08.16 23:17. Заголовок: Вячеслав, это же Спа..


Вячеслав, это же Спамерская система рассылок! Зачем рекламируете?
Моё личное мнение - такое оповещение совершенно необязательная опция.
Лучше обратить внимание на скользкие моменты заранее.
Из опыта - возникновение аварийных ситуаций, требующих немедленной реакции на серьёзных объектах вообще нонсенс. Нужно в других местах что то подправлять, а не увлекаться сигнализациями - игрушками.


Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 05.08.16 11:59. Заголовок: Игорь K. пишет: Вяч..


Игорь K. пишет:

 цитата:
Вячеслав, это же Спамерская система рассылок! Зачем рекламируете?


Это инструмент двойного назначения ;)

Им же пользуются интернет магазины и прочие онлайн сервисы для целевого оповещения клиентов и им же пользуются спамеры.
Это как оружие: можно использовать для охоты или защиты, а можна для нападения и убийства.

Игорь K. пишет:

 цитата:
Моё личное мнение - такое оповещение совершенно необязательная опция.
Лучше обратить внимание на скользкие моменты заранее.
Из опыта - возникновение аварийных ситуаций, требующих немедленной реакции на серьёзных объектах вообще нонсенс. Нужно в других местах что то подправлять, а не увлекаться сигнализациями - игрушками.



Мы локализуем возможные аварии автоматически (например протечка воды - перекрытие клапана) а сообщение отправляем или хозяину или обслуживающему персоналу чтобы пошел и исправил.

Если не сообщить - приедет домой, а там "сюрприз". А так будет время вызвать мастера или мастеру исправить.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.08.16 14:53. Заголовок: Kaveckiy пишет: И, ..


Kaveckiy пишет:

 цитата:
И, кстати, еще можно отправлять Push.


а что имеется ввиду под push???

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.08.16 14:56. Заголовок: Kaveckiy пишет: да ..


Kaveckiy пишет:

 цитата:
да без проблем - через GPRS модем с помощью AT команд.
Формат сами найдете или бросить пример?


желательно конечно пример, не силен я в этом))

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.08.16 16:18. Заголовок: marty_iron пишет: а..


marty_iron пишет:

 цитата:
а что имеется ввиду под push???


Есть у продукции Apple такой вид оповещения в программах как Push. Чем-то похож на SMS.

marty_iron пишет:

 цитата:
желательно конечно пример, не силен я в этом))


В COM порт к которому подключен GPRS модем нужно отправить строку

 цитата:
AT+CMGS="+380XXXXXXXXX"\x0DVashe soobschenie\x1A



Спасибо: 1 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.08.16 16:30. Заголовок: Kaveckiy пишет: AT+..


Kaveckiy пишет:

 цитата:
AT+CMGS="+380XXXXXXXXX"\x0DVashe soobschenie\x1A



а это самобытная команда или для организации оповещений ей не обойтись? я так понимаю что это команда для отправки по смс сообщения на номер +380...

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.08.16 16:50. Заголовок: слушайте, а нет како..


слушайте, а нет какой-нибудь рекомендации по модему с Комом? какой лучше использовать?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.08.16 17:00. Заголовок: marty_iron пишет: а..


marty_iron пишет:

 цитата:
а это самобытная команда или для организации оповещений ей не обойтись? я так понимаю что это команда для отправки по смс сообщения на номер +380...


Это AT команда gprs модему на отправку СМС с текстом "Vashe soobschenie" по номеру +380XXXXXXXXX

Мы использовали такой.

Спасибо: 1 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.08.16 17:28. Заголовок: Kaveckiy спасибо! а ..


Kaveckiy спасибо! а есть ли что-то на что надо обращать внимание при выборе модема под эти цели?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.08.16 17:35. Заголовок: ХЗ, доку почитайте. ..


ХЗ, доку почитайте. У нас эти доступны - брали их.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 24.08.16 15:48. Заголовок: Kaveckiy пишет: AT+..


Kaveckiy пишет:

 цитата:
AT+CMGS="+380XXXXXXXXX"\x0DVashe soobschenie\x1A


а как отправить в текстовый параметр стоку,где кавычки присутствуют как текст???))

хотя кое-где нашел, что команда без кавычек идет

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 24.08.16 21:03. Заголовок: Отправлять точно так..


Отправлять точно так же как написано - строку скопировал с программы.
+ и кавычки стоят именно там где нужно, только номер пиши свой ("+7xxxxxxxxxx")

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 25.08.16 09:11. Заголовок: Kaveckiy а вот еще п..


Kaveckiy а вот еще проблема нарисовалась
я так понимаю по тулбоксу, что если ему загнать строку больше чем на 160 символов - он ничего не отвечает в ответ на команду, кроме того, что номер он принял.
И при сл отправке например короткого смс - он новую отправку номера воспринимает как часть смс
Можно как-то сбросить вот этот запомненный номер? Ну т е какая-то отмена отправки?
я так понимаю он ждет \x1A, чтобы отправить, вот можно как-то отменить все действия пока не введено \x1A?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 25.08.16 16:12. Заголовок: marty_iron ХЗ, у мен..


marty_iron ХЗ, у меня таких проблем не возникало, поэтому разбираться не было необходимости.

Зачем Вам длинное СМС?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 29.08.16 08:45. Заголовок: Kaveckiy пишет: Зач..


Kaveckiy пишет:

 цитата:
Зачем Вам длинное СМС?


отправлять отчет))

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 29.08.16 12:46. Заголовок: Ну а как вы хотели :..


Ну а как вы хотели :))
SMS - этож Short Message Service «служба коротких сообщений»


 цитата:
Текст может состоять из алфавитно-цифровых символов. Максимальный размер сообщения в стандарте GSM — 140 байт (1120 бит). Таким образом, при использовании 7-битной кодировки (латинский алфавит и цифры) можно отправлять сообщения длиной до 160 символов. При использовании 8-битной кодировки (немецкий, французский язык) можно отправлять сообщения длиной до 140 символов. Для поддержки других национальных алфавитов (китайского, арабского, русского и др.) используется 2-байтовая (16-битная) кодировка UCS-2. Таким образом, SMS, написанное кириллицей, не может превышать 70 знаков.



Проверяйте длину, если > 160, то режте на части ...

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 14.09.16 13:19. Заголовок: Kaveckiy добрый день..


Kaveckiy добрый день, а подскажите такой момент. Отправка смс работала четко. но вот спустя время к ней вернулись - и можем стал ответ на смс сообщение давать ERROR - что это может быть?

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 14.09.16 13:58. Заголовок: По идее должен быть ..


По идее должен быть еще код ошибки.
Проверяйте длину сообщения, валидность SIM карты и т.п.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 14.09.16 14:25. Заголовок: Вячеслав он у меня н..


Вячеслав он у меня на комманду AT+CMGS=7..........\x0DKitchen\x1A
выдает AT+CMGS=7..........\x0DKitchen\x1A\x0D\x0AERROR\x0D\x0A....

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 14.09.16 14:59. Заголовок: marty_iron блин, ну ..


marty_iron блин, ну вот сколько можно повторять, номер телефона пишется в кавычках "" и с + в начале номера.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 14.09.16 14:59. Заголовок: Kaveckiy Вячеслав я..


Kaveckiy Вячеслав
я разобрался как это обойти, но не разобрался что случилось
раньше я на 100% точно и 100% усешно отправлял смс командой AT+CMGS=380XXXXXXXXX\x0DVashe soobschenie\x1A

а теперь она стала отправляться командой AT+CMGS=+380XXXXXXXXX\x0DVashe soobschenie\x1A
что могло случиться??

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 14.09.16 15:09. Заголовок: Kaveckiy пишет: mar..


Kaveckiy пишет:

 цитата:
marty_iron блин, ну вот сколько можно повторять, номер телефона пишется в кавычках "" и с + в начале номера.


но я поднял историю - я 47 смс успешно отправлял без плюса и кавычек))) почему раньше срабатывало??

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 14.09.16 15:17. Заголовок: marty_iron пишет: п..


marty_iron пишет:

 цитата:
почему раньше срабатывало??


Недокументированная функция: хочу работаю, хочу не работаю.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 14.09.16 15:20. Заголовок: Kaveckiy пишет: Нед..


Kaveckiy пишет:

 цитата:
Недокументированная функция: хочу работаю, хочу не работаю.


просто боязнь только одна - не вышло бы так, что сделаем - а она потом вот так же отвалится...

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 14.09.16 15:25. Заголовок: marty_iron пишет: п..


marty_iron пишет:

 цитата:
просто боязнь только одна - не вышло бы так, что сделаем - а она потом вот так же отвалится...


Я не понимаю один простой момент - дали ж рабочую стоку, просто поменять номер мобильного на свой.
Что заставляет проявлять фантазию и делать по-своему?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 14.09.16 15:30. Заголовок: Kaveckiy нет, я так ..


Kaveckiy нет, я так и сделал теперь
просто есть опасения - не отвалится ли и это со временем
очень уж хорошо тот работал, без сбоев до определенного момента

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 14.09.16 16:32. Заголовок: если есть + то опера..


если есть + то оператор понимает что это международный (формат) номер(а)

без + хрен поймёш что это за номер международный или национальный или сервис

может для 380 "и работало внутри страны" а для 7 нужно +7ххх

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 15.09.16 09:21. Заголовок: а смс на-русском ник..


а смс на-русском никак не отправить?
перебрал до FF - все не те символы

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 15.09.16 22:41. Заголовок: Для поддержки других..


Для поддержки других национальных алфавитов (китайского, арабского, русского и др.) используется 2-байтовая (16-битная) кодировка UCS-2. Таким образом, SMS, написанное кириллицей, не может превышать 70 знаков.

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 16.09.16 00:42. Заголовок: Вот нашел: под «код..


Вот нашел: под «кодировкой» UCS-2 понимают UTF-16 без суррогатных пар (от 0xD800 и до 0xDFFF). Т.е. не будет символов кодируемых 4 байтами, а только 2-х байтные пары на один символ.
Это чтоб не бегать потом в поисках конвертера в USC-2 :)

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 21.09.16 17:53. Заголовок: Вот нашел на простор..


Вот нашел на просторах интернета решение проблемы с отправкой русских символов. Придется попыхтеть конечно чуток и от перекодировки никуда не деться. Но все же достаточно понятно расписано,
ссылка тут

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 22.09.16 03:32. Заголовок: Другой тоже интересн..


Другой тоже интересный источник click here еще больше упрощает жизнь. Оказывается переводить в цифровой режим не надо, можно и в текстовом
Достаточно выполнить предварительную инициализацию модема:
1.Устанавливаем текстовый режим:
to_modem$="AT+CMGF=1\x0D";
2.Установить модем в режим USC2: (предварительно проверив что он такой режим поддерживает может командой AT+CSCS=?\x0D)
to_modem$="AT+CSCS=\x22UCS2\x22\x0D";
3.Установка параметров текстового режима время действия 24ч, формат символов КИРИЛЛИЦА:
to_modem$="AT+CSMP=17,167,0,8\x0D";
4.Преобразовать сообщение из расширенной ASCII в UTF16 (USC2) с помощью нехитрой функции (но не обычной т.к. используем формат "0410" вместо "\x04\x10"):
String_Function SMS_CONVERTOR(string ASCII_EXT$)
{
integer k,m;
string UCS2$[70],symb[2];

UCS2$="";
for (k=1 to len(ASCII_EXT$))
{
if((byte(ASCII_EXT$,k)>0)&&(byte(ASCII_EXT$,k)<128)){Makestring(symb,"%04X",byte(ASCII_EXT$,k));} //latin & numeric &not printable
else
if(byte(ASCII_EXT$,k)>191){Makestring(symb,"%04X",848+byte(ASCII_EXT$,k));}//printable Curillic
UCS2$=UCS2$+symb;
if(k=70){break;}
}
Return (UCS2$);
}
5.Далее отправляем выше описанным способом
to_modem$="AT+CMGS=380XXXXXXXXX\x0D"+SMS_CONVERTOR("Ваше сообщение")+"\x1A";
Понятное дело, что номер телефона и сообщение можно подставлять через переменные s+ модуля или используя STRING_INPUT
Это все для 2-серии, если на 3 серии не удастся получить сообщение в ASCII, то конвертор надо будет немного поправить для преобразований "\x04\x10" к виду "0410" и т.п.

Впрочем производитель не озвучил возможность отправки в текстовом варианте, а настаивал на цифровом (PDU), так что надо проверять:
Radiofid support пишет:

 цитата:

Здравствуйте!
Кириллица поддерживается только в PDU режиме.
Последовательность AT команд:
ATE0 Отключение Эха
AT+CMEE=2 Включение расширенного отчета об ошибках.
AT+CMGF=0 Перевод смс в pdu режим
AT+CMGS=17 Кол-во символов поделенное на 2 минус 1
0001000B910789674523F100040474657374 Сообщение в DPU режиме
Далее CTRL+Z
http://rednaxela.net/pdu.php Генератор смс в PDU



Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.09.16 17:26. Заголовок: всплало 3 проблемы н..


всплало 3 проблемы но русское смс я получил)))
но
получил я его когда сам без функции отправил сообщение из примера - 041F04400438043204350442

а не ясны пока такие моменты))) 1. В каком виде надо писать русские буквы в функцию? 2. В примере "AT+CSMP=1,167,0,8\x0D", но на это он выдает ошибку, а на "AT+CSMP=17,167,0,8\x0D" ошибку не выдает.
И третье - если до ввода номера ввести to_modem="AT+CSCS=UCS2\x0D"; он на номер выдает ошибку. Я сделал до номера to_modem="AT+CSCS=GSM\x0D"; а после номера to_modem="AT+CSCS=UCS2\x0D"; И идет без ошибки

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 24.09.16 00:20. Заголовок: AT+CSMP=1,167,0,8 Э..


AT+CSMP=1,167,0,8 Это опечатка у автора по 2 ссылке. Там 17 конечно должно быть а не 1. 17 означает, что следующее поле VP(то которое =167) будет содержать данные. 1 - тоже применимо и входит в состав 17, но тогда второго поля не должно быть.
Наверное, так и правильно что USC2 режим уже после номера. Иначе номер и команду его содержащую, наверное тоже потребовалось бы преобразовать в USC2. У меня то нет модема попробовать. Хотя может все таки номер в кавычках попробовать Вам. Вместо кавычек используйте \x22. Можете попробовать всю команду через конвертер пропустить чтоб каждый раз не переключать GSM/UCS2.
send_string$="AT+CMGS=\x22+"+Number$+"\x22\x0D"+Message$+"\x1A";
to_modem$=SMS_CONVERTOR(send_string$);
Буквы в функции должны быть в расширенной ASCII, если имеется ввиду SMS_CONVERTOR. Я проверял функцию в дебагере, подавая на serial вход русские буквы. Т.е. для слова Привет должно быть вида:
\xCF\xF0\xE8\xE2\xE5\xF2
А вы как подавали?



Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 24.09.16 00:47. Заголовок: Вячеслав а что вообщ..


Вячеслав а что вообще означает каждая из цифр AT+CSMP=1,167,0,8?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 24.09.16 00:50. Заголовок: Вячеслав а я подавал..


Вячеслав а я подавал - \x8F\x90\x88\x82\x85\x92 - и получал что функция ничего не выдавала...
у меня может какая-то не такая таблица?

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 24.09.16 01:06. Заголовок: 1.AT+CSMP=1,167,0,8 ..


1.AT+CSMP=1,167,0,8 это скорее всего опечатка, я уже писал. Правильно AT+CSMP=17,167,0,8 Формат: AT+CSMP=<fo>,<vp>,<pid>,<dcs> click here
fo=17 составное значение: указывает что поле vp присутствует и сообщение от MS к SC (от модема к сервисному центру)
vp=167 кодирует длительность действия сообщения (24ч)
pid=0 используемый протокол (значение 0 используют все в примерах, в доке оно не описано, но и других подходящих вашему случаю значений нет)
dcs=8 способ кодировки данных для UCS2 (8-определяет что используется кириллица Так пишут в интернете, в доке по AT командам варианты на это поле не расшифрованы)

2. \x8F это из кодировки cp866, а надо Win-1251(cp1251). Как вы вообще умудрились получить cp866? Прямо в hex что ли вводили? Расширенная ASCII click here
3.Модуль преобразования из примера click here

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 24.09.16 09:38. Заголовок: Вячеслав спасибо!! н..


Вячеслав спасибо!!
ну я просто нашел в гуле - расширенная ascii таблица, и не думал что их несколько...

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 21.10.16 12:02. Заголовок: А не подскажите как ..


А не подскажите как сделать так, чтобы по приходу на номер модема, подключенного к крестрону, например смс "ОК" - в крестроне появлялся некий единичный импульс?

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 21.10.16 17:16. Заголовок: Пример (идея) с обра..


Пример (идея) с обратным запросом был описан по ссылке которую я уже приводил click here:

 цитата:
Для реализации вышеупомянутой логики от модема требуется: прочитать SMS из памяти, удалить SMS из памяти (чтобы не скапливались). Для чтения сообщений использовал команды AT+CMGR и AT+CMGL (их краткое описание приводилось ранее). Чтение всех сообщений будет выглядеть как:
AT+CMGF=1 [Enter]
AT+CMGL="ALL" [Enter]
+CMGL: 6,"REC READ","778467",,"11/09/03,18:49:40+16"
007700770077002E006D00740073002E00720075
+CMGL: 7,"REC READ","+79261234567",,"11/10/18,18:38:00+16"
04220435044104420020043F044004380435043C043000200073006D0073002004410
43E043E043104490435043D04380439002100200421043C04410020043D043D043D04
3004340430003F0021003F00210028002D005F002D00290020 [Enter]

Здесь всё проще чем было раньше. Каждое сообщение состоит из 2х строк, в первой содержатся данные о сообщении (такие как: от кого, когда, номер сообщения), а во второй сам текст сообщения (опять таки в кодировке UCS, функция UCSToAnsi приводилась выше). Чтение одного сообщение осуществляется как:
AT+CMGF=1 [Enter]
AT+CMGR=7 [Enter]
+CMGR: "REC READ","+79261234567",,"11/10/18,18:38:00+16"
04220435044104420020043F044004380435043C043000200073006D0073002004410
43E043E043104490435043D04380439002100200421043C04410020043D043D043D04
3004340430003F0021003F00210028002D005F002D00290020 [Enter]marty_iron пишет:
Аналогичным образом происходит и удаление сообщений. Если например в моём случае отправить команду AT+CMGD=7, то при следующем AT+CMGL=«ALL» я уже не увижу сообщение номер 7, т.к. оно будет удалено.



Т.е. надо будет
1.Отправить вышеуказанные команды на чтение смс из памяти модема
2.Получив на них ответ записать его в текстовую переменную (str$)
3.Искать вложение "OK" в этой переменной
if (find("041E041A",str$)>0){pulse(1,out_ok;} //при успешном поиске отправляется импульс на digital_output OUT_OK
041e и 041a это "ОК" в кодировке UCS2 для смс рассылок

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 22.10.16 12:30. Заголовок: Вячеслав но что сдел..


Вячеслав но что сделать, если неизвестно, когда придет эта смс? ну т е система работает, и в какой то момент может быть прислано смс - и надо что-то делать

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 22.10.16 15:32. Заголовок: Варианта по крайней ..


Варианта по крайней мере 2:
1.Посмотреть выдает ли что то модем в COM порт во время прихода СМС, если да
то сделать обработчик этого события CHANGE - find- отправка команд на считывание с модема
2.Периодически (раз в 10с например) посылать команды на чтение сообщений и осуществлять в ответах поиск ОК

P.S Правильнее str$ (from_modem) обьявить как BUFFER_INPUT

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 22.10.16 21:57. Заголовок: не знаю, но с чтение..


не знаю, но с чтением пока ничего не удается
вот например команда на удаление AT+CMGD=7, при ее отправе а потом чтение всех - он напротив удаленных смс пишет что они UNREAD, а при следующем опросе они опять на месте

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 22.10.16 22:45. Заголовок: Команда AT+CMGD=7 уд..


Команда AT+CMGD=7 удаляет сообщение с номером 7. Оно у Вас есть? (Что выдает AT+CMGL="ALL" чтение всех )
UNREAD -статус непрочитанного сообщения и к удалению отношения не имеет.
Тут есть варианты параметров команд может пригодится click here
При приеме СМС модем как то сообщает об этом (в дебагере видно на from_modem$ или что там у Вас за название RX)?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 22.10.16 23:08. Заголовок: Вячеслав ну как я за..


Вячеслав ну как я заметил тестируя - я вводил команду удаления 28, 29, 11, 8 - после этого я прочитал - они все переместились к конец списка со статусом непрочитанных - потом при следующем опросе AT+CMGL="ALL" они снова прочитанные и не в конце списка
и еще странно - но новые смс получают какие-то странные номера, вот сейчас посл смс получило номер 2 - т е
+CMGL: 2,"REC READ","778467",,"11/09/03,18:49:40+16"
007700770077002E006D00740073002E00720075

ну и самое печальное - при получении смс с RX не приходит ничего...

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 22.10.16 23:52. Заголовок: Для удаления точно и..


Для удаления точно используете команду AT+CMGD=4 ???
Пробуйте AT+CMGD=4,0
То что после второй операции чтения, сообщение меняет статус с UNREAD на READ вполне логично, ведь вы его только что прочитали командой AT+CMGL="ALL"
Есть еще подозрение что формат "AT+CMGD=4" доступен только в режиме PDU ( AT+CMGF=0), а в текстовом режиме доступны лишь варианты для команды AT+CMGDA.
Таким образом можете попробовать удалять сообщения в варианте AT+CMGD=4 предварительно переключив в режим PDU:
AT+CMGF=0
AT+CMGD=4



Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.10.16 00:21. Заголовок: Вячеслав похоже вы п..


Вячеслав похоже вы правы! стал удалять
но как вы это поняли?

но это поразительный момент! в момент прихода смс - ничего не происходит на Rx. И совершенно непонятно как по этому приходу смс действовать... Ведь на сисмке уже могут быть смс типа Ок - и как он поймет, какая пришла только что? разве что пробовать часто опрашивать и смотреть какое Unread? или каждый раз после прочтения удалять сразу его?
а может можно его как-то заставить отправлять текст на рх при получении?

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 23.10.16 00:31. Заголовок: marty_iron пишет: н..


marty_iron пишет:

 цитата:
но как вы это поняли?


Если речь про PDU то
навела на мысль вот эта фраза:

 цитата:
если выбран режим PDU, то параметр «ALL» даст ошибку


Что означает в текстовом режиме управляй СЛОВЕСНЫМИ командами типа "ALL", а цифровом ЦИФРОВЫМИ типа "0,1"

По поводу СМС пишут однако:

 цитата:
По умолчанию все сообщения сохраняются на сим карту. При поступлении сообщения придет сообщение:
+CMTI: «SM»,1 где 1 - номер сообщения


Если с вашим это не так, либо рыть команды которые отвечают за это уведомление (лучше сразу у сапорте у производителя поинтересоваться), либо полингом придется считывать постоянно.

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 23.10.16 00:38. Заголовок: Пробуйте AT+CMTI=1 ..


Пробуйте
AT+CMTI=1
и
AT+CNMI=1,1
Еще пишут что кода на SIM нет места сообщение не приходит. Так что удаляйте лишние смс и может станет статус о приеме присылать +CMTI: «SM»,1

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.10.16 00:42. Заголовок: Вячеслав спасибо! ну..


Вячеслав спасибо!
ну да, вот когда приходит новое - ничего не происходит
но если опросить ALL то новое будет в самом конце списка и непрочитанным...
не происходит При поступлении сообщения придет сообщение:
+CMTI: «SM»,1
1, — номер полученного сообщения.

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 23.10.16 00:46. Заголовок: 1.Удалять пробовали?..


1.Удалять пробовали? При достижение максимального количества смс, новые вытесняют старые, но подтверждение уже не выдается.
2.Команды AT+CMTI=1 AT+CNMI=1,1 пробовали? (это уже во вторую очередь, если удаление не поможет)

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.10.16 00:50. Заголовок: Вячеслав пишет: Пр..


Вячеслав пишет:

 цитата:

Пробуйте
AT+CMTI=1
и
AT+CNMI=1,1
Еще пишут что кода на SIM нет места сообщение не приходит. Так что удаляйте лишние смс и может станет статус о приеме присылать +CMTI: «SM»,1



спасибо!!! с AT+CNMI=1,1 сработало, на первую выдал ошибку
только у меня вида +CMTI: «МТ»,номер сообщения

но где вы нашли эту команду? в том тексте ее нет...



Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 23.10.16 01:57. Заголовок: В интернете ) По сло..


В интернете ) По слову +CMTI: «SM»,

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 10.04.17 09:39. Заголовок: Вячеслав тут проблем..


Вячеслав тут проблема появилась))
вот команда AT+CSMP=17,167,0,8 дает нам писать на кирилице
но теперь после этой команды пропадает возможность отправлять смс на латинице)))
он в ответ на сообщение пишет - ОК, но не отправляет его...
есть какая-то команда. чтобы это вернуть??

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 10.04.17 11:21. Заголовок: Посмотрите, в каком ..


Посмотрите, в каком виде уходит сообщение в дебагере. Может функция SMS_CONVERTOR как то неверно отработала и сообщение ПУСТОЕ отправляется или типа того.


Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 10.04.17 11:30. Заголовок: Вячеслав нет, там вс..


Вячеслав нет, там все уходит как надо
но раньше вот такой командой сообщение отправлялось AT+CMGS=+380XXXXXXXXX\x0DVashe soobschenie\x1A
а теперь нет

там принцип такой - когда от отправляет, он сначала возвращает дубликат сообщения, а потом ОК и номер отправленного сообщения
а в таком видео с кирилической кодировкой он пишет ОК и не пишет номер отправленного сообщения и не отправляет соответственно
и все тесты говорят что AT+CSMP=17,167,0,8 мешает это сделать
т е например я пытаюсь отправить просто слово hello - нет, а если прогнать его через SMS_CONVERTOR - то отправляет, но я точно могу сказать, что до манипуляций с кирилицей отправлялся и просто hello

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 10.04.17 14:03. Заголовок: ??? Так значит отпра..


??? Так значит отправляет все таки.
Так почему не хочется конвертером воспользоваться и отправлять хоть русские, хоть латинские, хоть в перемешку? Хочется длиннее 70 знаков что ли?
Ведь опция 8 (AT+CSMP=17,167,0,8)требует преобразования к UCS2. Поэтому в ASCII и не отправляет. Пробуйте другие значения вместо 8 (описания данного параметра я не встречал, описан лишь в варианте =8 для отправки в кодировке UCS2)

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 10.04.17 14:10. Заголовок: Вячеслав да, нужно д..


Вячеслав да, нужно длиннее 70
я вроде нашел - работает при AT+CSMP=17,167,0,0

еще есть небольшой вопрос, может есть идея - в процессе тестов, когда все не работало, случались 3 раза ситуации (закономерность не понял), что после каких-то команд модем переставал отвечать на команды. Т е с RX переставало идти что-либо
и помогала только перезагрузка модема
как думаете что это могло быть?
Спасибо

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 10.04.17 14:16. Заголовок: Из предположений тол..


Из предположений только ошибка текущего режима
AT+CMGF=0/1
Мне сложно предполагать, я модем этот и в руках никогда не держал

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 02.10.21 23:06. Заголовок: Вячеслав пишет: а..


Вячеслав пишет:

 цитата:
String_Function SMS_CONVERTOR(string ASCII_EXT$)
{
integer k,m;
string UCS2$[70],symb[2];

UCS2$="";
for (k=1 to len(ASCII_EXT$))
{
if((byte(ASCII_EXT$,k)>0)&&(byte(ASCII_EXT$,k)<128)){Makestring(symb,"%04X",byte(ASCII_EXT$,k));} //latin & numeric &not printable
else
if(byte(ASCII_EXT$,k)>191){Makestring(symb,"%04X",848+byte(ASCII_EXT$,k));}//printable Curillic
UCS2$=UCS2$+symb;
if(k=70){break;}
}
Return (UCS2$);
}


а этот модуль точно рабочий? он вроде не конвертирует...

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 03.10.21 20:30. Заголовок: Может и не рабочий. ..


Может и не рабочий. Сейчас уже не вспомню, почему. Но эта функция в моём конверторе закоменчена.
Вместо неё сначала все в формат UTF16 приводится, потом уже в SMS формат конвертируется вот так:

String_FUNCTION UTF16_TO_UCS2(string str)
{
integer k;
string tmp$[1000],symb[2];

tmp$="";
for (k=1 to len(str))
{
Makestring(symb,"%02X",byte(str,k));
tmp$=tmp$+symb;
}
if(len(tmp$)>280){tmp$=Left(tmp$,280);}
//по 4 символа на выходе вместо одного. При ограничении SMS 140 байт (160 символов в 7 битной кодировке ASCII или 70 символов в UTF) 70x4=280
//но на выходе модуля ещё надо порезать до 255 (т.е.отрезать 6 символов)
Return(tmp$);
}

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 04.10.21 08:57. Заголовок: Вячеслав пишет: int..


Вячеслав пишет:

 цитата:
integer k;
string tmp$[1000],symb[2];


ошибка вот тут. Должно быть symb[4], он ее обрезал неправильно засчет длины переменной

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 08.10.21 11:48. Заголовок: Только отсыл не на т..


Только отсыл не на ту функцию, тогда уж:
string UCS2$[70],symb[2];
из функции UTF16_TO_UCS2(string str)

Так как для UTF16_TO_UCS2(string str) 2 байта достаточно.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 71 , стр: 1 2 3 4 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 32
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет