Minimales boost::asio::serial_port read (read_some) Beispiel
English
Deutsch
Das folgende Beispiel zeigt, wie man einen boost::asio serial_port initialisiert, Baudrate, Parität und Stopp-Bits einstellt und dann in einer Schleife Daten daraus liest, die unverändert auf stdout ausgegeben werden.
serial_read_example.cpp
#include <boost/asio.hpp>
#include <iostream>
#define BUFSIZE 256
int main() {
boost::asio::io_service io;
// Seriellen Port öffnen
boost::asio::serial_port serial(io, "/dev/ttyUSB0");
// Grundlegende serielle Port-Parameter konfigurieren: 115.2kBaud, 8N1
serial.set_option(boost::asio::serial_port_base::baud_rate(115200));
serial.set_option(boost::asio::serial_port_base::character_size(8 /* Datenbits */));
serial.set_option(boost::asio::serial_port_base::parity(boost::asio::serial_port_base::parity::none));
serial.set_option(boost::asio::serial_port_base::stop_bits(boost::asio::serial_port_base::stop_bits::one));
// Daten in einer Schleife lesen und auf stdout kopieren
while(true) {
char data[BUFSIZE];
size_t n = serial.read_some(boost::asio::buffer(data, BUFSIZE));
// Daten auf stdout schreiben
std::cout.write(data, n);
}
}Ein vollständigeres Beispiel, das auch zeigt, wie man den seriellen Port öffnet, finden Sie unter boost::asio::serial_port öffnen und initialisieren
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow