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

 
 
6 страниц V  « < 2 3 4 5 6 >  
Reply to this topicStart new topic
> GPRS для чайников
p_kav
сообщение May 19 2015, 11:04
Сообщение #46


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 5-08-14
Из: Ярославль
Пользователь №: 82 466



CADiLO
Так там же куча всяких URC может приходить, про SMS, про регистрацию в сети, про выход питающего напряжения за пределы... Их что, все отключать перед каждым запросом и включать после него? Хотелось бы услышать совет из практики.

ISG2015
А SIM-карту в устройство будет вставлять пользователь, или вы сами? Если пользователь, то у какого-то оператора наверняка найдется какой-то тариф с дорогими разговорами и дешевым трафиком. У меня GPS-трекер с SIM-картой Мегафон и тарифом "Мегафон-Онлайн" уже года три на 300 рублях катается.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение May 19 2015, 11:13
Сообщение #47


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



Насколько я помню, вывод текста SMS это тело команды и до ОК прервано быть не может.
Я перепроверю конечно, но скорее всего что в текст SMS подмешаться URC не может.



--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
p_kav
сообщение May 19 2015, 11:21
Сообщение #48


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 5-08-14
Из: Ярославль
Пользователь №: 82 466



CADiLO
А остальные команды? AT+CNETSCAN, AT+CENG, AT+HTTPREAD, AT+CIPGSMLOC, которого ждать надо пару секунд? Во все не могут пролезть? На сколько я помню по экспериментам с SIM908, пролезают ещё как (правда, не помню версию прошивки, на которой тестировал). Если бы не пролезали, алгоритм конечного автомата управления модулем можно было бы очень упростить.
Go to the top of the page
 
+Quote Post
ISG2015
сообщение May 19 2015, 17:11
Сообщение #49


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547



Подскажите, где взять прошивку для SIM900R? Мне нужно сбросить модем в заводские настройки. Спс!

UPD
Вопрос снимается, разобрался.

Сообщение отредактировал ISG2015 - May 19 2015, 17:22
Go to the top of the page
 
+Quote Post
GeGeL
сообщение May 19 2015, 17:46
Сообщение #50


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Цитата
Если бы не пролезали, алгоритм конечного автомата управления модулем можно было бы очень упростить.

Вот как люди умудряются усложнять себе жизнь... Я давно работаю с Quectel ОЦПУ, и никогда не сталкивался с проблемами в этом плане. Конечно, при ожидании ответа на АТ-запрос может прийти левый URC, но ведь все равно все должно проверяться, перед тем, как парситься. Т.е. одной state-машины недостаточно, надо каждые данные парсить и проверять на соответствие ожидаемым. Для этого используется strstr. Ради интереса посмотрите код Quectel RIL (от производителя). Там обработчик события UART с подключаемыми парсерами, которые формируют callback-и.

Честно, тут я категорически не согласен со Stanley - он пошел на поводу юзерофильности, и потерялась изящность и прозрачность предыдущих версий ОЦПУ с опросом getEvent в цикле. Теперь фиг поймешь, в контексте какой нити выполняются callback-и и какие данные защищать мутексами. Но зато школьники тащутся - привычная и уютная среда...


Не заморачивайтесь на абстракциях. Просто попробуйте сесть, сосредоточиться и ясно представить, как реально будет идти обмен с модулем, и предвидеть по возможности все ситуации, а также предусмотреть вывод отладочного лога с указанием номеров строк и параметров.
ПС: АТ-ответы и URC никогда не разрываются другими URC - все становится в очередь. Любой ответ и URC, как правило, имеет префикс, указывающий на его принадлежность.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение May 19 2015, 17:53
Сообщение #51


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



О!

>>>Не заморачивайтесь на абстракциях.

Согласен 100%

Бритва Окама - самое то: "Не надо изобретать сущностей сверх необходимого"


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
ISG2015
сообщение May 21 2015, 07:59
Сообщение #52


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547



Подскажите ,а как идентифицировать оператора на SIM-карте? Запрашивать номер, вырезать первые цифры и по этим цифрам распзнавать?
Может быть есть элегантнее способ!?
Спс!.
Go to the top of the page
 
+Quote Post
RadikX
сообщение May 21 2015, 08:31
Сообщение #53


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

Группа: Участник
Сообщений: 125
Регистрация: 13-04-11
Из: Суровый Челябинск
Пользователь №: 64 337



AT+COPS =0,2 // Отображение название оператора в цифровом виде
AT+COPS? // Чтение ID оператора

25001: MTS
25002: Megafon
25020: Tele2
25039: Utel
25099: Beeline

Если поискать, то можно найти полный список операторов мира с их кодами. Список не такой уж и большой.
Go to the top of the page
 
+Quote Post
ISG2015
сообщение May 21 2015, 16:01
Сообщение #54


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547



А для Украины MNC кодами не поделится никто? rolleyes.gif

Пишу свою реализацию работы с модемом. Наметилось несколько вопросов:
1. При инициализации UDP сокета, команда "AT+CIFSR" возвращает локальный адрес, но не возвращает финального "ОК"! Я анализирую ответ от модема и считаю, что команда выполнена успешна именно по этому "ОК". Получается как то не але sm.gif Приходится городить что то типа такого:
Код
if ( SearchRespondSIM900( "OK" ) || SearchRespondSIM900( "." ) )

Точка является разделителем в IP адресе, но вполне может встретиться еще где-то.

2. Какое время установки сессии? У меня получается зарегистрироваться в течении 10,55 сек. с момента подачи питания на модем и 2,28 сек. если модем уже был включен.

