use:基本可用版本。

This commit is contained in:
taynpg 2024-05-18 23:16:40 +08:00
parent 1cfca8ac21
commit be1766e590
3 changed files with 20 additions and 7 deletions

View File

@ -50,9 +50,16 @@ public:
}
}
void write(const char* data, int len)
int write(const char* data, int len)
{
bytes_transferred_ = 0;
io_.reset();
boost::system::error_code write_ec;
std::size_t ret = boost::asio::write(*port_, boost::asio::buffer(data, len), write_ec);
int send_size = static_cast<int>(ret);
return send_size;
}
int read(char* data, int size)
@ -235,9 +242,9 @@ int CSerialOpr::read(char* data, int size)
{
return imp_->read(data, size);
}
int CSerialOpr::write(const char* data)
int CSerialOpr::write(const char* data, int len)
{
return 0;
return imp_->write(data, len);
}
const char* CSerialOpr::get_last_error() const
{

View File

@ -55,7 +55,7 @@ public:
int open();
void close();
int read(char* data, int size);
int write(const char* data);
int write(const char* data, int len);
const char* get_last_error() const;
private:

View File

@ -6,6 +6,8 @@ using namespace cppbox;
int main()
{
char buffer[512]{};
char buffer2[512]{};
std::snprintf(buffer2, sizeof(buffer2), "%s", "Hello/000\r\n");
CSerialOpr opr;
@ -14,7 +16,7 @@ int main()
opr.set_flow_control(FlowControl::NoFlowControl);
opr.set_parity(Parity::EvenParity);
opr.set_port("COM2");
opr.set_timeout(10 * 1000);
opr.set_timeout(100 * 1000);
opr.set_stop_bits(StopBits::OneStop);
if (opr.open() != 0) {
@ -22,7 +24,11 @@ int main()
}
int read_size = opr.read(buffer, sizeof(buffer));
if (read_size > 0) {
std::cout << "要发送的数据大小:" << strlen(buffer2) << "\n";
int write_size = opr.write(buffer2, strlen(buffer2));
std::cout << "实际发送的数据大小:" << write_size << "\n";
}
return 0;
}