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

Как правильно создать ModBus ASCII запрос? - C++

Войти
Восстановить пароль Регистрация
Другие темы раздела
C++ Почему происходит ошибка undefined reference to hgeCreate http://www.cyberforum.ru/cpp/thread1647650.html
Всем привет. Я новичок по C++ и недавно решил освоить разработку игр. Скачал с интернета 2D движок для графики HGE, однако никак не могу скомпилировать даже пример, ибо компилятор ругается. Код примера: #include "include/hge.h" HGE *hge = 0; bool FrameFunc() { if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true; return false;
C++ Переписать код из ASM на С++ для сборки под x64 Задача: переписать код из ASM на C++ для сборки под X64 Ибо я ASM не знаю #include "stdafx.h" #include "xrTheora_Surface_mmx.h" #pragma warning( disable : 4731 ) #pragma pack( push ) #pragma pack( 1 ) http://www.cyberforum.ru/cpp/thread1647574.html
C++ Как работать с xpath используя библиотеку xmlpp?
Мучаюсь весь день с xPath... Не могу понять как с ним работать? Допустим такой код: std::string StatusProfile = ".//*/span/span/text()"; auto status_profile = root->find(StatusProfile); std::cout << "Статус: " << dynamic_cast<xmlpp::ContentNode*>(status_profile)->get_content() << std::endl; В ответ получаю - Ошибка сегментирования (сделан дамп памяти). Не пойму что я делаю не так,...
C++ Распознавание текста
народ всем привет) подскажите пожалуйста литература, а если быть точнее как написать сканер текста( приложения) в каком направлении капать? если кто писал или есть какие нибудь статьи напишите пожалуйста) хочу попробовать написать для опыта) kcoding.net/2012/qrcode-coding-decoding-libs/ библиотека QR-кодов подойдет для распознавания текста(слова или буквы) с камеры телефона
C++ Темы из раздела С++ для экспертов и другие интересные темы http://www.cyberforum.ru/cpp/thread1646935.html
Раздел закрыт и темы перенеслись в раздел С++. Здесь находится список тем, которые были в разделе, чтобы они совсем не затерялись. http://www.cyberforum.ru/cpp/thread1244422.html http://www.cyberforum.ru/cpp/thread323714.html http://www.cyberforum.ru/cpp/thread1221708.html http://www.cyberforum.ru/cpp/thread1085808.html http://www.cyberforum.ru/cpp/thread1076677.html...
C++ Движение Бильярдного шара по столу без луз Доброго времени суток товарищи! Случилось "бяда" с написанием программ.и нужно ее написать на C++ в консольном режиме. Я писал в основном на vba и delphi. с++ только начал изучать. и тут такая задачка. "Изобразить на экране движение шара по бильярду без луз. Скорость движения шара уменьшается с постоянным ускорением." с основами работы в консоли я толком не знаком. Реально ли это? если да то... подробнее

Показать сообщение отдельно
slavka_online
 Аватар для slavka_online
1 / 1 / 0
Регистрация: 06.11.2012
Сообщений: 102
26.01.2016, 12:38     Как правильно создать ModBus ASCII запрос?
Адрес - 26
Код функции 03h
начало - 0000
Количество -0004

расчет LRC
C++ (Qt)
1
2
3
4
5
6
7
8
9
char calculateLRC( char b[], int n){
          char lrc = 0x00;
         for (int i = 1; i < n; i++)
         {
             lrc = ( char)((lrc + b[i]) & 0xFF);
         }
         lrc = ( char)(((lrc ^ 0xff) + 1) & 0xFF);
         return lrc;
 }
как я понял мне нужно передать что то вроде этого ":260300000004<LRC>0D0A"

но как это организовать в коде я не могу понять, вроде бы надо брать по одному символу, получать его hex представление и отправлять
но как в таком виде считать контрольную сумму и как получить hex представление
если (int)'2' возвращает 50 вместо 0х32

Добавлено через 1 час 22 минуты
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
 std::string cmd = ":260300000004";
    QByteArray buffer;
    for (int i = 0; i < cmd.length(); i++)
         buffer += cmd[i];
 
    char lrc = calculateLRC(buffer);
 
    buffer += lrc;
    buffer += 0x0D;
    buffer += 0x0A;
 
    int res = serialport->write(buffer);
    ui->textBrowser->setText(QString::number(res));
попробовал вот так, но прибор не отвечает мне
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru