уже так и сделал
» Работа с GSM телефоном
Народ, у кого-нить есть компонента или пример де|кодирования PDU на delphi?
А так же как написать код, который бы ждал СМС и при получении сразу её выводил.
А так же как написать код, который бы ждал СМС и при получении сразу её выводил.
Цитата:
А так же как написать код, который бы ждал СМС и при получении сразу её выводил.
Нужно постоянно опрашивать кол-во смс. правда, насколько помню, когда приходит смс, в порт вываливается сообщение какое-то, но не помню его.
Всем привет. Решил тож написать что-нибудь для своей Nokia 6300. Был опыт написания программы для работы с Siemens C60, там все основывалось на посылке AT-команд в COM-порт, через который подключен телефон. Но с 6300 такое не работает (телефон никак не отвечает при посылке AT-команд на COM-порт, который появляется при соединении телефона с ПК). На оф. сайте Нокии нашел такую вещь - PC_Connectivity_API_3.2. С ее помощью мне удалось реализовать следующие вещи: узнать список подключенных телефонов, информацию о прошивке телефона, язык, IMEI, код продукта... Вся работа основывается на вызове функций из ConnAPI.dll. Телефон подключается через обычный USB-шнурок. Но до самого главного - посылке AT-команд в Нокию я так и не докапался. В той самой ConnAPI.dll никакой похожей функции я не нашел . По сути дела реализовал только подключение телефона, а дальше ступор. Кто что посоветует?
OdesitVadim
Цитата:
Именно так: +CMTI: "SM",N
И в этом сообщении указывается слот N, куда оно помещено.
Цитата:
правда, насколько помню, когда приходит смс, в порт вываливается сообщение какое-то, но не помню его.
Именно так: +CMTI: "SM",N
И в этом сообщении указывается слот N, куда оно помещено.
FireZone
Цитата:
А как с помощью synaser отправлять СМС?
Цитата:
win32 API, проблем не знал. Попробовал я щас synaser. Проблема в том, что метод ATCommand весьма негибкий, посмотри его исходник. Таймаутами он реагирует на любые строки, которые не кончаются на 'OK'<CRLF> или 'ERROR'<CRLF>. А ведь телефон кроме этих кодов может еще и +CMS ERROR: <code><CRLF> выдавать. А такая ошибка возникает у тебя, когда ты запрашиваешь с телефона несущесвующую СМС. Рекомендую объявить наследника от TBlockSerial и переопределить в нём метод ATCommand своим более гибким, который сможет распознавать +CMS ERROR и +CME ERROR и даже сохранять код ошибки.
А как с помощью synaser отправлять СМС?
Cyril Konst
Цитата:
Цитата:
А как с помощью synaser отправлять СМС?По-моему, сам он не умеет отправлять их. С его помощью можно упростить отсылку AT команд. Примера, к сожалению, не осталось, поскольку винт сдох внепланово.
FireZone
Дык проблемма в отправке AT+CMGS
В ответ приходит '> '
А synaser ругается TimeOut'ом...
Дык проблемма в отправке AT+CMGS
В ответ приходит '> '
А synaser ругается TimeOut'ом...
Попробуй целиком отправить одной посылкой AT+CMGS + номер + текст
FireZone
попробовал - Error.1
попробовал - Error.1
Cyril Konst
Значит, нужно писать свою реализацию. Я бы сделал наследника, и наделал в нем отдельные методы для таких специальных случаев, как AT+CMGS
Значит, нужно писать свою реализацию. Я бы сделал наследника, и наделал в нем отдельные методы для таких специальных случаев, как AT+CMGS
FireZone
Не хватает квалификации для написания наследников.
Может тогда подскажите другую более простую компоненту, которая может просто читать и писать строки в COM-порт. А уж анализ вывода делать в процедуре конкретно для каждой команды.
Не хватает квалификации для написания наследников.
Может тогда подскажите другую более простую компоненту, которая может просто читать и писать строки в COM-порт. А уж анализ вывода делать в процедуре конкретно для каждой команды.
Cyril Konst
Класс TBlockSerial из synaser как раз и делает то, что тебе нужно. У него есть методы SendString и RecvString.
Класс TBlockSerial из synaser как раз и делает то, что тебе нужно. У него есть методы SendString и RecvString.
Народ, подскажите, как отправить длинное сообщение.
07918350000005F1 - смс-центр
51 - первый октет (submit, один октет expire, с пользовательским заголовком)
00 - TP-Message-Reference
0C91835255156237 - номер
00 - PID
04 - DCS (8bit)
AA - срок годности
20 - длина
050003110201 - первая из двух частей клееного сообщения
7878787878787878787878....
В PDU-режиме:
AT+CMGS=46
07918350000005F151000C918390377864130004AA200500031102017878787878787878787878787878787878787878787878787878
Сообщение не отправляется, пишет ERROR (сразу же, без задержки)
Подскажите, что я не так делаю, или киньте рабочий пример.
07918350000005F1 - смс-центр
51 - первый октет (submit, один октет expire, с пользовательским заголовком)
00 - TP-Message-Reference
0C91835255156237 - номер
00 - PID
04 - DCS (8bit)
AA - срок годности
20 - длина
050003110201 - первая из двух частей клееного сообщения
7878787878787878787878....
В PDU-режиме:
AT+CMGS=46
07918350000005F151000C918390377864130004AA200500031102017878787878787878787878787878787878787878787878787878
Сообщение не отправляется, пишет ERROR (сразу же, без задержки)
Подскажите, что я не так делаю, или киньте рабочий пример.
Есть пример проги отправки и приема смс на Делфях. Правда отправляет. Писал сам без всяких компонент.
Работает почти со всеми мобилами (пробовал на сименсах и нокиях, а вот с Fly коряво, там вместо текста смс билиберда приходит). Если кому надо пишите
Работает почти со всеми мобилами (пробовал на сименсах и нокиях, а вот с Fly коряво, там вместо текста смс билиберда приходит). Если кому надо пишите
мне надо
Счас пока не могу, просто с мобилы сижу.
На выходных закину и ссылку выложу на общее пользование.
Там сам перевод sms в "читаемый" вид сделан коряво,просто некогда было.
Если кто сделает лучше пишите.
А так все 3 вида кодировок текста держит.
На выходных закину и ссылку выложу на общее пользование.
Там сам перевод sms в "читаемый" вид сделан коряво,просто некогда было.
Если кто сделает лучше пишите.
А так все 3 вида кодировок текста держит.
Короче что-то с загрузкой на Рапиду заглючило.
Если кому надо, пишите скину на майл.
Добавлено:
А вот ссылка на пример.
Пользуйтесь
http://forum.mail2k.ru/SMS.rar
Если кому надо, пишите скину на майл.
Добавлено:
А вот ссылка на пример.
Пользуйтесь
http://forum.mail2k.ru/SMS.rar
Привет
Есть проблема:
1) посылаю с siemens TC65 составное SMS (состоящего из двух частей):
2) составная SMS доходит до метста назначения (др. телефон), но когда я ее просматриваю то в сообщении теряется один символ (это символ "!" ), а также на siemens TC65 приходит ответное сообщение содержащее непонятный текст
Привожу команды выполняемые с TC-65 для отсылки SMS:
1) отправка первой части составной SMS:
AT+CSMP=81,167,0,8 <CR>
AT+CMGS="+79069309174" <CR>
>0500037A02010430043004300430043004300031043004300430043004300430003204300430043004300430043000330430043004300430043004300034043004300430043004300430003504300430043004300430043000360430043004300430043004300037043004300430043004300430003804300430043004300430043000390021002100210021<ctrl+z>
+CMGS: 162
OK
здесь содержится
UDH=0500037A0201
текст:аааааа1аааааа2аааааа3аааааа4аааааа5аааааа6аааааа7аааааа8аааааа9!!!!
2)отправка второй части составной SMS:
AT+CSMP=81,167,0,8 <CR>
AT+CMGS="+79069309174" <CR>
>0500037A0202002100210021 <ctrl+z>
+CMGS: 163
OK
+CMTI: "MT",1
здесь содержится
UDH=0500037A0201
текст:!!!
SMS на телефон приходит след.:аааааа1аааааа2аааааа3аааааа4аааааа5аааааа6аааааа7аааааа8аааааа9!!!!!!
где видно что один символ в "!" потерян.
одновремено на TC65 приходит входящее сообщение (SMS DELIVER) содержащее неонятное сообщение видимо связоное с тем что символ "!" почемуто был потерян:
07919730071111F1040B919760399071F4000880407011517300236D657373616765200520746F203739303639333039313734207375636365656465642E
Я эксперементировал и установил что знак "!" теряется у второй SMS, если например во второй SMS вместо "!!!" послать " !!" то составная SMS доходит нормально (аааааа1аааааа2аааааа3аааааа4аааааа5аааааа6аааааа7аааааа8аааааа9!!!!!! !!)
Почему теряется символ "!" и что делать ?
Есть проблема:
1) посылаю с siemens TC65 составное SMS (состоящего из двух частей):
2) составная SMS доходит до метста назначения (др. телефон), но когда я ее просматриваю то в сообщении теряется один символ (это символ "!" ), а также на siemens TC65 приходит ответное сообщение содержащее непонятный текст
Привожу команды выполняемые с TC-65 для отсылки SMS:
1) отправка первой части составной SMS:
AT+CSMP=81,167,0,8 <CR>
AT+CMGS="+79069309174" <CR>
>0500037A02010430043004300430043004300031043004300430043004300430003204300430043004300430043000330430043004300430043004300034043004300430043004300430003504300430043004300430043000360430043004300430043004300037043004300430043004300430003804300430043004300430043000390021002100210021<ctrl+z>
+CMGS: 162
OK
здесь содержится
UDH=0500037A0201
текст:аааааа1аааааа2аааааа3аааааа4аааааа5аааааа6аааааа7аааааа8аааааа9!!!!
2)отправка второй части составной SMS:
AT+CSMP=81,167,0,8 <CR>
AT+CMGS="+79069309174" <CR>
>0500037A0202002100210021 <ctrl+z>
+CMGS: 163
OK
+CMTI: "MT",1
здесь содержится
UDH=0500037A0201
текст:!!!
SMS на телефон приходит след.:аааааа1аааааа2аааааа3аааааа4аааааа5аааааа6аааааа7аааааа8аааааа9!!!!!!
где видно что один символ в "!" потерян.
одновремено на TC65 приходит входящее сообщение (SMS DELIVER) содержащее неонятное сообщение видимо связоное с тем что символ "!" почемуто был потерян:
07919730071111F1040B919760399071F4000880407011517300236D657373616765200520746F203739303639333039313734207375636365656465642E
Я эксперементировал и установил что знак "!" теряется у второй SMS, если например во второй SMS вместо "!!!" послать " !!" то составная SMS доходит нормально (аааааа1аааааа2аааааа3аааааа4аааааа5аааааа6аааааа7аааааа8аааааа9!!!!!! !!)
Почему теряется символ "!" и что делать ?
Приветсвую. Подскажите пож. в таком моменте: усть GSM-модем Siemens M20 (из старых)нужно отправлять СМС на русском
Если модем отвечает на команду at+cscs=?
+CSCS: ("IRA","PCCP850","PCCP852","PCCP1252","PCCP1250","8859-1","8859-2","TTP")
OK
То о формате UCS2 можно забыть?и соответсвенно о кирилических сообщениях?
Предпологается отправлять в PDU (т.е. AT+CMGF=0)
Я не проммер со стажем, но просто устал искать истину почему не могу отправить на русском СМСки.
Если модем отвечает на команду at+cscs=?
+CSCS: ("IRA","PCCP850","PCCP852","PCCP1252","PCCP1250","8859-1","8859-2","TTP")
OK
То о формате UCS2 можно забыть?и соответсвенно о кирилических сообщениях?
Предпологается отправлять в PDU (т.е. AT+CMGF=0)
Я не проммер со стажем, но просто устал искать истину почему не могу отправить на русском СМСки.
привет , у меня модем siemens tc65. Я отправлял SMS на русском языке
используя кодеровку UCS2.
Вот что мне выдает аналогичная команда:
aT+cscs=?
+CSCS: ("GSM","UCS2")
используя кодеровку UCS2.
Вот что мне выдает аналогичная команда:
aT+cscs=?
+CSCS: ("GSM","UCS2")
Верно, у тебя просто "продвинутый" модем как я предпологаю т.е. поддерживаемые протоколы у тебя ("GSM","UCS2") и поэтому проблем ты не знаешь.
привет форумчанам! подскажите, мыслящие люди, в чем может быть проблема
возникает она при отправке длинных смс
отправляю в pdu, хидер(вроде бы) дописываю правильно
050003+например
B10301
B10302
B10303
pdu type = 75
на некоторые телефоны (nokia, motorola) приходят все 3 смс, а на некоторые (samsung, fly и ещё пара) приходят все 3 смс, но отображается только первая.
настораживает что pduspy пишет про UDL:
137 octets, 68 UCS2 chars (should be 66)
возникает она при отправке длинных смс
отправляю в pdu, хидер(вроде бы) дописываю правильно
050003+например
B10301
B10302
B10303
pdu type = 75
на некоторые телефоны (nokia, motorola) приходят все 3 смс, а на некоторые (samsung, fly и ещё пара) приходят все 3 смс, но отображается только первая.
настораживает что pduspy пишет про UDL:
137 octets, 68 UCS2 chars (should be 66)
Помогите с кодом на СиШарп, необходимо подключить кпк по инфрокрасному через GSM модем на мобильном телефоне к другому GSM модему . Кто то может помочь примером?
Здравствуйте!!!
В поисках решения своей задачи забрёл к вам. Много тут чего написано. Возможно и ответ на мой вопрос. Но я не нашёл, так что сори заранее....
Задача у меня такая. Имееться подключенный телефон, необходимо реагировать в момент прихода нового смс или ммс. Доставать не требуеться, только узнать. Полагаю, что надо периодически посылать какую то команду и смотреть ответ. Может быть кто подскажет, какую именно?
Заранее благодарен.
В поисках решения своей задачи забрёл к вам. Много тут чего написано. Возможно и ответ на мой вопрос. Но я не нашёл, так что сори заранее....
Задача у меня такая. Имееться подключенный телефон, необходимо реагировать в момент прихода нового смс или ммс. Доставать не требуеться, только узнать. Полагаю, что надо периодически посылать какую то команду и смотреть ответ. Может быть кто подскажет, какую именно?
Заранее благодарен.
ikartunin, есть 2 варианта(по крайней мере я знаю только 2)
1. время от времени посылать на модем команду AT+CMGL=1(вернёт только recieved unread messages вроде бы) или AT+CMGL=4(вернёт все. прочтённые, непрочтённые, в том числе и отправленные\неотправленные)
2. выставить определённым образом настройки AT+CNMI.
у меня стоит AT+CNMI=3,1,2,2,1
когда приходит сообщение, то в порт приходит строка вида +CMT: "xx", n
где xx - тип памяти куда сохранилась смс(SM, ME, MT), а n - индекс сообщения. зная этот индекс можно отправить команду AT+CMGR=n и в ответе прочитать полученное смс.
имхо второй вариант правильнее.
1. время от времени посылать на модем команду AT+CMGL=1(вернёт только recieved unread messages вроде бы) или AT+CMGL=4(вернёт все. прочтённые, непрочтённые, в том числе и отправленные\неотправленные)
2. выставить определённым образом настройки AT+CNMI.
у меня стоит AT+CNMI=3,1,2,2,1
когда приходит сообщение, то в порт приходит строка вида +CMT: "xx", n
где xx - тип памяти куда сохранилась смс(SM, ME, MT), а n - индекс сообщения. зная этот индекс можно отправить команду AT+CMGR=n и в ответе прочитать полученное смс.
имхо второй вариант правильнее.
Цитата:
у меня стоит AT+CNMI=3,1,2,2,1
При попытке выполнить эту команду, коворит error 303
Цитата:
При попытке выполнить эту команду, коворит error 303
ну видимо у тебя просто модем не поддерживает эти настройки.
http://www.sendspace.com/file/qaoo5z
скачай файл по ссылке, там документация на русском к модему wavecom. AT комманды это стандарт так что тебе это тоже наверняка подойдёт. читай страницу 97. там найдёшь что обозначаешь каждая из цифр
Народ, подскажите в чем ошибка отправки СМС :
Сформировал СМС по документации http://www.ixbt.com/mobile/review/comp-sms.shtml
Вот лог работы :
>>> SendSMS Number:79603488534; Text:Simple SMS
Sending command 'AT+CSMS=0'...
Read from port: +CSMS: 1,1,1 OK
Sending command 'AT+CMGF=0'...
Read from port: OK
Sending command 'AT+CNMI=0,1,0,2,1'...
Read from port: OK
Sending command 'AT+CMGS=?'...
Read from port: OK
Sending command 'AT+CMGS=39'...
Read from port: >
Sending command '07919730071111F121000B919706438835F400081800530069006D0070006C00650053004D0053'...
Read from port: ERROR
В Чем может быть ошибка ???
Сформировал СМС по документации http://www.ixbt.com/mobile/review/comp-sms.shtml
Вот лог работы :
>>> SendSMS Number:79603488534; Text:Simple SMS
Sending command 'AT+CSMS=0'...
Read from port: +CSMS: 1,1,1 OK
Sending command 'AT+CMGF=0'...
Read from port: OK
Sending command 'AT+CNMI=0,1,0,2,1'...
Read from port: OK
Sending command 'AT+CMGS=?'...
Read from port: OK
Sending command 'AT+CMGS=39'...
Read from port: >
Sending command '07919730071111F121000B919706438835F400081800530069006D0070006C00650053004D0053'...
Read from port: ERROR
В Чем может быть ошибка ???
Уважаемые объясните принцип: вот послал я команду модему, с какой периодичностью я должен опрашивать порт, чтоб получить ответ? а если я не опрошу порт, то ответ так и будет висеть гдето и ждать меня?
з.ы.
хочу узнавать баланс (USSD запрос). какой командой это делать? и в каком виде ответ прийдёт?
сам себе отвечаю: AT+CUSD = 1,"*100#",15 что-то типа этого..., но на моей мотороле L6 ответ: ERROR, а на модеме хуавей на команду AT+CUSD = 1 ОК а на полную строку ERROR
з.ы.
хочу узнавать баланс (USSD запрос). какой командой это делать? и в каком виде ответ прийдёт?
сам себе отвечаю: AT+CUSD = 1,"*100#",15 что-то типа этого..., но на моей мотороле L6 ответ: ERROR, а на модеме хуавей на команду AT+CUSD = 1 ОК а на полную строку ERROR
Предыдущая тема: Как удалять проекты в Builder 6.0?
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.