整理代码

This commit is contained in:
蒲爽 2026-09-28 21:33:04 +08:00
commit c7b4e178ec
364 changed files with 59691 additions and 0 deletions

101
hardware/SerialPort.h Normal file
View file

@ -0,0 +1,101 @@
#ifndef FA788814_8B75_424F_99DB_D04B4977DD8C
#define FA788814_8B75_424F_99DB_D04B4977DD8C
/*
*******************************************************************************
* INCLUDE
*******************************************************************************
*/
#include <Poco/Thread.h>
#include <atomic>
namespace Hardware
{
/*
*******************************************************************************
* CLASS DECLARE
*******************************************************************************
*/
class SerialPort
{
public:
enum class Parity
{
NONE,
ODD,
EVEN,
};
enum class FlowControl
{
NONE,
RTSCTS,
};
public:
SerialPort();
~SerialPort();
public:
SerialPort& setPath(const std::string& path);
SerialPort& setBaudRate(uint32_t baudRate);
SerialPort& setParity(Parity parity);
SerialPort& setDataBits(uint32_t bits);
SerialPort& setStopBits(uint32_t bits);
SerialPort& setFlowControl(FlowControl flowControl);
void open();
void close();
bool isOpen();
int write(const void* pData, uint32_t size);
int read(void* pBuffer, uint32_t length, uint32_t timeout);
const std::string& getPath();
uint32_t getBaudRate();
Parity getParity();
uint32_t getDataBits();
uint32_t getStopBits();
FlowControl getFlowControl();
protected:
uint32_t getBaudRateFlag(uint32_t baudRate);
private:
std::string _path;
int _fd;
uint32_t _baudRate;
Parity _parity;
uint32_t _dataBits;
uint32_t _stopBits;
FlowControl _flowControl;
};
inline const std::string& SerialPort::getPath()
{
return _path;
}
inline uint32_t SerialPort::getBaudRate()
{
return _baudRate;
}
inline SerialPort::Parity SerialPort::getParity()
{
return _parity;
}
inline uint32_t SerialPort::getDataBits()
{
return _dataBits;
}
inline uint32_t SerialPort::getStopBits()
{
return _stopBits;
}
inline SerialPort::FlowControl SerialPort::getFlowControl()
{
return _flowControl;
}
}
#endif