Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
volodymir
0 / 0 / 0
Регистрация: 20.02.2014
Сообщений: 20
04.03.2014, 11:04     Работа с СОМ-портом #1
Пишу программу для работы с устройством через 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);
В чем может быть дело? Если для ответа на мою тему нужны уточнения, спрашивайте.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
THE--MASTER
Заблокирован
04.03.2014, 13:23     Работа с СОМ-портом #21
Цитата Сообщение от volodymir Посмотреть сообщение
Поставил 221, все равно сначала приходит 14, а потом уже целиком 221. Иногда нажимаешь 1, а приходит один байт 255. Иногда вообще не приходит ничего.
Значит ты не до конца покурил мануал на девайс, он тебе наверное шлёт флаг подтверждения или ещё чего сначала и ждёт от тебя такого же положительного ответа, что ты всё принял - давай мнуал на свой девайс в студию с протоколом обмена Так и быть - посмотрю
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
volodymir
0 / 0 / 0
Регистрация: 20.02.2014
Сообщений: 20
04.03.2014, 13:30  [ТС]     Работа с СОМ-портом #22
Спасибо, что посмотришь. Вот ссылка на мануал: http://www.teplocom-sale.ru/upload/i...tocol-vkt7.pdf.
THE--MASTER
Заблокирован
04.03.2014, 14:20     Работа с СОМ-портом #23
посмотрю через 15 минут

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

Добавлено через 6 минут
Точнее, так: сначала посылается не менее 2 байт 0xFF, чтобы "разбудить" устройство. Потом запрос 7 (начало сеанса связи), затем -- запрос 5 (чтение данных) и потом уже остальные запросы. Но все равно ты ввел запрос 3, что-то выдалось. Затем вводишь цифру 4, и выдается то же, что и на цифру 3. И так надо несколько раз цифру 4 вводить, чтобы уже выдавался ответ на запрос 4.
THE--MASTER
Заблокирован
04.03.2014, 14:30     Работа с СОМ-портом #25
ну а ты читал в доке, про то, что он тебе отвечает вообще? Вот получил ты какой то на твой взгляд не полный ответ - почитай в доке что это такое и расшифруй его - он ж там может на сколько я помню исключения какие - то слать ...
volodymir
0 / 0 / 0
Регистрация: 20.02.2014
Сообщений: 20
04.03.2014, 14:46  [ТС]     Работа с СОМ-портом #26
Да, насчет исключений надо посмотреть повнимательнее. Спасибо за помощь).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2014, 15:05     Работа с СОМ-портом
Еще ссылки по теме:

С++ код с использованием СОМ объектов. C++
C++ СОМ порт - как передать код
C++ Работа с COM портом

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

Или воспользуйтесь поиском по форуму:
SatanaXIII
04.03.2014, 15:05     Работа с СОМ-портом
  #27
 Комментарий модератора 
THE--MASTER, долго за вами уже пристально наблюдаю. Пункты 5.10, 4.6, 5.21. И это только за пару часов. Настоятельно советую вам не поступать так в дальнейшем.
Yandex
Объявления
04.03.2014, 15:05     Работа с СОМ-портом
Ответ Создать тему
Опции темы

Текущее время: 14:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru