sweeper_200/src/perception/rtk/src/serial_read.cpp

45 lines
962 B
C++

#include "serial_read.hpp"
#include "logger/logger.h"
Boost_serial::Boost_serial() { ; }
Boost_serial::~Boost_serial()
{
if (sp)
{
delete sp;
}
}
void Boost_serial::init(const string port_name)
{
sp = new serial_port(service);
sp->open(port_name);
if (sp->is_open())
{
sp->set_option(serial_port::baud_rate(115200));
sp->set_option(serial_port::flow_control(serial_port::flow_control::none));
sp->set_option(serial_port::parity(serial_port::parity::none));
sp->set_option(serial_port::stop_bits(serial_port::stop_bits::one));
sp->set_option(serial_port::character_size(8));
LOG_INFO("打开串口成功!");
}
else
{
LOG_ERROR("打开串口失败!");
}
}
int Boost_serial::serial_read(char buf[], int size)
{
int num = read(*sp, buffer(buf, size));
if (num <= 0)
{
LOG_WARN("没有读到数据!");
}
return num;
}