Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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;
}
Пример #4
0
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;
}