Sensei
Jan 17 2009, 19:33
Недавно начал работать с этим модемом, возникло несколько вопросов.
Задача такая:
Нужно чтобы модем пересылал данные на сервер, где они будут записываться в базу данных.
Я так понял, что сначала надо переключить модем в ГПРС режим: AT+CGATT=1. Потом задать ПДП: AT+CGDCONT=1,"IP","<мой apn>, потом AT+CGQREQ, AT+CGACT=1,1
Но не понятно, как именно указать IP сервера и порт на который должны приходить данные?
С помощью какой программы можно отловить данные приходящие на сервер?
И наконец как их записать в базу данных?
Очень нужна помощь.
av-master
Jan 18 2009, 00:25
Судя по приведенным выше вопросам, для начала, следует на пол года сесть за изучение литературы и , к примеру , этого форума.
А также освоить поиск, и через пол года, хоть немного конкретезировать вопросы.
не в обиду, но как там...: правильный ответ на неправильный вопрос - 500у.е ( шутка )
конкретезируйте пожалуйста.
Sensei
Jan 18 2009, 09:15
По моему вопрос задан чётко...
Какую АТ команду использовать, чтобы задать IP сервера и порт к которому надо подсоединиться?
av-master
Jan 18 2009, 10:03
Цитата
С помощью какой программы можно отловить данные приходящие на сервер?
И наконец как их записать в базу данных?
аха четко )))
Sensei
Jan 18 2009, 10:47
Если прочитать всё и логически подумать то всё станет ясно. А вообще суть вопроса не в этом. Меня интересует именно АТ команда. В AT+CGDCONT можно записать апн, но та есть ещё дополнительные параметры, на которые есть описание, но примеров нет. Говорится только, что они не используются.
For PDP type OSP:IHOSS the following parameters are defined:
<pd1> = <host> the fully formed domain name extended hostname of the Internet
host
<pd2> = <port > the TCP or UDP port on the Internet host
<pd3> = <protocol> the protocol to be used over IP on the Internet - "TCP" or "UDP
Пробовал сделать это через AT$DESTINFO, это единственная команда или есть ещё способы? Если можете напишите пример как происходит подключение к серверу.
Там есть встроенный стэк и комманды для M2M.... прочитайте про M2M комманды в доке....
Sensei
Jan 18 2009, 11:47
Спасибо это как раз то, что мне нужно!
Допустим я соединился с сервером и от модема начали поступать данные. Есть какие-нибудь готовые и бесплатные программы, чтобы на сервере эти данные отловить? Или придётся писать свою программу и прослушивать нужный порт?
Sensei
Jan 19 2009, 09:12
Почитал док. Попробовал сделать как в примере.
AT+CGDCONT=1,"IP","мой АПН"<CR>
OK
AT%CGPCO=1,"PAP,,",1<CR>
OK
AT$NOSLEEP=1<CR>
OK
AT$DESTINFO="FTP.NTU.EDU.TW",1,21,1<CR>
$DESTINFO: "FTP.NTU.EDU.TW", 1, 21
OK
ATD*97#<CR>
Но мне возвращается ошибка
ATD*97#
Wait Socket Open
ERROR
NK
CONNECT
OK
OK
NO CARRIER
В чём может быть проблема?
bolmoe
Jan 21 2009, 11:46
1. AT+CFUN=1 [запускаем контроллер модема] -> повтор команды -> Ok
2. AT$NOSLEEP=1 [запрещаем ему «спать»] -> повтор команды -> Ok
3. АТЕ0 [запрещаем «эхо»] -> Ok
4. для запуска GPRS
4.1. AT+CGDCONT=1,"IP","internet.beeline.ru" -> Ok
4.2. AT%CGPCO=1,"PAP,beeline,beeline",1 -> Ok
4.3. AT$DESTINFO="тут IP адрес",1,№ порта -> $DESTINFO: "тут IP адрес", 1, № порта -> Ok
4.4. ATD*97# -> Wait Socket Open -> Ok
4.5. ”+++” – возврат в командный режим, передается без интервалов в течение 1 секунды, затем задержка длительностью 1 секунда -> Ok->CONNECT->Ok
4.6. АТО – возврат в режим данных -> CONNECT
4.7. ATH – завершение соединения -> OK -> NO CARRIER
Нужна будет программа, которая перед инициализацией и запуском GPRS запускается на компе (его IP виден из сети - этот IP необходимо прописать в DESTINFO, именно по нему происходит коннект). Если прога не запущена, то коннекта соответственно не будет и получишь ответ типа ERROR. Где то такая прога выкладывалась, точно не помню..... Можно сделать самому, только нужен Builder C++ или еще что нибудь похожее, там попользовать элемент "сервер секет", порт можно выбирарть произвольный выше 2000 до 65535. Были проблемы при запуске проги на локальном компьютере, цепочка была следующей Enet->ADSL->Локальная сеть->комп. Прога была своя, но при переходе с BENQ M23 на Telit GT863 просто за ненадоюностью потер.
6. Запрос уровня сигнала AT+CSQ
6.1. +CSQ: 27,99 -> OK
6.2. 0-(-113) dBm
6.3. 1-(-111)dBm
6.4. 2..30 – (-109)..53 dBm
6.5. 31 – 54 или больше
6.6. 99 – определить нельзя
7. Детализация счета
7.1. AT+CUSD=1,”*102#”,15 - beeline
7.2. +CUSD:0,”набор цифр каждая пара из которых представляет одно число в Hex”,15
8. Перезагрузка модуля AT+WRST -> стр. 221 – перезагрузка модуля
Sensei
Jan 24 2009, 15:16
Спасибо за информативный ответ. Мне он очень помог!
Написал программку на С#. Сделал всё по примеру, но результат тот же...
У меня возник ряд вопросов:
Как узнать точный АПН? Я нашёл в интернете, но не уверен в его правильности...
Как узнать свой логин и пароль которые нужно ввести в AT%CGPCO?
Может ли коннект не проходить если введены неверные АПН и логин с паролем?
Думал может дело в программе, но не нашёл на форуме...может кто-нибудь дать ссылку на неё?
Цитата(Sensei @ Feb 2 2009, 11:16)

