process_replay: deprecated message migration (#28456)
	
		
	
				
					
				
			* Move migration code to new file * Migrate messages in process replay. Remove old code * Fix old_logtime * Keep old logtimes on migrated messages * Update ref commitmqb-freewheeling
							parent
							
								
									f7f5537af7
								
							
						
					
					
						commit
						838346d8a3
					
				
				 4 changed files with 70 additions and 59 deletions
			
			
		| @ -0,0 +1,65 @@ | ||||
| from cereal import messaging | ||||
| 
 | ||||
| 
 | ||||
| def migrate_all(lr, old_logtime=False): | ||||
|   msgs = migrate_sensorEvents(lr, old_logtime) | ||||
|   msgs = migrate_carParams(msgs, old_logtime) | ||||
| 
 | ||||
|   return msgs | ||||
| 
 | ||||
| 
 | ||||
| def migrate_carParams(lr, old_logtime=False): | ||||
|   all_msgs = [] | ||||
|   for msg in lr: | ||||
|     if msg.which() == 'carParams': | ||||
|       CP = messaging.new_message('carParams') | ||||
|       CP.carParams = msg.carParams.as_builder() | ||||
|       for car_fw in CP.carParams.carFw: | ||||
|         car_fw.brand = CP.carParams.carName | ||||
|       if old_logtime: | ||||
|         CP.logMonoTime = msg.logMonoTime | ||||
|       msg = CP.as_reader() | ||||
|     all_msgs.append(msg) | ||||
| 
 | ||||
|   return all_msgs | ||||
| 
 | ||||
| 
 | ||||
| def migrate_sensorEvents(lr, old_logtime=False): | ||||
|   all_msgs = [] | ||||
|   for msg in lr: | ||||
|     if msg.which() != 'sensorEventsDEPRECATED': | ||||
|       all_msgs.append(msg) | ||||
|       continue | ||||
| 
 | ||||
|     # migrate to split sensor events | ||||
|     for evt in msg.sensorEventsDEPRECATED: | ||||
|       # build new message for each sensor type | ||||
|       sensor_service = '' | ||||
|       if evt.which() == 'acceleration': | ||||
|         sensor_service = 'accelerometer' | ||||
|       elif evt.which() == 'gyro' or evt.which() == 'gyroUncalibrated': | ||||
|         sensor_service = 'gyroscope' | ||||
|       elif evt.which() == 'light' or evt.which() == 'proximity': | ||||
|         sensor_service = 'lightSensor' | ||||
|       elif evt.which() == 'magnetic' or evt.which() == 'magneticUncalibrated': | ||||
|         sensor_service = 'magnetometer' | ||||
|       elif evt.which() == 'temperature': | ||||
|         sensor_service = 'temperatureSensor' | ||||
| 
 | ||||
|       m = messaging.new_message(sensor_service) | ||||
|       m.valid = True | ||||
|       if old_logtime: | ||||
|         m.logMonoTime = msg.logMonoTime | ||||
| 
 | ||||
|       m_dat = getattr(m, sensor_service) | ||||
|       m_dat.version = evt.version | ||||
|       m_dat.sensor = evt.sensor | ||||
|       m_dat.type = evt.type | ||||
|       m_dat.source = evt.source | ||||
|       if old_logtime: | ||||
|         m_dat.timestamp = evt.timestamp | ||||
|       setattr(m_dat, evt.which(), getattr(evt, evt.which())) | ||||
| 
 | ||||
|       all_msgs.append(m.as_reader()) | ||||
| 
 | ||||
|   return all_msgs | ||||
| @ -1 +1 @@ | ||||
| 3e684aef4483b8d311d71bab3bb543d7bad26563 | ||||
| 67bcd498f0432252a3f11a9fd2b59b344ee214ba | ||||
|  | ||||
					Loading…
					
					
				
		Reference in new issue