boost::system::error_code get_option(const implementation_type& impl,
      GettableSerialPortOption& option, boost::system::error_code& ec) const
  {
    termios ios;
    descriptor_ops::clear_error(ec);
    descriptor_ops::error_wrapper(::tcgetattr(
          descriptor_service_.native(impl), &ios), ec);
    if (ec)
      return ec;

    return option.load(ios, ec);
  }
コード例 #2
0
  boost::system::error_code get_option(const implementation_type& impl,
      GettableSerialPortOption& option, boost::system::error_code& ec) const
  {
    using namespace std; // For memcpy.

    ::DCB dcb;
    memset(&dcb, 0, sizeof(DCB));
    dcb.DCBlength = sizeof(DCB);
    if (!::GetCommState(handle_service_.native(impl), &dcb))
    {
      DWORD last_error = ::GetLastError();
      ec = boost::system::error_code(last_error,
          boost::asio::error::get_system_category());
      return ec;
    }

    return option.load(dcb, ec);
  }