Отправка данных через последовательный порт в cpp с использованием com-портов

Мне нужно изменить этот код на код cpp

Это код С#

    public void SendDataViaSerialPort(string data)
{
    var com = new System.IO.Ports.SerialPort(
                "COM29", 9600, System.IO.Ports.Parity.None, 8, 
                                 System.IO.Ports.StopBits.One);
            com.Open();
            com.Write(data);
            com.Close();
}

person aakpro    schedule 28.03.2012    source источник
comment
Вы забыли задать вопрос. Какие трудности у вас возникли при переносе кода? (Документация находится здесь от способ.)   -  person David Schwartz    schedule 29.03.2012
comment
Будет ли он работать в Windows после этого?   -  person wallyk    schedule 29.03.2012


Ответы (1)


Использование boost:: asio

#include <string>
#include <boost/asio.hpp>
using namespace::boost::asio;

serial_port_base::baud_rate BAUD(9600);
serial_port_base::parity PARITY(serial_port_base::parity::none);
serial_port_base::stop_bits STOP(serial_port_base::stop_bits::one);

void SendDataViaSerialPort(const std::string& to_write)
{
        io_service io;
        serial_port port(io, "COM29");

        port.set_option(BAUD);
        port.set_option(PARITY);
        port.set_option(STOP);

        write(port, buffer(to_write,1));
}
person Sergei Nikulov    schedule 29.03.2012
comment
Спасибо. Но как открыть и закрыть порт? - person aakpro; 29.03.2012