Написал программку на С#. Сделал всё по примеру, но результат тот же...
У меня возник ряд вопросов:
Как узнать точный АПН? Я нашёл в интернете, но не уверен в его правильности...
Как узнать свой логин и пароль которые нужно ввести в AT%CGPCO?
Может ли коннект не проходить если введены неверные АПН и логин с паролем?
все точки доступа прописаны у операторов, а также пароли и юзеры, надо смотреть в настройках GPRS для каждого конкретного оператора....
какого оператора пользуешь ...? ТОгда точно пропишу, что надо по АПН, passw & user
комп на котором запускается прога имеет статический IP?
комп не является ли локальным по отношении к тому, с которого выход в инет?
тем не менее, прогу можно проверить просто, написать ответную часть и попытаться на этом же компе законнектить их.., все должно пройти как по маслу
для того, чтобы прога стала видна из сети, надо в Брандмауре Виндас

) (панель управления), на вкладке "Дополнительно" внести в список исключений новую "службу", имя любое, но вот порт указать тот, который пользует прога написанная на С#.
Я из Эстонии, оператор емт, карточка Diil.
Да, на компе статический IP, выделенка.
Попробую написать вторую часть проги и проверить. Но мне кажется дело в симке...
Цитата(Sensei @ Feb 6 2009, 12:21)

