Блок пользователя для работы с GSM

Создаем свой блок. Вопросы, помощь знатоков.
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#121

Сообщение Слимпер » 12.08.2016{, 18:48}

stapmoff, сделал для вас специальную тестовую версию
В ней есть доп вход Na_start, он запускает инициализацию принудительно.
А так же в терминал должно сыпаться много дополнительной информации (все что МК отправляет модулю будет с префиксом Sapros_, а что получает OTVET_).
Было бы не плохо выложит суда результаты.

Добавлено (12.08.2016, 18:48)
---------------------------------------------
НовыйUser писал(а):SIM800L не завелся.как вариант
Не так меня понял, через терминал напрямую у него все нормально,  а вот с моим блоком не хочет.
Вложения
test_14.flp
(868.1 КБ) 68 скачиваний

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#122

Сообщение Слимпер » 12.08.2016{, 19:25}

Цитата НовыйUser
И все же Дим, иметь возможность нужную после прочтения пдфки дать команду блока на вход и получить ответ на выход это имеет смысл... чтобы не делать кучу входов которые могут быть невостребованны, а дать возможность самостоятельно подать команду и обработать..или какой запрос...
Подумаю, но в той реализации, что сейчас есть, возникнут проблемы. Не вижу я пока как это можно сделать чтобы было понятно и удобно.
Да и вообще думаю скоро, (заставлю текущею реализацию работать) перерыв сделаю, а то другие дела зависли.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#123

Сообщение Слимпер » 12.08.2016{, 19:42}

Я понял почему ни чего не выдает блок, хотя ответ приходит, помог AL Terminal

У меня код ответы разбивает на строки по силовому \n ($0A)
Затем при получении ответа анализируется строка на наличие открывающих и закрывающих кавычек.
А от Мегафона приходит:

+CUSD: 0,"20.02?$0A
$0A
????? *210#- ??????? ???? ???????! ???????????? (3 ?/?)$0A
$0A
",72$0D$0A
$0D$0A
OK$0D$0A

То есть программа в первой строке не находит закрывающие кавычки и по этому не выдает строку на выход. Что с этим делать даже не знаю
Последний раз редактировалось Слимпер 12.08.2016{, 19:44}, всего редактировалось 1 раз.

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Блок пользователя для работы с GSM

#124

Сообщение Max » 12.08.2016{, 20:39}

Значки вопросов в ответе Мегафона, возможно, символы на кириллице... А у нас модули кириллицу не понимают.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#125

Сообщение Слимпер » 13.08.2016{, 05:33}

Max писал(а):Значки вопросов в ответе Мегафона, возможно, символы на кириллице... А у нас модули кириллицу не понимают.
Это понятно, главная закавыка, не в вопросиках,  а в нарезки строки на части, ну можно разве выводить только первую часть строки, где число есть.
Да и кириллицу может и можно принять, в формате Юнкикоды, но что с ней дальше делать, я вот как то не разу не работал в ардуинуо с кириллицей, кроме как выводил хексами на экран.
НовыйUser писал(а):а время ожидания модуля 20000мс по прежнему нужно ?
Так это не время ожидания, а время максимального ожидания, т.е реально блок ждет привольного ответа от модуля, если пришло через 10 мс, идем дальше, если нет ждем до 20сек, если так и не пришло, выдаем ошибку с кодом 2. Можно и убавить, я его большим сделал только для того когда вручную симулирую ответы модуля для теста программы.

Добавлено (13.08.2016, 05:33)
---------------------------------------------
НовыйUser писал(а):прокатит ли но человек пишет делал такGSM_Send_Modem_Command("AT+COPS=2\r\n");//de register
GSM_Send_Modem_Command("AT+CTZU=1\r\n");//automatic time zone update is enabled
GSM_Send_Modem_Command("AT+COPS=0\r\n");// register to network
GSM_Send_Modem_Command("AT+CCLK?\r\n");// gets the clock of the MT
У меня так получилось
СпойлерПоказать
+PBREADY

