bool LXDevice::ReadFlightList(RecordedFlightList &flight_list, OperationEnvironment &env) { if (IsNano()) { if (!EnableNanoNMEA(env)) return false; assert(!busy); busy = true; bool success = Nano::ReadFlightList(port, flight_list, env); busy = false; return success; } if (!EnableCommandMode(env)) return false; assert(!busy); busy = true; bool success = ReadFlightListInner(port, flight_list, env); LX::CommandModeQuick(port, env); busy = false; return success; }
bool VolksloggerDevice::ReadFlightList(RecordedFlightList &flight_list, OperationEnvironment &env) { port.StopRxThread(); // change to IO mode baud rate unsigned old_baud_rate = port.GetBaudrate(); if (old_baud_rate == 9600) old_baud_rate = 0; else if (old_baud_rate != 0 && !port.SetBaudrate(9600)) return false; bool success = ReadFlightListInner(port, flight_list, env); // restore baudrate if (old_baud_rate != 0) port.SetBaudrate(old_baud_rate); return success; }
bool CAI302Device::ReadFlightList(RecordedFlightList &flight_list, OperationEnvironment &env) { if (!EnableBulkMode(env)) return false; if (!UploadMode(env)) { DisableBulkMode(env); return false; } if (!ReadFlightListInner(port, flight_list, env)) { mode = Mode::UNKNOWN; DisableBulkMode(env); return false; } DisableBulkMode(env); return true; }
bool LXDevice::ReadFlightList(RecordedFlightList &flight_list, OperationEnvironment &env) { if (!EnableCommandMode(env)) return false; assert(!busy); mutex.Lock(); busy = true; mutex.Unlock(); bool success = ReadFlightListInner(port, flight_list, env); LX::CommandModeQuick(port, env); mutex.Lock(); busy = false; mutex.Unlock(); return success; }