@ -15,7 +15,7 @@ from selfdrive.manager.process_config import managed_processes
class TestLocationdProc ( unittest . TestCase ) :
MAX_WAITS = 1000
LLD_MSGS = [ ' gnssMeasurements ' , ' cameraOdometry ' , ' carState ' , ' liveCalibration ' ,
LLD_MSGS = [ ' gpsLocationExternal ' , ' cameraOdometry ' , ' carState ' , ' liveCalibration ' ,
' accelerometer ' , ' gyroscope ' , ' magnetometer ' ]
def setUp ( self ) :
@ -46,14 +46,25 @@ class TestLocationdProc(unittest.TestCase):
except capnp . lib . capnp . KjException :
msg = messaging . new_message ( name , 0 )
if name == " gnssMeasurements " :
msg . gnssMeasurements . measTime = t
msg . gnssMeasurements . positionECEF . value = [ self . x , self . y , self . z ]
msg . gnssMeasurements . positionECEF . std = [ 0 , 0 , 0 ]
msg . gnssMeasurements . positionECEF . valid = True
msg . gnssMeasurements . velocityECEF . value = [ ]
msg . gnssMeasurements . velocityECEF . std = [ 0 , 0 , 0 ]
msg . gnssMeasurements . velocityECEF . valid = True
if name == " gpsLocationExternal " :
msg . gpsLocationExternal . flags = 1
msg . gpsLocationExternal . verticalAccuracy = 1.0
msg . gpsLocationExternal . speedAccuracy = 1.0
msg . gpsLocationExternal . bearingAccuracyDeg = 1.0
msg . gpsLocationExternal . vNED = [ 0.0 , 0.0 , 0.0 ]
msg . gpsLocationExternal . latitude = float ( self . lat )
msg . gpsLocationExternal . longitude = float ( self . lon )
msg . gpsLocationExternal . unixTimestampMillis = t * 1e6
msg . gpsLocationExternal . altitude = float ( self . alt )
#if name == "gnssMeasurements":
# msg.gnssMeasurements.measTime = t
# msg.gnssMeasurements.positionECEF.value = [self.x , self.y, self.z]
# msg.gnssMeasurements.positionECEF.std = [0,0,0]
# msg.gnssMeasurements.positionECEF.valid = True
# msg.gnssMeasurements.velocityECEF.value = []
# msg.gnssMeasurements.velocityECEF.std = [0,0,0]
# msg.gnssMeasurements.velocityECEF.valid = True
elif name == ' cameraOdometry ' :
msg . cameraOdometry . rot = [ 0.0 , 0.0 , 0.0 ]
msg . cameraOdometry . rotStd = [ 0.0 , 0.0 , 0.0 ]
@ -84,9 +95,9 @@ class TestLocationdProc(unittest.TestCase):
time . sleep ( 1 ) # wait for async params write
lastGPS = json . loads ( Params ( ) . get ( ' LastGPSPosition ' ) )
self . assertAlmostEqual ( lastGPS [ ' latitude ' ] , self . lat , places = 4 )
self . assertAlmostEqual ( lastGPS [ ' longitude ' ] , self . lon , places = 4 )
self . assertAlmostEqual ( lastGPS [ ' altitude ' ] , self . alt , places = 4 )
self . assertAlmostEqual ( lastGPS [ ' latitude ' ] , self . lat , places = 3 )
self . assertAlmostEqual ( lastGPS [ ' longitude ' ] , self . lon , places = 3 )
self . assertAlmostEqual ( lastGPS [ ' altitude ' ] , self . alt , places = 3 )
if __name__ == " __main__ " :