Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 20.02.2014
Сообщений: 23

Работа с СОМ-портом

04.03.2014, 11:04. Показов 3500. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу программу для работы с устройством через COM-порт. Я отсылаю устройству запрос так:
C++
1
WriteFile(hComPort, buff, buffSize, &bytesWritten, NULL);
и жду ответа от прибора. buff -- это массив типа BYTE.

Ситуация такая. Присылаю запрос номер 1, приходит только его часть. Затем посылаю любой другой запрос, и приходит остаток от запроса 1. Пробовал соединить два компьютера через COM-порты. Я присылаю что-то -- на том компьютере отображается переданная строка. Мне присылают, тоже приходит. Затем я снова отправляю строку тому компьютеру, и тут же мне приходит строка из элементов 20, хотя с того компьютера ничего не отсылали.

Буфер COM-порта очищаю после каждого чтения данных следующей функцией:
C++
1
PurgeComm(hComPort, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
В чем может быть дело? Если для ответа на мою тему нужны уточнения, спрашивайте.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.03.2014, 11:04
Ответы с готовыми решениями:

Работа с COM портом
Добрый день! Решил поработать с COM портом. в строке Port=CreateFile("COM2",GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);...

Работа с com-портом
Всем привет. Нужно ловить из com-порта некоторые данные. По итогу, не получается даже открыть порт. Есть код: LPCWSTR sPortName =...

Работа с COM - портом
Не могу сделать чтобы, при работе с соm - портом возможно было выбирать как автоматические настройки по(default), так и ручные настройки....

26
Заблокирован
04.03.2014, 13:23
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от volodymir Посмотреть сообщение
Поставил 221, все равно сначала приходит 14, а потом уже целиком 221. Иногда нажимаешь 1, а приходит один байт 255. Иногда вообще не приходит ничего.
Значит ты не до конца покурил мануал на девайс, он тебе наверное шлёт флаг подтверждения или ещё чего сначала и ждёт от тебя такого же положительного ответа, что ты всё принял - давай мнуал на свой девайс в студию с протоколом обмена Так и быть - посмотрю
0
1 / 1 / 0
Регистрация: 20.02.2014
Сообщений: 23
04.03.2014, 13:30  [ТС]
Спасибо, что посмотришь. Вот ссылка на мануал: http://www.teplocom-sale.ru/up... l-vkt7.pdf.
0
Заблокирован
04.03.2014, 14:20
посмотрю через 15 минут

Добавлено через 35 минут
Так, подробно смотреть мануал времени нет, тем паче не имея девайса под рукой.
Мое мнение, что ты не правильно общаешься со своим вычислителем, судя по доку:
Первым запросом должен быть запрос «Начало сеанса связи». Ответ анализи-
ровать не нужно. Далее необходимо сделать запрос на «Чтение данных». В ответе
вычислителя необходимо проанализировать поле «Версия сервера». После этого
необходимо получить «свойства» (см. ниже), после чего можно приступать к полу-
чению архивных/текущих данных.
Тоесть сначала надо всё это проделать, а потом уже работать, а ты пытаешься сразу работать - вот он тебе и ерунду возвращает .... Если не разберёшься -потом загляну сюда и помогу....
0
1 / 1 / 0
Регистрация: 20.02.2014
Сообщений: 23
04.03.2014, 14:29  [ТС]
Спасибо, что взглянул. Пробовал уже: сначала посылаю запрос 7 (начало сеанса связи), а потом -- другие запросы. Та же ситуация.

Добавлено через 6 минут
Точнее, так: сначала посылается не менее 2 байт 0xFF, чтобы "разбудить" устройство. Потом запрос 7 (начало сеанса связи), затем -- запрос 5 (чтение данных) и потом уже остальные запросы. Но все равно ты ввел запрос 3, что-то выдалось. Затем вводишь цифру 4, и выдается то же, что и на цифру 3. И так надо несколько раз цифру 4 вводить, чтобы уже выдавался ответ на запрос 4.
0
Заблокирован
04.03.2014, 14:30
ну а ты читал в доке, про то, что он тебе отвечает вообще? Вот получил ты какой то на твой взгляд не полный ответ - почитай в доке что это такое и расшифруй его - он ж там может на сколько я помню исключения какие - то слать ...
0
1 / 1 / 0
Регистрация: 20.02.2014
Сообщений: 23
04.03.2014, 14:46  [ТС]
Да, насчет исключений надо посмотреть повнимательнее. Спасибо за помощь).
0
04.03.2014, 15:05
 Комментарий модератора 
THE--MASTER, долго за вами уже пристально наблюдаю. Пункты 5.10, 4.6, 5.21. И это только за пару часов. Настоятельно советую вам не поступать так в дальнейшем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.03.2014, 15:05

Работа с COM портом
Доброго времени суток, уважаемые форумчане! Помогите разобраться с COM портом. Хотя бы с чего начать. :help: На большинстве ресурсов...

работа с ком портом?
Добрый день! Я ещё только учусь. Но мне очень бы хотелось научиться работать с ком портами в винде. посылка прием данных, и пр. ...

Работа с COM портом запись и чтение в один заход-как сделать?
Столкнулся с тем что оборудование которое прицеплено к компорту не отвечает если сразу же после отправки пакета затребовать у него...

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

Работа с COM-портом в C++ (соединение с Arduino)
Доброго времени суток, уважаемые коллеги! Мне для проекта требуется соединить Arduino и компьютер через СОМ-порт. Скачал библиотеку...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru