![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 26
|
![]()
Здравствуйте. Помогите пожалуйста с алгоритмом опроса GSM модемов.
Вот какая суть: научился принимать смс и звонки - для одного модема. Хотелось бы сейчас понять как можно реализовать работу с несколькими модемами. Думаю как то так: Создать несколько потоков(по числу модемов). ОбъектМодем1: Проверить СМС. Проверить входящий голосовой звонок. ОбъектМодем2: Проверить СМС. Проверить входящий голосовой звонок. Может у кого есть идеи? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
...собственно, а чего вы еще хотите? Вы сами выдали вариант - в потоках. Вот и приступайте, делаете буфер для своих AT команд и последовательно перебираете запросы с ожиданием ответа, дальше парсите (но это у вас уже все сделано, сами знаете).
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 13.05.2009
Сообщений: 26
|
![]() Цитата:
Дак вот думаю, мне нужен массив COM портов + чтобы они опрашивались в разных потоках - наверное как то так. И возникает вопрос: пришла команда RING - следовательно поток где опрашивались СМС - приостановить, а новый поток который будет работать с голосом - запустить... Последний раз редактировалось qZED; 03.05.2013 в 16:43. |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
...именно так.
1- создаете столько потоков, сколько обнаружите модемов. Обнаружить можно перебором портов через реестр или соответствующей ветки через SetupAPI, пример кстати есть в блоге программистов. Что это дает? Это дает универсальность вашей программе, которая динамически сама будет узнавать сколько модемов поддерживают ее (а проверить это можно опять же AT-командами). 2- в каждом потоке читаете буфер заданного COM-порта и по наличию данных делаете соответствующую реакцию. Если это RING, то посылаете AT-команду для идентификации номера звонящего, если это входящая SMS, то читаете ее и выводите туда - куда вам потребуется (то ли визуально в некую пользовательскую таблицу, то ли невизуально сохраняете ее в файл). Думаю, что запускать новый поток смысла нет, ведь если вы приостановили некий поток для совершения определенных действий, то пока они не завершатся, скажем проиграть речевое сообщение, поток будет ждать. После проигрывания сообщения, поток запускаем заново.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 03.05.2013 в 17:09. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 26
|
![]()
А как правильно переопределить метод?
Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
GSM модуль для МК из Nokia N73 | iukash | Компьютерное железо | 21 | 17.10.2016 20:45 |
перехват обращения к СОМ-порту и инициализация GSM модема | Biker_reg67 | C/C++ Сетевое программирование | 9 | 18.12.2012 08:54 |
Ищу компоненту ActiveX для отправки SMS с GSM-модема | Вадим Мошев | Свободное общение | 9 | 17.08.2011 14:37 |
Компоненты для GSM Traffic и SMS | mlab | Компоненты Delphi | 0 | 06.01.2008 13:39 |