use:基本可用版本。
This commit is contained in:
parent
1cfca8ac21
commit
be1766e590
@ -50,12 +50,19 @@ 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)
|
int read(char* data, int size)
|
||||||
{
|
{
|
||||||
bytes_transferred_ = 0;
|
bytes_transferred_ = 0;
|
||||||
io_.reset();
|
io_.reset();
|
||||||
@ -235,9 +242,9 @@ int CSerialOpr::read(char* data, int size)
|
|||||||
{
|
{
|
||||||
return imp_->read(data, 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
|
const char* CSerialOpr::get_last_error() const
|
||||||
{
|
{
|
||||||
|
@ -55,7 +55,7 @@ public:
|
|||||||
int open();
|
int open();
|
||||||
void close();
|
void close();
|
||||||
int read(char* data, int size);
|
int read(char* data, int size);
|
||||||
int write(const char* data);
|
int write(const char* data, int len);
|
||||||
const char* get_last_error() const;
|
const char* get_last_error() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
10
main.cpp
10
main.cpp
@ -6,6 +6,8 @@ using namespace cppbox;
|
|||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
char buffer[512]{};
|
char buffer[512]{};
|
||||||
|
char buffer2[512]{};
|
||||||
|
std::snprintf(buffer2, sizeof(buffer2), "%s", "Hello/000\r\n");
|
||||||
|
|
||||||
CSerialOpr opr;
|
CSerialOpr opr;
|
||||||
|
|
||||||
@ -14,7 +16,7 @@ int main()
|
|||||||
opr.set_flow_control(FlowControl::NoFlowControl);
|
opr.set_flow_control(FlowControl::NoFlowControl);
|
||||||
opr.set_parity(Parity::EvenParity);
|
opr.set_parity(Parity::EvenParity);
|
||||||
opr.set_port("COM2");
|
opr.set_port("COM2");
|
||||||
opr.set_timeout(10 * 1000);
|
opr.set_timeout(100 * 1000);
|
||||||
opr.set_stop_bits(StopBits::OneStop);
|
opr.set_stop_bits(StopBits::OneStop);
|
||||||
|
|
||||||
if (opr.open() != 0) {
|
if (opr.open() != 0) {
|
||||||
@ -22,7 +24,11 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int read_size = opr.read(buffer, sizeof(buffer));
|
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;
|
return 0;
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user