Giriş
Çıplak serial_port sınıfını kullanmak yerine yine asio tabanlı serial-port kütüphanesi kullanılabilir.
Constructor
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
flow control
Şöyle tanımlı
Şöyle yaparız.
Şöyle yaparız.
Çıplak serial_port sınıfını kullanmak yerine yine asio tabanlı serial-port kütüphanesi kullanılabilir.
Şu satırı dahil ederiz.
#include "AsyncSerial.h"
#include "BufferedAsyncSerial.h"
Şöyle yaparız.
BufferedAsyncSerial serial("/dev/ttyUSB0",4800);
Şöyle yaparız.
string str = serial.readStringUntil("\r");
Şöyle yaparız.
serial.close();
MetodlarConstructor
Şöyle yaparız.
asio::io_service ios;
serial_port port (ios);
Constructor - device nameŞöyle yaparız.
asio::io_service ios;
asio::serial_port serial_port (ios, "COM3" );
async_read_some metoduŞöyle yaparız.
serialPort.async_read_some(boost::asio::buffer(buf),handler);
Eğer okumada hata olursa handler'a geçilen bytes_transferred alanı doldurulmayabilir. Açıklaması şöyleUpon error, most async operations leave bytes_transferred unspecified (unless, obviously specified otherwise).cancel metodu
Şöyle yaparız.
serialPort.cancel();
close metodu
Şöyle yaparız.
baud rate
Şöyle yaparız.
serialPort.close();
is_open metodu
Default constructor ile kurulan nesne ile kullanılır. İşlem başarısız ise exception fırlatır. Şöyle yaparız.
Default constructor ile kurulan nesne ile kullanılır. İşlem başarısız ise exception fırlatmaz. Şöyle yaparız.
std::string port_name = ...;
serialPort.open(port_name);
open metodu - const char* + error_code
const char *com_port_name = ...;
boost::system::error_code ec;
seria_port.open (com_port_name, ec);
if (ec) {
std::cout << "failed. error << ec.message() << std::endl;
...
}
read_some metodu
Örnek ver
write_some metodu
Şöyle yaparız.
serialPort.set_option(serial_port::baud_rate(
9600));
character sizeŞöyle yaparız.
serialPort.set_option(serial_port::character_size(8));
Şöyle tanımlı
class flow_control {
public:
enum type { none, software, hardware };
...
};
Şöyle yaparız.serialPort.set_option(serial_port::flow_control(
serial_port::flow_control::none));
Şöyle yaparız.serialPort.set_option(serial_port::flow_control(
serial_port::flow_control::software));
Şöyle yaparız.serialPort.set_option(serial_port::flow_control(
serial_port::flow_control::hardware));
parity
Şöyle yaparız.serialPort.set_option(serial_port::parity(serial_port::parity::none));
serialPort.set_option(serial_port::parity(serial::parity::odd));
Şöyle yaparız.serialPort.set_option(serial_port::parity(serial_port::parity::even));
Şöyle yaparız.serialPort.set_option(serial_port::parity(
serial_port_base::parity::even));
stop bits Şöyle yaparız.
serialPort.set_option(serial_port::stop_bits(
serial_port::stop_bits::one));
Şöyle yaparız.serialPort.set_option(serial_port::stop_bits(
serial_port::stop_bits::onepointfive));
Şöyle yaparız.serialPort.set_option(serial_port::stop_bits(
serial_port::stop_bits::two));
Hiç yorum yok:
Yorum Gönder