35 lines
1.0 KiB
C++
35 lines
1.0 KiB
C++
#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() {
|
|
// 上位机示例:这里只构造协议帧。实际部署时,应通过串口/RS-485 驱动发送
|
|
// 返回的字节,并把收到的响应交给 HostClient 的解析方法。
|
|
const line_laser_modbus::HostClient host;
|
|
|
|
const auto status_request = host.make_read_status_request();
|
|
std::cout << "Read mode/state request: ";
|
|
print_frame(status_request);
|
|
|
|
const line_laser_modbus::Pose6D correction{
|
|
1000U, 1.0F, 2.0F, 3.0F, 0.0F, 1.0F, 2.0F};
|
|
const auto correction_request = host.make_write_correction_request(correction);
|
|
std::cout << "Write correction request: ";
|
|
print_frame(correction_request);
|
|
|
|
return 0;
|
|
}
|