Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

769

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

343

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

278

Россия, Санкт-Петербург


ID: 325460

CradleA

Мастер-Эксперт

209

Беларусь, Минск


ID: 137394

Megaloman

Мастер-Эксперт

158

Беларусь, Гомель


ID: 400815

alexleonsm

6-й класс

130


ID: 400669

epimkin

Профессионал

120


8.8.15

09.05.2021

JS: 2.8.21
CSS: 4.5.5
jQuery: 3.6.0
DataForLocalStorage: 2021-05-15 03:46:17-standard


Создание программ на программной платформе .NET Framework и языках С# и Java.

Администратор раздела: Коцюрбенко Алексей Владимирович (Старший модератор)

Консультация онлайн # 159767

Раздел: .NET Framework / C# / Java
Автор вопроса: Ленар М.
Дата: 06.02.2009, 14:12 Консультация закрыта
Поступило ответов: 0

Здравствуйте, уважаемые эксперты. Данный вопрос был мной задан и в тему faq по Delphi, но думаю, здесь он уместнее.
Необходимо написать программу работы с СМС. Конкретнее - есть gsm модем, подключенный к сом порту, на который и с которого смс принимаются/отсылаются. Формат команд/ответов есть, т.е. с "верхним" уровнем проблем нет. Но, как известно, компонета "модем" нет ни в одной среде (что конечно вполне естественно). Раньше с подобными задачами не сталкивался (профиль не тот), потому покопал в инете и выяснил, что необходимо писать модуль для работы с сом портом, что я уже сделал, но есть тонкости. Сейчас модуль написан для работы в синхронном режиме с отдельным потоком для чтения и событием, обработчик которого вызывается при получении байта, но и так загрузка процессора составляет 20-25% (опрос ведь также происходит в цикле). Есть функция SetCommMask, которая как нельзя лучше подходит, но она для асинхронного режима работы. Как здесь мне быть? Использовать эту функцию и работать в асинхронном режиме? (модем то любой работает в синхронном). Просто следить чтобы операции не "перекрывались". Или же есть какие то другие механизмы? Встретилась такая фраза:
"Особенности непосредственной работы с модемами я не буду рассматривать, так как существует большой набор высокоуровневых функций и протоколов, таких как TAPI, специально предназначеных для работы с модемами. Если Вас все же интересует эта тема, то почитайте описания функции GetCommModemStatus, и структур MODEMDEVCAPS и MODEMSETTINGS. В остальном работа с модемом ничем не отличается от работы с обычным портом."
Почитал я про то, что говорит автор слов, но понял - мне это не нужно, соединений я не создаю и т.п. Просто нужно иногда посылать в порт нужную команду, читать ответ и все... В остальном программа просто ждет прихода в порт строки (строка определенного формата посылается в порт модемом при приходе смс или входящем звонке)...
Конечно я наверное заново изобретаю велосипед - есть множество готовых уже компонентов типа "Сом-порт", но не в моих принципах не знать как и что делает каждая строка кода, да и за стабильность работы программы как я в таком случае могу отвечать?
Заранее огоромное СПАСИБО!!!

Ответов пока не поступило

Мини-форум консультации # 159767

Нет сообщений в мини-форуме

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

CradleA

Мастер-Эксперт

Рейтинг: 209

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 74

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 74

solowey

Профессор

Рейтинг: 21

Степанов Иван /REDDS

4-й класс

Рейтинг: 1

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0