AT+CREG?

+CREG: 0,1

OK

AT+CMGF=1

OK

AT+CSCS="GSM"

OK

AT+CLIP=1

OK

AT+CNMI=2,2,0,0,0

OK

AT+CCLK?

+CCLK: "05/01/01,00:00:30+28"

OK

AT+COPS=2

OK

AT+CTZU=1

OK

AT+COPS=0

OK

AT+CCLK?

+CCLK: "16/08/13,02:32:03+28"

OK
Так что работает
Последний раз редактировалось Слимпер 13.08.2016{, 05:34}, всего редактировалось 1 раз.

Аватара пользователя
stapmoff
Лейтенант
Сообщения: 341
Зарегистрирован: 16.05.2016{, 10:21}
Репутация: 4

Блок пользователя для работы с GSM

#126

Сообщение stapmoff » 13.08.2016{, 06:35}

Попробовал я тестовую прошивку 14. Странно но завелось все с первого раза и кнопка не понадобилась

Добавлено (13.08.2016, 06:35)
---------------------------------------------
А по поводу времени я давно думал, пробовал это реализовать, но время не обновлялась. Если добавите это в блок будет супер)

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#127

Сообщение Слимпер » 13.08.2016{, 09:01}

stapmoff писал(а):А по поводу времени я давно думал, пробовал это реализовать, но время не обновлялась. Если добавите это в блок будет супер)
Попробовать то можно, но как это все должно быть надо думать.
1. Выдавать дату время в виде строки?
2. Синхронизация при запуске модуля, это вроде ясно, а вот потом когда или как?
3. Да и вывод текущего времени только по запросу или вообще постоянно, скажем раз в час (минуту).
Да и не плохо бы проверить, работает ли о кого кроме меня. (я специально написал полную последовательность команд которые сработали).

Вообще вот какие есть нюансы Снова про время, как узнать локальный часовой пояс
Оператор Билайн. Выдал точное местное время. А вот пояс почему-то +08 (?). Вместо +02.

+08 потому, что значение в четвертях часа. На этот счет смотрите описание команды AT+CCLK.
НовыйUser писал(а):таким образом можно все эти переходы на зимнее/летнее время корректировать без ручного обновления прошивки
А вы Алексей из какой страны? А то у нас в России перевод отменил.

Добавлено (13.08.2016, 08:44)
---------------------------------------------
Сейчас пробовал через терминал работать с Телефонной книгой. Ну вроде нормально получается, можно попробовать интегрировать, но только это точно увеличит размер блока.
Он так скоро половину памяти в 328 займет. Надо будет потом лайт версию делать.

Но для начала проверти у себя нормально ли работают команда
AT+CPBF=«что ищем» Икать можно, как я понял, только имя контакта, на латинице 
AT+CPBS?

Добавлено (13.08.2016, 09:01)
---------------------------------------------
Я сейчас вижу, что можно сделать настраиваемый префикс имени контакта и также настраиваемое число номеров (Чем больше поставишь число тем больше будет занято оперативки)
Пример:
СпойлерПоказать
Делаем префикс скажем  TEST и число номеров 4

Заполняем симку  TEST1, TEST2, TEST3, TEST4

В блоки при после инициализации поиском ищем TEST, составляем массивы с телефонами, а при получении смс или звонка, проходимся по массиву и смотрим есть ли такой номер, если есть на выход (наверно еще один делать надо) выдаем   TEST1 (TEST2, TEST3, TEST4)

Но если на симки будет больше чем ограничение,  что мы выставили, остальные будут отброшены (иначе могут быть глюки, памяти не хватит)
Последний раз редактировалось Слимпер 13.08.2016{, 07:40}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#128

Сообщение Слимпер » 13.08.2016{, 14:44}

НовыйUser писал(а):по АТI какая версия что время работает ?
ati
NEOWAY
M590
REVISION 01.30d
OK
at+getvers
1103_C6C30000_V0130d
OK

