You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							44 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							44 lines
						
					
					
						
							1.0 KiB
						
					
					
				import os
 | 
						|
import time
 | 
						|
from cereal import car
 | 
						|
from selfdrive.car import gen_empty_fingerprint
 | 
						|
 | 
						|
# generic car and radar interfaces
 | 
						|
 | 
						|
class CarInterfaceBase():
 | 
						|
  def __init__(self, CP, CarController):
 | 
						|
    pass
 | 
						|
 | 
						|
  @staticmethod
 | 
						|
  def calc_accel_override(a_ego, a_target, v_ego, v_target):
 | 
						|
    return 1.
 | 
						|
 | 
						|
  @staticmethod
 | 
						|
  def compute_gb(accel, speed):
 | 
						|
    raise NotImplementedError
 | 
						|
 | 
						|
  @staticmethod
 | 
						|
  def get_params(candidate, fingerprint=gen_empty_fingerprint(), has_relay=False, car_fw=[]):
 | 
						|
    raise NotImplementedError
 | 
						|
 | 
						|
  # returns a car.CarState, pass in car.CarControl
 | 
						|
  def update(self, c, can_strings):
 | 
						|
    raise NotImplementedError
 | 
						|
 | 
						|
  # return sendcan, pass in a car.CarControl
 | 
						|
  def apply(self, c):
 | 
						|
    raise NotImplementedError
 | 
						|
 | 
						|
class RadarInterfaceBase():
 | 
						|
  def __init__(self, CP):
 | 
						|
    self.pts = {}
 | 
						|
    self.delay = 0
 | 
						|
    self.radar_ts = CP.radarTimeStep
 | 
						|
 | 
						|
  def update(self, can_strings):
 | 
						|
    ret = car.RadarData.new_message()
 | 
						|
 | 
						|
    if 'NO_RADAR_SLEEP' not in os.environ:
 | 
						|
      time.sleep(self.radar_ts)  # radard runs on RI updates
 | 
						|
 | 
						|
    return ret
 | 
						|
 |