SerialIO::SerialIO( SerialPort::Port port_id, uint8_t update_rate_hz, bool processed_data, IIOCompleteNotification *notify_sink, IBoardCapabilities *board_capabilities ) { this->serial_port_id = port_id; is_usb = ((port_id != SerialPort::Port::kMXP) && (port_id != SerialPort::Port::kOnboard)); ypr_update_data = {0}; gyro_update_data = {0}; ahrs_update_data = {}; ahrspos_update_data = {}; ahrspos_ts_update_data = {}; board_id = {0}; board_state = {0}; this->notify_sink = notify_sink; this->board_capabilities = board_capabilities; serial_port = 0; serial_port = GetMaybeCreateSerialPort(); this->update_rate_hz = update_rate_hz; if ( processed_data ) { update_type = MSGID_AHRSPOS_TS_UPDATE; } else { update_type = MSGID_GYRO_UPDATE; } signal_transmit_integration_control = false; signal_retransmit_stream_config = false; stop = true; byte_count = 0; update_count = 0; last_valid_packet_time = 0; }
SerialPort *SerialIO::ResetSerialPort() { if (serial_port != 0) { try { delete serial_port; } catch (std::exception ex) { // This has been seen to happen before.... } serial_port = 0; } serial_port = GetMaybeCreateSerialPort(); return serial_port; }
SerialIO::SerialIO( SerialPort::Port port_id, uint8_t update_rate_hz, bool processed_data, IIOCompleteNotification *notify_sink, IBoardCapabilities *board_capabilities ) { this->serial_port_id = port_id; ypr_update_data = {0}; gyro_update_data = {0}; ahrs_update_data = {0};; ahrspos_update_data = {0}; board_id = {0}; board_state = {0}; this->notify_sink = notify_sink; this->board_capabilities = board_capabilities; serial_port = GetMaybeCreateSerialPort(); this->update_rate_hz = update_rate_hz; if ( processed_data ) { update_type = MSGID_AHRSPOS_UPDATE; } else { update_type = MSGID_GYRO_UPDATE; } }