в документе Neoway M590 AT Command Sets_V3.0 на 13 странице

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#129

Сообщение Слимпер » 14.08.2016{, 12:00}

Очередная тестовая версия.

Из того что удалось:
1. Частично победил баланс по команде *100#
Т.е. теперь на выходе  USSD_return, выдается вся строка с вопросиками.
Есть только ограничение, если строка окажется длиннее 160 символов, то она не будет выведена.
Дольше всего с этим бился, пришлось опять часть кода приема данные переписывать.

2. Получилось реализовать, по описанному выше прицепу, работу с телефонной книгой SIM карты.
Вложения
test_16.flp
(938.8 КБ) 61 скачивание
Последний раз редактировалось Слимпер 14.08.2016{, 12:06}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#130

Сообщение Слимпер » 14.08.2016{, 13:18}

НовыйUser писал(а):все думаю с временем как быть....можно выдавать как есть...без перделки строки с часовым поясом...продолжаем тесты...
А у вас время то заработало ?

Еще про телефонную книгу, заработало?
Если будет работать и такой механизм устроит.  
Переделаю наверное так, чтобы убрать T_Name, и если есть в телефонной книге то выводить T_Nomer имя контакта, если нет то уже телефон
И сделаю чтобы можно было на вход Phone подавать и цифры и имя контакта.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#131

Сообщение Слимпер » 14.08.2016{, 13:59}

НовыйUser писал(а):на одном из двух модулей не работает точно почему-то время... но это не показатель...если твой работает, то значит имеет смыл сделать...а там как у кого повезет...видать в прошивке дело, но найти firmware update к 590 не нашел пока нигде...
Подожду что stapmoff скажет.  Мне интересно эти команды по времени сработают на 800 или нет.
Если получится, то попробую сделать.