Я из Эстонии, оператор емт, карточка Diil.
Да, на компе статический IP, выделенка.
Попробую написать вторую часть проги и проверить. Но мне кажется дело в симке...
Извини попторопился c ....., не нашел на сайте ЕМТ АПН - user - passw
Вот с сайта вытянул, про NAT почитай! ->
Получает ли GPRS-телефон при подключении к сети публичный IP-адрес?
Нет, не получает. Телефону присваивается приватный адрес, транслируемый во внешние сети через NAT. В будущем возможность получения публичного и фиксированного IP-адреса будет предоставляться клиентам на основании отдельного заказа.
По поводу симки тебе может ответить только оператор, зайди в любой офис продаж, там скорее всего есть информация по поводу АПН и т.д. и т.п., обязательно проверь подключена ли услуга GPRS. Был недавно такой случай - устройство не работало, т.е. не могло в инет. Звоним оператору, говорит, что услуга GPRS подключена... Весь день искали траблы в прошивке (всталяю другую симку этого же оператора, все работает, возвращаю старую, не работает), пока не доехали до центрального офиса продаж. Там нам переподключили услугу GPRS и после перезагрузки устройства все заработало. Обязательно сделай что я выше писал, а то твой брандмауэр просто не пропустит к тебе инфу из BENQ на указанный тобой порт в проге.
Писал в суппорт, мне прислали работающий вариант:
at
OK
at+cfun=1
OK
at$nosleep=1
OK
at+cgdcont=1,"IP","internet.mts.ru"
OK
at%cgpco=1,"PAP,,",1
OK
at$destinfo="ftp.ntu.edu.tw",1,21,1
$DESTINFO: "ftp.ntu.edu.tw", 1, 21
OK
atd*97#
Wait Socket Open
OK
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 74 of 1500 allowed.
220-Local time is now 18:28. Server port: 21.
220 You will be disconnected after 10 minutes of inactivity.
Но у меня даже этот пример не работает. Это и натолкнуло на мысль что дело в симке.
Цитата(Sensei @ Feb 6 2009, 17:29)

Писал в суппорт, мне прислали работающий вариант:
at
OK
at+cfun=1
OK
at$nosleep=1
OK
at+cgdcont=1,"IP","internet.mts.ru"
OK
at%cgpco=1,"PAP,,",1
OK
at$destinfo="ftp.ntu.edu.tw",1,21,1
$DESTINFO: "ftp.ntu.edu.tw", 1, 21
OK
atd*97#
Wait Socket Open
OK
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 74 of 1500 allowed.
220-Local time is now 18:28. Server port: 21.
220 You will be disconnected after 10 minutes of inactivity.
Но у меня даже этот пример не работает. Это и натолкнуло на мысль что дело в симке.
Обрати внимание на строку at+cgdcont=1,"IP","internet.mts.ru", для выполеннеия этой строки необходимо чтобы симка была оператора МТС
Для твоего ЕМТ этот параметр будет другой, необходимо вписать точку доступа от ЕМТ
Да, я где-то на их сайте нашёл что АПН mms2.emt.ee
Но это не помогло. Не уверен что он подходит для Дииль.
Сейчас вставил симку от теле2, коннект проходит!!! По крайней мере пример из суппорта работает.
Значит это этот пакет не поддерживает гпрс...
asm_lock
Mar 18 2009, 14:36
Странно....я день убил на то, что бы понять что бенька с теле2 не работает

. ...с билайном нормально
asm_lock
Mar 18 2009, 15:42
Цитата(asm_lock @ Mar 18 2009, 17:36)

Странно....я день убил на то, что бы понять что бенька с теле2 не работает

. ...с билайном нормально
в Питере по крайне мере
Sensei
May 31 2009, 18:41
Столкнулся ещё с 1 проблемой.
Если подсоединяюсь к ftp.ntu.edu.tw, то всё нормально, но при подключении к компьютеру выдаёт следующее:
atd*97#
Wait Socket Open
ERROR
OK
CONNECT
OK
OK
NO CARRIER
Программа на компьютере включена, в исключения порт добавлен. Если пытаться зайти через браузер то в программе отображаются данные. Это значит, что соединение проходит до компьютера. В чём может быть дело?
Sensei
Jun 10 2009, 16:23
Сам разобрался. Дело было в том что в destinfo была указана 1 а не 0. at$destinfo="мой IP",1,порт,1. Последняя цифра разрешала использование ДНС, а был указан ИП. Нужно было просто вместо 1 написать 0...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.