コード例 #1
0
ファイル: devLXV7.cpp プロジェクト: Acrobot/LK8000
bool DevLXV7::SetupLX_Sentence(PDeviceDescriptor_t d)
{
TCHAR  szTmp[254];


_stprintf(szTmp, TEXT("$PLXV0,NMEARATE,W,2,5,0,0,1,0,0"));
  LXV7NMEAddCheckSumStrg(szTmp);
  d->Com->WriteString(szTmp);


  return true;
}
コード例 #2
0
ファイル: devLXV7.cpp プロジェクト: Mazuk/LK8000
BOOL LXV7PutBugs(PDeviceDescriptor_t d, double Bugs){
TCHAR  szTmp[254];

if(LXV7_bValid == false)
  return false;


	  _stprintf(szTmp, TEXT("$PLXV0,BUGS,W,%3.1f"),(1.00-Bugs)*100.0);

	LXV7NMEAddCheckSumStrg(szTmp);
	d->Com->WriteString(szTmp);

	LXV7_BugsUpdateTimeout = 5;
    return(TRUE);

}
コード例 #3
0
ファイル: devLXV7.cpp プロジェクト: Mazuk/LK8000
BOOL LXV7PutMacCready(PDeviceDescriptor_t d, double MacCready){
TCHAR  szTmp[254];
if(LXV7_bValid == false)
  return false;

  _stprintf(szTmp, TEXT("$PLXV0,MC,W,%3.1f"), MacCready );

  LXV7NMEAddCheckSumStrg(szTmp);
  d->Com->WriteString(szTmp);


  LXV7_MacCreadyUpdateTimeout = 5;


  return true;

}
コード例 #4
0
ファイル: devLXV7.cpp プロジェクト: Mazuk/LK8000
BOOL LXV7PutBallast(PDeviceDescriptor_t d, double Ballast){
TCHAR  szTmp[254];
if(LXV7_bValid == false)
  return false;


  _stprintf(szTmp, TEXT("$PLXV0,BAL,W,%4.2f"),(1.0+Ballast));

 LXV7NMEAddCheckSumStrg(szTmp);
 d->Com->WriteString(szTmp);


 //DevLXV7::PutGPRMB(d);

 LXV7_BallastUpdateTimeout =10;
 return(TRUE);

}
コード例 #5
0
ファイル: devLXV7.cpp プロジェクト: Mazuk/LK8000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/// Parses LXWPn sentences.
///
/// @param d         device descriptor
/// @param sentence  received NMEA sentence
/// @param info      GPS info to be updated
///
/// @retval true if the sentence has been parsed
///
//static
BOOL DevLXV7::ParseNMEA(PDeviceDescriptor_t d, TCHAR* sentence, NMEA_INFO* info)
{
  static int i=40;
  TCHAR  szTmp[256];
  if (_tcsncmp(_T("$LXWP2"), sentence, 6) == 0)
  {
	if(iLXV7_RxUpdateTime > 0)
	{
	  iLXV7_RxUpdateTime--;
	}
	else
	{
	  if(fabs(LXV7_oldMC - MACCREADY)> 0.005f)
	  {
		LXV7PutMacCready( d,  MACCREADY);
		LXV7_oldMC = MACCREADY;
		LXV7_MacCreadyUpdateTimeout = 2;
      }
	}
  }

  /* configure LX after 10 GPS positions */
  if (_tcsncmp(_T("$GPGGA"), sentence, 6) == 0)
  {
    if(i++ > 4)
    {
      SetupLX_Sentence(d);
	  i=0;
    }
  }

  static int oldQFEOff =0;
  static int iOldQNH   =0;



    int iQNH = (int)(QNH*100.0);
    if(iQNH != iOldQNH)
    {
  	iOldQNH = iQNH;
      _stprintf(szTmp, TEXT("$PLXV0,QNH,W,%i"),(int)iQNH);
      LXV7NMEAddCheckSumStrg(szTmp);
      d->Com->WriteString(szTmp);
    }

    int QFE = (int)QFEAltitudeOffset;
    if(QFE != oldQFEOff)
    {
  	oldQFEOff = QFE;
      _stprintf(szTmp, TEXT("$PLXV0,ELEVATION,W,%i"),(int)(QFEAltitudeOffset));
      LXV7NMEAddCheckSumStrg(szTmp);
  //    d->Com->WriteString(szTmp);
    }
    if(LXV7_iGPSBaudrate ==0)
    {
      _stprintf(szTmp, TEXT("$PLXV0,BRGPS,R"));
      LXV7NMEAddCheckSumStrg(szTmp);
      d->Com->WriteString(szTmp);
    }

if (_tcsncmp(_T("$PLXVF"), sentence, 6) == 0)
  return PLXVF(d, sentence + 7, info);
else
  if (_tcsncmp(_T("$PLXVS"), sentence, 6) == 0)
    return PLXVS(d, sentence + 7, info);
  else
	if (_tcsncmp(_T("$PLXV0"), sentence, 6) == 0)
	  return PLXV0(d, sentence + 7, info);
	else
      if (_tcsncmp(_T("$LXWP0"), sentence, 6) == 0)
        return LXWP0(d, sentence + 7, info);
      else
        if (_tcsncmp(_T("$LXWP1"), sentence, 6) == 0)
          return LXWP1(d, sentence + 7, info);
        else
          if (_tcsncmp(_T("$LXWP2"), sentence, 6) == 0)
            return LXWP2(d, sentence + 7, info);
          else
            if (_tcsncmp(_T("$LXWP3"), sentence, 6) == 0)
              return LXWP3(d, sentence + 7, info);
            else
              if (_tcsncmp(_T("$LXWP4"), sentence, 6) == 0)
                return LXWP4(d, sentence + 7, info);

  return(false);
} // ParseNMEA()
コード例 #6
0
ファイル: devLXV7.cpp プロジェクト: Acrobot/LK8000
BOOL DevLXV7::LXV7DirectLink(PDeviceDescriptor_t d, BOOL bLinkEnable)
{
TCHAR  szTmp[254];
#define CHANGE_DELAY 10

if(LXV7_iGPSBaudrate ==0)
{
  _stprintf(szTmp, TEXT("$PLXV0,BRGPS,R"));
  LXV7NMEAddCheckSumStrg(szTmp);
  d->Com->WriteString(szTmp);
  Sleep(CHANGE_DELAY);
  d->Com->WriteString(szTmp);
  Sleep(CHANGE_DELAY);
}


  if(bLinkEnable)
  {
	LockComm();
	#if TESTBENCH
	StartupStore(TEXT("enable LX V7 direct Link %s"), NEWLINE);
	#endif
	LXV7_iPDABaudrate = d->Com->GetBaudrate();

	_stprintf(szTmp, TEXT("$PLXV0,CONNECTION,W,DIRECT"));
	LXV7NMEAddCheckSumStrg(szTmp);
	d->Com->WriteString(szTmp);
	Sleep(CHANGE_DELAY);
    if(LXV7_iPDABaudrate != LXV7_iGPSBaudrate)
    {
	  d->Com->SetBaudrate(LXV7_iGPSBaudrate);
	#if TESTBENCH
	  StartupStore(TEXT("Set Baudrate %i %s"),LXV7_iGPSBaudrate, NEWLINE);
	#endif
	  Sleep(CHANGE_DELAY);
    }
	Sleep(CHANGE_DELAY);
  }
  else
  {
	Sleep(CHANGE_DELAY);

    if(LXV7_iPDABaudrate != LXV7_iGPSBaudrate)
    {
	#if TESTBENCH
	  StartupStore(TEXT("Set Baudrate %i %s"),LXV7_iPDABaudrate, NEWLINE);
	#endif
	  d->Com->SetBaudrate(LXV7_iPDABaudrate);
	  Sleep(CHANGE_DELAY);
    }

	#if TESTBENCH
	StartupStore(TEXT("Return from V7 link %s"), NEWLINE);
	#endif
	_stprintf(szTmp, TEXT("$PLXV0,CONNECTION,W,VSEVEN"));
	LXV7NMEAddCheckSumStrg(szTmp);
	d->Com->WriteString(szTmp);
	Sleep(CHANGE_DELAY);
	UnlockComm();
	Sleep(CHANGE_DELAY);

  }

  return true;
}