Добавлено (14.08.2016, 13:59)
---------------------------------------------
НовыйUser писал(а):интересно.... как ты думаешь а имеет ли смысл еще сделать вход не только под баланс...а вообще под любые ussd запросы ? (http://www.mts.ru/mob_connect/help/usef ... l_numbers/)я что-то только сообразил.... т.е свитчем или как ты предложил ранее выбрать нужные ussd запрос... и на выходе текст ussd запроса...не обязательно балансом именовать выходы... только не помню под другие ussd приходит смски или аналогично балансу текстовое сообщение....
Так оно уже сейчас просто по USSD запросы сделано, послать можно, что угодно.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#132

Сообщение Слимпер » 14.08.2016{, 15:43}

НовыйUser писал(а):да. при пропущенных звонках секунд на 5-10 ошибка 3 появляется и исчезает
Ладно попробую глянуть, что там приходит реально.
Ну возможно дело в том, что после включения модуль секунд десять стартует.
И думаю это не такая уже проблема.
НовыйUser писал(а):я может чего не понял... но номер в симку записал транслитом и всего 1 из 250...поставил в 590 и с другого позвонил.... имя по книге не высвечивается с выхода tname
В том примере, что я прислал номер должен начинаться на Test (настраивается в параметрах)
У меня при тесте был контакт с именем  Test1.
Последний раз редактировалось Слимпер 14.08.2016{, 15:43}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#133

Сообщение Слимпер » 14.08.2016{, 16:10}

НовыйUser писал(а):как должен выглядеть параметр при контакте TEST1 ?
Name_Contaсt должен быть TEST , большими раз вы в контактах забили большими.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#134

Сообщение Слимпер » 14.08.2016{, 16:21}

НовыйUser писал(а):обратите внимание при определенном повороте клипсы антенны ее коннектор на модуле может лечь на ножку паяного контакта...
Это к чему? У меня она сейчас вообще в верх выгнута.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#135

Сообщение Слимпер » 14.08.2016{, 17:05}

НовыйUser писал(а):TEST1 имя контакта соответственно не вытирается и остается на выходе... (тереть или нет - не знаю)
Надо подумать еще над этим.
НовыйUser писал(а):- скорее всего ошибка старта будет если будет стоять на симке PIN
Должна, добавлять еще и обработку PIN, не вижу смысла.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#136

Сообщение Слимпер » 14.08.2016{, 17:14}

Переделал как описывал выше.
Если есть в телефонной книге то выводить T_Nomer имя контакта, если нет то уже  номер телефона.
На вход Phone  можно подавать и номер телефона и имя контакта.
 У меня работает.
Вложения
test_17.flp
(806.57 КБ) 57 скачиваний

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#137

Сообщение Слимпер » 14.08.2016{, 17:27}

НовыйUser писал(а):не могу смоделировать ситуацию с watchdog.... когда по зависанию матплата пойдет в ребут.... но кнопкой на плате сброса контроллер сбрасывается, только подключение к модему судя по нулем везде, нету...
Ну да сейчас так и будет при старте модуль ждет прихода сообщения от модуля +PBREADY, только потом стартует.
Тут надо или перезагружать сам модуль или дорабатывать программу блока.
Но как это должно работать я не знаю.

Сейчас с временем разбираюсь.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#138

Сообщение Слимпер » 14.08.2016{, 18:01}

НовыйUser писал(а):т.е не получается в имеющемся варианте блока добавить вход на которой логическая 1 поступает и блок шлет принудительно без всяких разудумий в порт AT+CFUN=1 ? просто как говориться лупит команду в порт модулю.... (а навеску для логики ребута сами пользователи думать будут)
Сделать можно, но вот как правильно. 

Для  M590


СпойлерПоказать
AT+CFUN=<fun>
Syntax <fun>:
Optional functions may be:
0: minimum functionality meaning switch off of the MS
1: full functionality meaning start up MS (from offline mode)
4: disable phone both transmit and receive RF circuits (Airplane mode)
(GFS21 line and higher)
6: enables the SIM-toolkit interface and fetching of proactive commands by
SIM-APPL from the SIM-card
7: disables the SIM-toolkit interface and enables fetching of proactive
commands by SIM-APPL from the SIM-card
8: disable fetching of proactive commands by SIM-APPL from the
SIM-card
15: silent reset (reset MS without resetting the SIM).
16: r eset (reset MS with resetting the SIM).
Это для для 800 


СпойлерПоказать
+CFUN: 1
Где
0 — минимальная функц иональность
1 — полная функц иональность
4 — отключен приемо/передатчик

1 -перезагрузка
А  вообще :

Цитата MaxSIM800L четко отвечает на АТ команды. М590 иногда конкретно тупит и шлет кракозябры, хотя скорость выставлена нужная. После перезагрузки восстанавливается. Часто просто отказывается общаться, не отвечает на АТ команды... Перезагрузка восстанавливает общение, хотя может и повторяться неоднократно.

Кто то еще писал, что надежнее их перезагружать реле по питанию 
Пробовал сейчас AT+CFUN=1, ноль эмоций

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#139

Сообщение Слимпер » 14.08.2016{, 18:22}

Слимпер писал(а):Пробовал сейчас AT+CFUN=1, ноль эмоций
Я имел виду что после этой команды он вернул OK, но вот сообщений:
MODEM:STARTUP и +PBREADY не последовало, так что похоже они не перезагружался

Команда AT+CFUN=1перезапускает весь GSM стек: происходит полный
программный сброс. Все параметры сбрасываются до своих предыдущих зна-чений, если не использовалось AT&W.
Это я простои из книге  брал.
Последний раз редактировалось Слимпер 14.08.2016{, 18:31}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#140

Сообщение Слимпер » 14.08.2016{, 19:16}

НовыйUser писал(а):понятно... вход сброса вычеркиваем из списка...
Пока так, да и аппаратный сброс надежнее 

Сейчас заканчиваю тестирования блока с синхронизацией времени.

Ответить

Вернуться в «Разработка пользовательских блоков»