Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 04.08.2014
Сообщений: 2

COM порт и потоки

04.08.2014, 21:47. Показов 1995. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите плиз железячнику разобраться с мьютексами!

Есть девайс, который подключается к компу через ком порт. При посылке в него определенной команды, он начинает периодически (несколько раз в секунду) выдавать посылки по 10 байт, которые надо читать и обрабатывать. Проблема в том, что появилась необходимость посылать этому девайсу команды. На данный момент приложение на компьютере (С++ Builder), которое общается с устройством в обработчике нажатия на кнопку, скажем, «Начать» посылает команду в ком порт и запускает новый поток функцией _beginthreadex. В этом потоке бесконечный цикл с WaitCommEvent и ReadFile(COMprt,&in_buff,10,&dwNumBytesR ead,NULL). При попытке в обработчике кнопки, скажем, «Послать команду» записать в тот же порт несколько байт получается ошибка. Т. е. мне надо приостановить поток чтения на то время пока шлются байты в порт. Как мне это сделать? В каком месте кода надо создавать мьютекс, где должны быть команды WaitForSingleObject и ReleaseMutex? Возможно есть другие варианты как это сделать без мьютексов? Спасибо заранее за помощь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.08.2014, 21:47
Ответы с готовыми решениями:

COM порт, GTK+, потоки
Всех приветствую! Нужна Ваша помощь! Суть вопроса: Есть прога работающая с исп. GTK считывающая данные с COM порта. Работала без...

COM порт, потоки, и таймер. Считывание данных
всем привет, такая задача. Нужно считывать данные с ком порта, сразу после того как я открыл ком порт. начал с этой темы. ...

Распараллелить потоки при чтении и записи в serial порт
Всем привет! Подскажите с типичной задачей. Я в цикле (в идеале в бесконечном) читаю команды из сериал порта (3 команды мне нужно...

4
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
05.08.2014, 09:13
Цитата Сообщение от st_ilya Посмотреть сообщение
При попытке в обработчике кнопки, скажем, «Послать команду» записать в тот же порт несколько байт получается ошибка.
Какая ошибка? И как шлете?
0
0 / 0 / 0
Регистрация: 04.08.2014
Сообщений: 2
05.08.2014, 10:32  [ТС]
Шлю с помощью WriteFile() и программа зависает.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
05.08.2014, 10:49
Цитата Сообщение от st_ilya Посмотреть сообщение
Возможно есть другие варианты как это сделать без мьютексов?
Использовать параллельную работу с ком портом.

Обмен данными через ком порт в потоке
Программа зависает при приеме сообщения через com порт
Работа с КОМ портом. Исходник
Как отправить запрос и получить правильно СОМ-порт
Передача данных по com порту
Не могу записчать в com порт из Memo.

А вообще лучше взять готовый компонент, если вы пишите под борладу. BComPort хороший.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
05.08.2014, 11:45
Цитата Сообщение от st_ilya Посмотреть сообщение
как это сделать без мьютексов?
Эташ. Оригинальную статью можно найти по ссылке в коде.
Вложения
Тип файла: 7z sp.7z (7.4 Кб, 27 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.08.2014, 11:45
Помогаю со студенческими работами здесь

Открыть порт 4444 в брэндмауэре. Антивируса нет. провайдером порт открыт
Подскажите как открыть данный порт,все делал как тут http://windows.microsoft.com/ru-ru/windows/open-port-windows-firewall#1TC=windows-7....

В конфигурационном файле прописан порт, но пишет ошибку порт 80 занят другим приложением
Здравствуйте. Пишу решение с 2 проектами - сервер и клиент с дуплексным контрактом. Служба запускается нормально. Когда же запускаю...

Что такое потоки ввода, потоки вывода?
Здарова всем! Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода, потоки вывода..! вот допустим...

Байтовые потоки и потоки символов
Объясните, пожалуйста подробно что имелось ввиду На самом низком уровне все операции ввода/вывода в С# оперируют байтами. Подобный...

В порт в среднем приходит 3 корабля в день. Какова вероятность того, что в порт в день придет 2 корабля; 4 корабля?
помогите решить пожалуйста В порт в среднем приходит 3 корабля в день. Какова вероятность того, что в порт в день придет 2 корабля;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru