во... наконецто народ сознаваться сталь что у него нихрена ничего не работает..
в силу того что даже незнает как модуль работает.
впрочим как и я.
ну для этого мы тут и собрались.... чтобы выяснить все "китайские" моменты.
пока я заметил тока одно..что модуль одновременно принимать и передовать не может ( я думаю что оно так и должно быть, ПОТОМУ ЧТО ПОДРУГОМУ НЕ ПОЛУЧИТСЯ!!)
потому что если прям сразу отправить ему что нибуть после прихода чево нибуть из модуля... и даже по теме модуль бывает нихрена не понимает.
поэтому приходиться делать между ними паузу.
-------------------------
теперь по обработке ответов.
вот пример....
подключаемя к серваку и дрочим модуть входящими звонками..в момент подключения!!!
--------
пояснение небольшое....
чтобы упростить себе жизнь и не набирать каждый раз то что можно не набирать я сделал так..
; предварительная настройка модуля
;
; ATE0 - выключаем эхо
; ATV0 - переводим режим ответов в цыфровой режим
; AT+CMEE=0 - выключаем коды ошибок, и получаем цифровой вид error без пояснений на код ошибки
;
; настраиваем под PPP
;
; AT+CIPATS=0 - отключаем таймер авто посылки
; AT+CDNSORIP=0 - выбираем режим IP
;
; настраиваем под SMS ---- я исползую смс на русском языке
;
; AT+CMGF=1 - включаем текстовый режим
; AT+CSCS="UCS2" - включкем юникод
; AT+CSMP=17,167.0,25 - выбираем параметры текстового режима
;
; AT&W - Запись в модуль выбраных настроек
;
после этого эти команды находятся в таком состоянии по умолчанию...
следовательно их больше не набираем.
так вот ДЕЛАЮ ТАК..
влючаю устройство....
Call Ready - жду пона оно не поймает это и только потом начинает рабатать
AT+CGATT=1 - выдаю это !!!! тут 0=ОК и оно сразу не вываливается, есть какаято пауза
похоже что тут ок вываливается не на приём команды а на конкрето конект в сети gprs.. ну или не конект
0 - это ОК в цыфровом виде - далее понятно...
AT+CIPCSGP=1,"internet.volga"
0
AT+CIPSTART="TCP","89.X.X.X","6565" - а вот тут чуть зарание беру телефон и звоню на модуль... ОК вываливается сразу после набора команды итолько потом сразу RING=2
0
2 - это RING
2
2
3 - а это я дал отбой..и если долго ждать то отбой даст оператор.
так вот дальше конектится к серверу нет смысла.. потому сто мы звонком отвалили жпрс
AT+CIPSHUT - этим надо закрыть подключения к серверу... а то без этого дальше ничего не получится <--- вот тут уже результат обработки ответов
0 = ок
AT+CGATT=1
0
AT+CIPCSGP=1,"internet.volga"
0
AT+CIPSTART="TCP","89.X.X.X0","6565"
0
+PDP: DEACT
6
AT+CIPSHUT
0
AT+CGATT=1
0
AT+CIPCSGP=1,"internet.volga"
0
AT+CIPSTART="TCP","89.X.X.X","6565"
0
+PDP: DEACT
6
AT+CIPSHUT
0
AT+CGATT=1
0
AT+CIPCSGP=1,"internet.volga"
0
AT+CIPSTART="TCP","89.X.X.X","6565"
0
+PDP: DEACT
6
и так далее по кругу... пока не включим сервер
он был спецыально выключен для настройки обработки комант начинаюшихся на +.....+PDP: DEACT
кокоче сделан автоматический конект к серверу..пробовал звонить.. посылать смс..ничего не мешает.. всё это игнорируется и конект начинается заново...
(тут ещё не закончено... пока не настроен сам конект при включеном сервере... по тех причинам.. но это дело времени)
-----------
теперь про обработку осветов....
как вы уже заметили я модуль переключил на цифровые ответы.. (посмотрите командуATV0)
но в работе с жпрс некоторые команды идут всётаки в текстовом формате
например CONNECT.... в разных вариациях
(если кто знает как это сделать..дайте знать.. я пока не нашол.)
короче после команды сразу после неё AT+CIPSTART идёт ответ на принятие самой команды который может быть только двух видов
0 или 4 = ок или еррор
впринципе ответ 4 теоретически возможен а практически если передача в модуль отлажена хорошо то 4 получить трудно но реально ( короче в некоторых устройствах можно не делать)
так вот если 0 идём дальше если 4 набираем команду занова.
теперь после ОК
будут ответы на сам конект к серверу.. + цифровые
значит будут и цифровые и текстовые...
тут требуется помощь колектива!!!! так как в пдф нет реального синтаксиса ответов... гдето перед текстом стоит + гдето нету...
а проверить все РЕАЛЬНЫЕ ответы я не могу.
поэтоу у меня щас запущена обработка не всех команд....
для меня это важно... для того чтобы избежать всякие зависания ПОТОМУ ЧТО Я НЕ ПОЛЬЗУЮСЬ ПРОЦОВЫМ ВОТЧДОГ или кто он там не важно...
так вот чтобы у нас ничего не повисло нам надо знать все варианты ответов...
(

странно ... описывая это .. сам начинаю понимать как оно работает!!!)
теперь ..после уже обработаного 0 просто принимаем байт и начинаем его сравнивать
выглядит это так
принимаем байт - пусть например будет 0D
И НАЧИНАЕМ СРАВНИВАТЬ СО ВСЕМИ ВОЗМОЖНЫМИ В ЭТОМ МЕСТЕ!!!!!!!!!
0=
1=
2=
3=
4=
6=
7=
8=
9=
(некоторые могут начинатся на +... например в этом месте может прийти смс..проверено...заначит добовляем+)
+=
(некоторые могут начинатся на CONNECT ... я не помню начинается ли он на +..заначит добовляем 43)
43=
если дошли досюда то значит нам это байт не нужен и начинаем ловить его занова- идем на "принимаем байт "
--------------
пеперь по веткам
0 = значт ок (тут надо проверить как откликнится CONNECT ОК- возможно будет ответ = 1) если по этой команде то
идём на CIPSEND
---------------
2= это ринг, он нам нах не нужет при конекте... но есть два варианта (мы пытаемся приконектится поэтому 3й вариант нах)
1й дать ответ ATH и потом уйти на "принимаем байт "
2й просто проигнарировать и уйти на "принимаем байт " - у меня пока так
3й обработать звонок если вам надо
---------------
раз была 2
значит обязательно 3
3= уйти на закрытие конекта и начинаем заново... так как звонок нам сорвал жпрс
---------------
если приняли
43=то это могут быть
CONNECT в разных вариациях ..ОК или FAIL --ТИПА КАСЯК!!!
тогда после 43 начинаем ловить дальше пропуская 7 байт и цыпляемся за 8й
это будет О или F - ну что делать с ними понятно...опять ухлдим в две ветки..
-------------
+= это значит будет текстовая команда с ней поступаем также как с предыдущей..
----------------------------------------------------
я думаю принцип обработки ответов понятен...
это я приводил опираясь на применения асемблера.
и не приводил реальных исходников чтоб народ не заморачивался а понял принцип действия.
я не утверждаю что это правельный или единственый метод..
но на обработке некоторых команд уже проверено.
-------------------------------------------
теперь "помошь зала"
нужен весь список реальных ответов (реальных это не из пдф. а хотябы из гипер терминала) с правельным синтаксисом
после команды..
AT+CIPSTART="TCP","89.X.X.X","6565"
ОК - это поняно
нато то что возможно тут!!!!!
уже знаю такие ответы
+PDP: DEACT
+CMTI:.....
CONNECT ОК
CONNECT FAIL
2=RING
3=NO CARRIER
6=NO DIALTONE
-----------------
А ВОТ ЭТИ 2 Я ДУМАЮ ЧТО НЕ ВОЗМОЖНЫ... МЫЖ ТУТ НЕ ЗВОНИМ!!!
7=BUSY
8=NO ANSWER
-----------------
КАКИЕ ЕЩЁ ???????