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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
egorman44
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 8
#1

Прием по modbus. Как указать число считываемых байтов - C++

09.01.2014, 11:42. Просмотров 326. Ответов 1
Метки нет (Все метки)

Добрый день. Пишу программу для обмена по modbus'у rtu , я slave , принимаю команды и формирую ответы на них. Принимаемые команды могут иметь различную длину в байтах . При чтении из COM порта с помощью функции ReadFile необходимо указать число считываемых байтов, как поступают в этом случае? Читают побайтно ? или создают буфер заведомо больший размера всех команд и после дешифрирования команды выделяют необходимое количество байт? Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 11:42     Прием по modbus. Как указать число считываемых байтов
Посмотрите здесь:

Как правильно объявить массив байтов? C++
Решить уравнение с точностю Е и указать необходимое число итераций C++
C++ Как тут происходит перестановка байтов...
Как прочитать несколько байтов в файле с n-го байта по m-й байт ? C++
C++ Как вписать в переменную текст, размер которой превышает 4096 байтов
C++ Как можно теперь взять и собрать группу из 4-х байтов в один float?
Посчитать количество считываемых из файла чисел C++
Дано действительное число х (0<x<=1). Вычислить сумму ряда с точностью e=10-6 и указать количество слага C++
Указать диапазон, в котором находится число C++
Подключение библиотеки modbus в C++ C++
C++ Получить число из байтов
Дано действительное число х. Вычислить сумму ряда с точностью и указать количество слагаемых C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2855 / 1788 / 181
Регистрация: 13.01.2012
Сообщений: 6,730
09.01.2014, 15:25     Прием по modbus. Как указать число считываемых байтов #2
читайте в начале шапку запроса (часть по которой можно понять какой размер имеет весь запрос). вторым вызовом считывайте хвост.

Добавлено через 1 час 28 минут
...как вариант:
-считывайте поля адреса и функции
-если адрес не ваш - молчите
-если ваш прибор не поддерживает указанную функцию - высылайте код ошибки
-если функция поддерживается - считывайте количество данных специфичное для указанной функции (хвост)
Yandex
Объявления
09.01.2014, 15:25     Прием по modbus. Как указать число считываемых байтов
Ответ Создать тему
Опции темы

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