bool CMOOSSerialPort::Configure(STRING_LIST sParams) { MOOSTrace("CMOOSSerialPort::Configure() : "); STRING_LIST::iterator p; for(p=sParams.begin();p!=sParams.end();++p) { std::string sLine = *p; std::string sTok = MOOSChomp(sLine,"="); std::string sVal = sLine; if(MOOSStrCmp(sTok,"PORT")) { m_sPort = sVal; MOOSTrace("%s,",m_sPort.c_str()); } else if(MOOSStrCmp(sTok,"BAUDRATE")) { m_nBaudRate = atoi(sVal.c_str()); if(m_nBaudRate==0) { m_nBaudRate = DEFAULT_BAUDRATE; } MOOSTrace("%d,",m_nBaudRate); } else if(MOOSStrCmp(sTok,"HANDSHAKING")) { if(MOOSStrCmp(sVal,"TRUE")) { m_bHandShaking = true; } else { m_bHandShaking = false; } } else if(MOOSStrCmp(sTok,"VERBOSE")) { if(MOOSStrCmp(sVal,"TRUE")) { m_bVerbose = true; } else { m_bVerbose = false; } } else if(MOOSStrCmp(sTok,"STREAMING")) { if(MOOSStrCmp(sVal,"TRUE")) { m_bStreaming = true; } else { m_bStreaming = false; } MOOSTrace("%s,",m_bStreaming?"streaming":"standard"); } // ARH 14/05/2005 Added to allow use of the 500kbaud CSM PCMCIA card else if (MOOSStrCmp(sTok, "USECSMEXT")) { if (MOOSStrCmp(sVal, "TRUE")) { m_bUseCsmExt = true; } else { m_bUseCsmExt = false; } } } bool bSuccess = Create(m_sPort.c_str(),m_nBaudRate); if(bSuccess) { Flush(); if(m_bStreaming) { bSuccess = StartThreads(); } } MOOSTrace("%s\n",bSuccess?"OK":"FAILED"); return bSuccess; }
bool CMOOSNavEngine::Initialise(STRING_LIST sParams) { //make a store for observations.. m_pStore = new CMOOSNavObsStore; //we may be being asked to map thrust to velocity string sVal; if(MOOSGetValueFromToken(sParams,"THRUST2VELOCITY",sVal)) { if(MOOSStrCmp(sVal,"TRUE")) { if(MOOSGetValueFromToken(sParams,"THRUST2VELOCITY_GAIN",sVal)) { m_bThrust2Vel = true; m_dfThrust2VelGain = atof(sVal.c_str()); } } } if(MOOSGetValueFromToken(sParams,"SV",sVal)) { double dfNewSV = atof(sVal.c_str()); if(dfNewSV !=0) { m_dfSV=dfNewSV; } } //set up navigation filter logging.... bool bLog = false; if(MOOSGetValueFromToken(sParams,"NAV_LOG",sVal)) { bLog = MOOSStrCmp(sVal,"TRUE"); } if(bLog) { string sPath=""; //do we have a globally defined path? CProcessConfigReader Reader; Reader.SetFile(m_sMissionFileName); if(!Reader.GetValue("GLOBALLOGPATH",sPath)) { //no..get it locally MOOSGetValueFromToken(sParams,"NAV_LOG_PATH",sPath); } bool bTimeStamp=false; if(MOOSGetValueFromToken(sParams,"NAV_LOG_TIMESTAMP",sVal)) { bTimeStamp = MOOSStrCmp(sVal,"TRUE"); } m_Logger.Initialise(m_sName,sPath,bTimeStamp); } //Allocate Global states.. SetUpGlobalStates(); AddTheVehicle(sParams); //fixed observations are attached to the COG... AddSensor("FIXED","COG", CMOOSNavSensor::FIXED,0,0,0); //set our default start up state... //set in constructor of derived classes SetOnline(m_bInitialOnline); return true; }