Files
2026-06-09 12:42:15 +08:00

36 lines
1022 B
C++

#include "line_laser_modbus/device.hpp"
#include "line_laser_modbus/host.hpp"
#include <iomanip>
#include <iostream>
namespace {
void print_frame(const line_laser_modbus::ByteVector& frame) {
for (const std::uint8_t byte : frame) {
std::cout << std::hex << std::uppercase << std::setw(2) << std::setfill('0')
<< static_cast<int>(byte) << ' ';
}
std::cout << std::dec << '\n';
}
} // 匿名命名空间
int main() {
// 下位机示例:使用内存寄存器表处理一个主站请求。固件在 UART 收齐一个
// 完整 RTU 帧后,可以调用 process_request() 生成响应。
line_laser_modbus::DeviceServer device;
line_laser_modbus::HostClient host;
device.bank().set_current_pose(
line_laser_modbus::Pose6D{1234U, 10.0F, 20.0F, 30.0F, 1.0F, 2.0F, 3.0F});
const auto request = host.make_read_current_pose_request();
const auto response = device.process_request(request);
std::cout << "Read current pose response: ";
print_frame(response);
return 0;
}