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; }
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); }
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; }
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); }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /// 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()
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; }