//-------------------------------------------------------------------------------------------------- void Testle_gnss_RestartTest ( void ) { LE_INFO("Start Test le_pos_RestartTest"); LE_ASSERT((le_gnss_Start()) == LE_OK); /* Wait for a 3D fix */ LE_INFO("Wait 60 seconds for a 3D fix"); sleep(60); LE_INFO("Ask for a Cold restart in 3 seconds..."); sleep(3); LE_ASSERT(le_gnss_ForceColdRestart() == LE_OK); /* Wait for a 3D fix */ LE_INFO("Wait 60 seconds for a 3D fix"); sleep(60); sleep(1); LE_ASSERT((le_gnss_Stop()) == LE_OK); }
//-------------------------------------------------------------------------------------------------- static void TestLeGnssStart ( void ) { uint32_t rate = 0; le_gnss_ConstellationBitMask_t constellationMask; LE_INFO("Start Test Testle_gnss_StartTest"); LE_ASSERT((le_gnss_GetAcquisitionRate(&rate)) == LE_OK); LE_INFO("Acquisition rate %d ms", rate); LE_ASSERT((le_gnss_SetAcquisitionRate(rate)) == LE_OK); LE_ASSERT(le_gnss_GetConstellation(&constellationMask) == LE_OK); LE_INFO("Constellation 0x%X", constellationMask); LE_ASSERT(le_gnss_SetConstellation(constellationMask) == LE_OK); LE_INFO("Start GNSS"); LE_ASSERT((le_gnss_Start()) == LE_OK); /* Wait for a position fix */ LE_INFO("Wait 120 seconds for a 3D fix"); sleep(120); LE_INFO("Stop GNSS"); LE_ASSERT((le_gnss_Stop()) == LE_OK); }
//-------------------------------------------------------------------------------------------------- static void TestLeGnssPositionHandler ( void ) { le_thread_Ref_t positionThreadRef; LE_INFO("Start Test Testle_gnss_PositionHandlerTest"); LE_INFO("Start GNSS"); LE_ASSERT((le_gnss_Start()) == LE_OK); LE_INFO("Wait 5 seconds"); sleep(5); // Add Position Handler Test positionThreadRef = le_thread_Create("PositionThread",PositionThread,NULL); le_thread_Start(positionThreadRef); LE_INFO("Wait for a 3D fix"); sleep(60); le_gnss_RemovePositionHandler(PositionHandlerRef); LE_INFO("Wait 5 seconds"); sleep(5); // stop thread le_thread_Cancel(positionThreadRef); LE_INFO("Stop GNSS"); LE_ASSERT((le_gnss_Stop()) == LE_OK); }
//-------------------------------------------------------------------------------------------------- void Testle_gnss_DeviceTest ( void ) { LE_INFO("Start Test Testle_gnss_DeviceTest"); // GNSS device enabled by default LE_ASSERT((le_gnss_Enable()) == LE_DUPLICATE); // Disable GNSS device (DISABLED state) LE_ASSERT((le_gnss_Disable()) == LE_OK); LE_ASSERT((le_gnss_Disable()) == LE_DUPLICATE); // Check Disabled state LE_ASSERT((le_gnss_Start()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceColdRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_Stop()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_SetConstellation(LE_GNSS_CONSTELLATION_GPS)) == LE_NOT_PERMITTED); // Enable GNSS device (READY state) LE_ASSERT((le_gnss_Enable()) == LE_OK); LE_ASSERT((le_gnss_Disable()) == LE_OK); LE_ASSERT((le_gnss_Enable()) == LE_OK); LE_ASSERT((le_gnss_SetConstellation(LE_GNSS_CONSTELLATION_GPS)) == LE_OK); LE_ASSERT((le_gnss_Stop()) == LE_DUPLICATE); LE_ASSERT((le_gnss_ForceColdRestart()) == LE_NOT_PERMITTED); // Start GNSS device (ACTIVE state) LE_ASSERT((le_gnss_Start()) == LE_OK); LE_ASSERT((le_gnss_ForceColdRestart()) == LE_OK); LE_ASSERT((le_gnss_Start()) == LE_DUPLICATE); LE_ASSERT((le_gnss_Enable()) == LE_DUPLICATE); LE_ASSERT((le_gnss_Disable()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_SetConstellation(LE_GNSS_CONSTELLATION_GPS)) == LE_NOT_PERMITTED); // Stop GNSS device (READY state) LE_ASSERT((le_gnss_Stop()) == LE_OK); LE_ASSERT((le_gnss_Enable()) == LE_DUPLICATE); LE_ASSERT((le_gnss_Disable()) == LE_OK); LE_ASSERT((le_gnss_Enable()) == LE_OK); LE_ASSERT((le_gnss_SetConstellation(LE_GNSS_CONSTELLATION_GPS)) == LE_OK); LE_ASSERT((le_gnss_Stop()) == LE_DUPLICATE); LE_ASSERT((le_gnss_ForceColdRestart()) == LE_NOT_PERMITTED); }
//-------------------------------------------------------------------------------------------------- void Testle_gnss_StartTest ( void ) { LE_INFO("Start Test Testle_gnss_StartTest"); LE_ASSERT((le_gnss_Start()) == LE_OK); /* Wait for a 3D fix */ LE_INFO("Wait 120 seconds for a 3D fix"); sleep(120); LE_ASSERT((le_gnss_Stop()) == LE_OK); }
//-------------------------------------------------------------------------------------------------- static void TestLeGnssTtffMeasurement ( void ) { uint32_t ttff = 0; uint32_t ttffSave = 0; le_thread_Ref_t positionThreadRef; LE_INFO("Start Test Testle_gnss_ttffTest"); LE_INFO("Start GNSS"); LE_ASSERT((le_gnss_Start()) == LE_OK); // Add Position Handler Test positionThreadRef = le_thread_Create("PositionThread",PositionThread,NULL); le_thread_Start(positionThreadRef); LE_INFO("loop to Wait for a 3D fix"); LoopToGet3Dfix(&ttff); ttffSave = ttff; /* HOT Restart */ LE_INFO("Ask for a Hot restart in 3 seconds..."); sleep(3); LE_ASSERT(le_gnss_ForceHotRestart() == LE_OK); LE_INFO("loop to Wait for a 3D fix"); LoopToGet3Dfix(&ttff); le_gnss_RemovePositionHandler(PositionHandlerRef); LE_INFO("Wait 5 seconds"); sleep(5); // stop thread le_thread_Cancel(positionThreadRef); LE_INFO("Stop GNSS"); LE_ASSERT((le_gnss_Stop()) == LE_OK); LE_INFO("TTFF start = %d msec", ttffSave); LE_INFO("TTFF Hot restart = %d msec", ttff); }
//-------------------------------------------------------------------------------------------------- static void TestLeGnssRestart ( void ) { uint32_t ttff = 0; le_result_t result = LE_FAULT; LE_INFO("Start Test le_pos_RestartTest"); LE_ASSERT((le_gnss_Start()) == LE_OK); /* Wait for a position fix */ LE_INFO("Wait 60 seconds for a 3D fix"); sleep(60); // Get TTFF result = le_gnss_GetTtff(&ttff); LE_ASSERT((result == LE_OK)||(result == LE_BUSY)); if(result == LE_OK) { LE_INFO("TTFF start = %d msec", ttff); } else { LE_INFO("TTFF start not available"); } /* HOT Restart */ LE_INFO("Ask for a Hot restart in 3 seconds..."); sleep(3); LE_ASSERT(le_gnss_ForceHotRestart() == LE_OK); // Wait for a 3D fix LE_INFO("Wait 60 seconds for a 3D fix"); sleep(60); // Get TTFF result = le_gnss_GetTtff(&ttff); LE_ASSERT((result == LE_OK)||(result == LE_BUSY)); if(result == LE_OK) { LE_INFO("TTFF Hot restart = %d msec", ttff); } else { LE_INFO("TTFF Hot restart not available"); } /* WARM Restart */ LE_INFO("Ask for a Warm restart in 3 seconds..."); sleep(3); LE_ASSERT(le_gnss_ForceWarmRestart() == LE_OK); // Wait for a 3D fix LE_INFO("Wait 60 seconds for a 3D fix"); sleep(60); // Get TTFF result = le_gnss_GetTtff(&ttff); LE_ASSERT((result == LE_OK)||(result == LE_BUSY)); if(result == LE_OK) { LE_INFO("TTFF Warm restart = %d msec", ttff); } else { LE_INFO("TTFF Warm restart not available"); } /* COLD Restart */ LE_INFO("Ask for a Cold restart in 3 seconds..."); sleep(3); LE_ASSERT(le_gnss_ForceColdRestart() == LE_OK); // Wait for a 3D fix LE_INFO("Wait 60 seconds for a 3D fix"); sleep(60); // Get TTFF result = le_gnss_GetTtff(&ttff); LE_ASSERT((result == LE_OK)||(result == LE_BUSY)); if(result == LE_OK) { LE_INFO("TTFF Cold restart = %d msec", ttff); } else { LE_INFO("TTFF Cold restart not available"); } /* FACTORY Restart */ LE_INFO("Ask for a Factory restart in 3 seconds..."); sleep(3); LE_ASSERT(le_gnss_ForceFactoryRestart() == LE_OK); // Get TTFF,position fix should be still in progress for the FACTORY start result = le_gnss_GetTtff(&ttff); LE_ASSERT(result == LE_BUSY); LE_INFO("TTFF is checked as not available immediatly after a FACTORY start"); // Wait for a 3D fix LE_INFO("Wait 60 seconds for a 3D fix"); sleep(60); // Get TTFF result = le_gnss_GetTtff(&ttff); LE_ASSERT((result == LE_OK)||(result == LE_BUSY)); if(result == LE_OK) { LE_INFO("TTFF Factory restart = %d msec", ttff); } else { LE_INFO("TTFF Factory restart not available"); } /* Stop GNSS engine*/ sleep(1); LE_ASSERT((le_gnss_Stop()) == LE_OK); }
//-------------------------------------------------------------------------------------------------- static void TestLeGnssDevice ( void ) { uint32_t ttffValue; uint32_t acqRate; le_gnss_ConstellationBitMask_t constellationMask; LE_INFO("Start Test Testle_gnss_DeviceTest"); // GNSS device enabled by default LE_ASSERT((le_gnss_Enable()) == LE_DUPLICATE); // Disable GNSS device (DISABLED state) LE_ASSERT((le_gnss_Disable()) == LE_OK); LE_ASSERT((le_gnss_Disable()) == LE_DUPLICATE); // Check Disabled state LE_ASSERT((le_gnss_Start()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceHotRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceWarmRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceColdRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceFactoryRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_GetTtff(&ttffValue)) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_Stop()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_SetConstellation(LE_GNSS_CONSTELLATION_GPS)) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_GetConstellation(&constellationMask)) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_GetAcquisitionRate(&acqRate)) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_SetAcquisitionRate(acqRate)) == LE_NOT_PERMITTED); // Enable GNSS device (READY state) LE_ASSERT((le_gnss_Enable()) == LE_OK); LE_ASSERT((le_gnss_Disable()) == LE_OK); LE_ASSERT((le_gnss_Enable()) == LE_OK); LE_ASSERT((le_gnss_SetConstellation(LE_GNSS_CONSTELLATION_GPS)) == LE_OK); LE_ASSERT((le_gnss_GetConstellation(&constellationMask)) == LE_OK); LE_ASSERT(constellationMask == LE_GNSS_CONSTELLATION_GPS); LE_ASSERT((le_gnss_Stop()) == LE_DUPLICATE); LE_ASSERT((le_gnss_ForceHotRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceWarmRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceColdRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceFactoryRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_GetAcquisitionRate(&acqRate)) == LE_OK); LE_ASSERT((le_gnss_SetAcquisitionRate(acqRate)) == LE_OK); // Start GNSS device (ACTIVE state) LE_ASSERT((le_gnss_Start()) == LE_OK); LE_ASSERT((le_gnss_Start()) == LE_DUPLICATE); LE_ASSERT((le_gnss_Enable()) == LE_DUPLICATE); LE_ASSERT((le_gnss_Disable()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_SetConstellation(LE_GNSS_CONSTELLATION_GPS)) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_GetConstellation(&constellationMask)) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_GetAcquisitionRate(&acqRate)) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_SetAcquisitionRate(acqRate)) == LE_NOT_PERMITTED); // Stop GNSS device (READY state) LE_ASSERT((le_gnss_Stop()) == LE_OK); LE_ASSERT((le_gnss_Enable()) == LE_DUPLICATE); LE_ASSERT((le_gnss_Disable()) == LE_OK); LE_ASSERT((le_gnss_Enable()) == LE_OK); LE_ASSERT((le_gnss_SetConstellation(LE_GNSS_CONSTELLATION_GPS)) == LE_OK); LE_ASSERT((le_gnss_GetConstellation(&constellationMask)) == LE_OK); LE_ASSERT(constellationMask == LE_GNSS_CONSTELLATION_GPS); LE_ASSERT((le_gnss_Stop()) == LE_DUPLICATE); LE_ASSERT((le_gnss_ForceHotRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceWarmRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceColdRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_ForceFactoryRestart()) == LE_NOT_PERMITTED); LE_ASSERT((le_gnss_GetAcquisitionRate(&acqRate)) == LE_OK); LE_ASSERT((le_gnss_SetAcquisitionRate(acqRate)) == LE_OK); }