Сообщение отредактировал ISG2015 - May 21 2015, 16:04
Go to the top of the page
 
+Quote Post
RadikX
сообщение May 22 2015, 02:50
Сообщение #55


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

Группа: Участник
Сообщений: 125
Регистрация: 13-04-11
Из: Суровый Челябинск
Пользователь №: 64 337



1.
Для Украины код MCC = 255, а идентификатор MNC присваивается в порядке регистрации:
- MNC:01 Ukrаinian Mobile Communication, UMC;
- MNC:02 Ukrainian Radio Systеms, URS;
- MNC:03 Kyivstаr GSM;
- MNC:04 Internаtional Telecommunications Ltd;
- MNC:05 Gоlden Telecom;
- MNC:06 Astelit;
- MNC:07 Ukrtelecom;
- MNC:21 CJSC - Telеsystems of Ukraine.
2.
AT+CIFSR является неподтверждаемой (без OK), и таких команд достаточно много. Ищите блоками заканчивающимися на концевик 0x0D 0x0A, большинство из них имеют префикс для распознавания ("+CREG:", например). Я пришедшие блоки маркирую в отдельном буфере и ищу ответы уже по нему.

Прототип функции обработки команд:
TStruct_OpResult AtOp_Template(TStruct_AtCommand *MyAtCommand, uint8_t CmdAnswer, bool IsUnsolicited, uint8_t RepeatCmd, uint16_t RepeatAnswer, bool ClearAnswerBuf);

Пример для AT+CIFSR:

AtOp_Template(AtCommand, cCmdData, TRUE, 3, 30, TRUE); - Ищем данные без префикса, подтверждающий OK не требуется, 3 повтора при неответе, ищем ответ 30 циклов, очистить перед посылкой буфер ответов;

3.
Регистрируется у вас долго, но это зависит от оператора.
Go to the top of the page
 
+Quote Post
ISG2015
сообщение May 26 2015, 06:59
Сообщение #56


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547



RadikX, спасибо!
1. Не хватает "Life", UMC это МТС нынешний?

2. На сколько я понял 0x0D 0x0A обрамляются все ответы модема. При этом с 2х сторон непосредственно ответа. Короче мне пока не ясно это дело.


3. Записывал на логическом анализаторе пакеты в обе стороны. Внимательно анализировал результаты. Судя по результатам все более менее ок.



Go to the top of the page
 
+Quote Post
RadikX
сообщение May 27 2015, 03:10
Сообщение #57


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

Группа: Участник
Сообщений: 125
Регистрация: 13-04-11
Из: Суровый Челябинск
Пользователь №: 64 337



Life - это торговая марка Астелит. а UMC - да, МТС до ребрендинга.
Правила формирований команд и ответов, а также базовый набор АТ-команд подробно описаны в документе "ITU-T Recommendation V.25 ter". В 99% процентах ответы обрамляются с двух сторон "концевиками" 0x0D 0x0A. Есть еще 1% который надо особо разбирать (вроде приглашение ввода при отправке SMS), ну да бог разработчикам протокола судья.
Go to the top of the page
 
+Quote Post
ISG2015
сообщение May 27 2015, 04:38
Сообщение #58


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547



Цитата(RadikX @ May 27 2015, 03:10) *
Life - это торговая марка Астелит. а UMC - да, МТС до ребрендинга.
Правила формирований команд и ответов, а также базовый набор АТ-команд подробно описаны в документе "ITU-T Recommendation V.25 ter". В 99% процентах ответы обрамляются с двух сторон "концевиками" 0x0D 0x0A. Есть еще 1% который надо особо разбирать (вроде приглашение ввода при отправке SMS), ну да бог разработчикам протокола судья.


Да. Спасибо.
По поводу ответов модема: здорово что обрамляются с 2х сторон 0x0D 0x0A, это и правда замечательно! Я только не совсем понял почему для одной из команд в ответе нет "ОК" sm.gif Хорошо, это не главная часть ракеты так сказать, разберемся.
Go to the top of the page
 
+Quote Post
ISG2015
сообщение Aug 26 2015, 18:41
Сообщение #59


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547



Доброго времени!
Пилю проект с модемами SIM900R. Столкнулся с такой траблой: время от времени в открытой UDP сессии происходит смена номера порта. То есть, IP не меняется, а вот порт меняется.
Так происходит если модем ничего не передает/принимает в течении приблизительно >8с. Это я так понимаю нормально?
У меня устройство выходит на связь с сервером реже (30с). Сервер отмечает у себя текущий слот с которого обратился модем. К тому времени когда мне необходимо обратится к модему/устройству данные по слоту(порту) устаревают.
Получается мне необходимо все время поддерживать линк отправкой/получением пакета только для того чтоб менялся порт слота?
Спасибо!

Сообщение отредактировал ISG2015 - Aug 26 2015, 18:42
Go to the top of the page
 
+Quote Post
p_kav
сообщение Aug 26 2015, 18:59
Сообщение #60


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 5-08-14
Из: Ярославль
Пользователь №: 82 466



Модуль тут не при чем, дело в операторе связи.
Они используют NAT, выпуская через шлюз множество клиентов. На всех клиентов получается всего около 64000 портов, поэтому настроены такие жесткие таймауты, чтобы не было ситуации когда все порты заняты.
Проблему можно решить купив услугу "Статический IP" или используя TCP - там таймауты помягче.

Сообщение отредактировал p_kav - Aug 26 2015, 19:01
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th April 2024 - 10:22
Рейтинг@Mail.ru


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