Стартовая страница › Форумы › Понять, как работает ПО › Работа с GSM модемом (СМС)
- В этой теме 36 ответов, 5 участников, последнее обновление 4 года, 4 месяца назад сделано Mikhail.
-
АвторСообщения
-
03.12.2019 в 10:12 #14268manjey73Участник
Оказалось не так то просто выложить библиотеку SMS, она тянет за собой AddressBook и ее код… Форму конкретно. Как ее добавить я не знаю. Думал достаточно будет ссылку на библиотеку.
03.12.2019 в 13:33 #14269manjey73УчастникВ общем выложил на GIT исходник, но чтобы собирать, надо интегрировать эти файлы в код scada-master от разработчика. Там подтягивается AddressBook и как отдельно я не знаю…. (з.ы. мопед не мой ) 🙂
03.12.2019 в 13:36 #14270manjey73Участник- Этот ответ был изменен 4 года, 4 месяца назад от manjey73.
- Этот ответ был изменен 4 года, 4 месяца назад от manjey73.
- Этот ответ был изменен 4 года, 4 месяца назад от manjey73.
- Этот ответ был изменен 4 года, 4 месяца назад от manjey73.
- Этот ответ был изменен 4 года, 4 месяца назад от manjey73.
- Этот ответ был изменен 4 года, 4 месяца назад от manjey73.
03.12.2019 в 13:51 #14278manjey73Участник03.12.2019 в 13:55 #14279manjey73УчастникВот, с пользователем Mitrich протестировали в две руки. (у меня просто модема нет).
Для Михаила. Возможно не туда впихнул код. Но если ставить в другие места, то значение появляется только в текущих данных, а его надо бы сохранить в БД, чтобы потом можно было посмотреть. Так что как правильно не знаю… Но работает.
Формула в текстовом виде.
public static double ParseToDouble(double value) { double result = Double.NaN; string s = ScadaUtils.DecodeAscii(value); int idx = s.IndexOf(" "); if (idx != -1) { s = s.Substring(0, idx); } if (!double.TryParse(s, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("ru-RU"), out result)) { if (!double.TryParse(s, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("en-US"), out result)) { return Double.NaN; } } return result; }
з.ы. если вдруг не заработает KpExSms, то выложу первоначально переделанную KpSms, а то не знаю, вдруг какие то конфликты будут….
03.12.2019 в 14:09 #14282manjey73УчастникВот еще пожелания от Mitrich
прикрутить отправку AT команд для диагностики сети
«Уровень сигнала» и «Регистрацию в сети»з.ы. еще от меня
Как то прикрутить шаблон к библиотеке, чтобы привязывалась к КП, в которой можно было бы настроить различные варианты парсинга. Даты и времени, нескольких значений, если в СМС их будут несколько и создание требуемого количества сигналов для этого.- Этот ответ был изменен 4 года, 4 месяца назад от manjey73.
03.12.2019 в 14:42 #1428403.12.2019 в 16:22 #14286MitrichУчастникОтправка: AT+CSQ
Приём: +CSQ: 14,99
Дальше по нехитрой формуле определяем уровень сигнала в дБ: [-113 + Х * 2]
т.е. у меня сигнал -113+14*2 = -85 дБ1. Первое число (в примере 15) — это параметр уровня сигнала.
2. Второе число (в примере 99) — это коэффициент ошибок.
Уровень сигнала сети измеряется в RSSI — стандартная условная единица для GSM.
В документации Received Signal Strength Indication(RSSI)
RSSI может принимать значение от 0 до 31.
Сигнал выше значений 12-13 считается хорошим.
Выше 15 считается отличным.Максимальным, практически никогда не бывает, так как оператор регулирует мощность сигнала в мобильных устройствах.
Т.е. если Вы видите значение 30 или 31, это может свидетельствовать о проблемах со связью!
Второй параметр это коэффициент ошибок. Значение в процентах
В документации Bit Error Rate
0 — Меньше чем 0.2%
1 — 0.2% to 0.4%
2 — 0.4% to 0.8%
3 — 0.8% to 1.6%
4 — 1.6% to 3.2%
5 — 3.2% to 6.4%
6 — 6.4% to 12.8%
7 — Больше чем 12.8%
99 — Неизвестно или не определеноСобственно, хотелось бы в текущих тегах КП видеть не просто информацию связь (есть/нет), а еще и уровень приема, если это возможно.
Понятно, что эту команду можно выполнить вручную и в логах посмотреть (Команда ТУ (2)-(Бинарная)-(строка) AT+CSQ, но для информативности она не помешает.
- Этот ответ был изменен 4 года, 4 месяца назад от Mitrich.
04.12.2019 в 10:27 #14294manjey73УчастникКстати предложение переносить события через БД и обратно не лучшее решение.
Каналы все равно будут созданы для БД Scada. но при этом потребуется устанавливать еще и стороннюю БД ? модуль экспорта умеет работать с БД Scada ? насколько помню нет…А вот допилить драйвер чтобы была возможность гибкой настройки было бы неплохо. Просто я боюсь что-то сломать в нем, ну и может в нем стоит добавить каких-то механизмов для расширения возможностей.
Прикрутить то чтение шаблона наверное можно, но как прикрутить потом его использование более правильно, а не как я, как курица лапой…04.12.2019 в 10:35 #14295manjey73УчастникКстати было бы удобно, если бы Модуль Экспорта умел работать с собственной БД Scada системы.
Создали канал для чего-то (а в последствии если появятся текстовые базы) и тут же модулем кинули в этот канал текстовое сообщение из СМС.Далее обработка.
04.12.2019 в 12:56 #14296RomirosУчастникМожно экспортировать через модуль в БД, а потом через KpDbImport назад в скаду :).
А вообще, что мешает текстовые сообщения записать в события, или нужно их отображение непосредственно на схемах?
04.12.2019 в 13:26 #14297manjey73УчастникВ примере Mitrich отправляется SMS с кодом, Scada Модулем автоматического управления передает данные.
Я посмотрел, в модуле есть управление по событиям, но ведь надо проверить разрешенный номер, и определить еще код команды.
Вариант 2 — По команде через SMS устройство само вернет какие-то данные.
Так чтобы экспортировать нужна дополнительно еще и БД, чтобы из нее сделать импорт еще. А для простых задач зачем это все ?
Как вариант да, отображение на схемах в том числе, если прочесть хотелки — Уровень сигнала и регистрация в сети…
- Этот ответ был изменен 4 года, 4 месяца назад от manjey73.
04.12.2019 в 18:17 #14300MikhailМодераторВо входных каналах хранятся временные ряды. Записывать туда СМС неудобно, потому что СМС ближе к событиям по смыслу.
04.12.2019 в 18:19 #14301MikhailМодераторЕсли есть заранее известный список разрешённых номеров то на каждый номер надо создать отдельный КП и тогда СМС будут записываться в события с привязкой к этим КП. Если нужно, могу описать подробнее, как настроить.
04.12.2019 в 20:38 #14302manjey73УчастникДа, СМС ближе по смыслу к уведомлениям, но в СМС могут поступать данные. Ну например удаленный прибор по команде из СМС присылает данные. Что то типа Кситал как вариант.
Ну и подобные системы. По этому и хотелось бы сделать некоторые дополнительные функции к драйверу а не реализовывать дополнительные модули.Тут вопрос в том, как привязывать шаблон к КП ? каким образом ?
Второй момент все же сделать чтобы СМС попадало не только в текущие данные, но и сразу попало в БД. скажем запись БД раз в минуту (или в 30 сек. настроено), как правильно определить период записи БД и найти ближайшее и записать ? тогда на графиках будет точки записи полученных СМС -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.