コード例 #1
0
ファイル: Mode.cpp プロジェクト: Advi42/XCSoar
bool
LXDevice::EnableNanoNMEA(OperationEnvironment &env)
{
  return IsV7()
    ? EnablePassThrough(env)
    : true;
}
コード例 #2
0
ファイル: Settings.cpp プロジェクト: CnZoom/XcSoarWork
bool
LXDevice::PutQNH(const AtmosphericPressure &pres, OperationEnvironment &env)
{
  if (!EnableNMEA(env))
    return false;

  if (IsV7())
    return V7::SetQNH(port, env, pres);
  else
    return LX1600::SetQNH(port, env, pres);
}
コード例 #3
0
ファイル: Settings.cpp プロジェクト: CnZoom/XcSoarWork
bool
LXDevice::PutMacCready(fixed mac_cready, OperationEnvironment &env)
{
  if (!EnableNMEA(env))
    return false;

  if (IsV7())
    return V7::SetMacCready(port, env, mac_cready);
  else
    return LX1600::SetMacCready(port, env, mac_cready);
}
コード例 #4
0
ファイル: Settings.cpp プロジェクト: CnZoom/XcSoarWork
bool
LXDevice::PutBallast(gcc_unused fixed fraction, fixed overload,
                     OperationEnvironment &env)
{
  if (!EnableNMEA(env))
    return false;

  if (IsV7())
    return V7::SetBallast(port, env, overload);
  else
    return LX1600::SetBallast(port, env, overload);
}
コード例 #5
0
ファイル: Settings.cpp プロジェクト: CnZoom/XcSoarWork
bool
LXDevice::PutBugs(fixed bugs, OperationEnvironment &env)
{
  if (!EnableNMEA(env))
    return false;

  int transformed_bugs_value = 100 - (int)(bugs*100);

  if (IsV7())
    return V7::SetBugs(port, env, transformed_bugs_value);
  else
    return LX1600::SetBugs(port, env, transformed_bugs_value);
}
コード例 #6
0
ファイル: Settings.cpp プロジェクト: damianob/xcsoar
bool
LXDevice::PutMacCready(fixed mac_cready, OperationEnvironment &env)
{
  if (!EnableNMEA(env))
    return false;

  char tmp[32];

  if (IsV7())
    sprintf(tmp, "PLXV0,MC,W,%.1f", (double)mac_cready);
  else
    sprintf(tmp, "PFLX2,%1.1f,,,,,,", (double)mac_cready);
  return PortWriteNMEA(port, tmp, env);
}
コード例 #7
0
ファイル: Settings.cpp プロジェクト: damianob/xcsoar
bool
LXDevice::PutQNH(const AtmosphericPressure &pres, OperationEnvironment &env)
{
  if (!EnableNMEA(env))
    return false;

  double altitude_offset =
    (double)pres.StaticPressureToQNHAltitude(AtmosphericPressure::Standard()) / 0.3048;

  char buffer[100];
  if (IsV7())
    sprintf(buffer, "PLXV0,QNH,W,%.2f", altitude_offset);
  else
    sprintf(buffer, "PFLX3,%.2f,,,,,,,,,,,,", altitude_offset);
  return PortWriteNMEA(port, buffer, env);
}
コード例 #8
0
ファイル: Settings.cpp プロジェクト: damianob/xcsoar
bool
LXDevice::PutBugs(fixed bugs, OperationEnvironment &env)
{
  if (!EnableNMEA(env))
    return false;

  // This is a copy of the routine done in LK8000 for LX MiniMap, realized
  // by Lx developers.

  char tmp[100];
  int transformed_bugs_value = 100 - (int)(bugs*100);

  if (IsV7())
    sprintf(tmp, "PLXV0,BUGS,W,%d", transformed_bugs_value);
  else
    sprintf(tmp, "PFLX2,,,%d,,,", transformed_bugs_value);
  return PortWriteNMEA(port, tmp, env);
}