Exemple #1
0
  def __init__(self, canbus, car_fingerprint):
    self.pedal_steady = 0.
    self.start_time = 0.
    self.steer_idx = 0
    self.apply_steer_last = 0
    self.car_fingerprint = car_fingerprint
    self.lka_icon_status_last = (False, False)

    # Setup detection helper. Routes commands to
    # an appropriate CAN bus number.
    self.canbus = canbus
    self.params = CarControllerParams(car_fingerprint)

    self.packer_pt = CANPacker(DBC[car_fingerprint]['pt'])
    self.packer_ch = CANPacker(DBC[car_fingerprint]['chassis'])
    def __init__(self,
                 dbc_name=None,
                 car_fingerprint="MIEV",
                 enable_camera=1,
                 enable_dsu=1,
                 enable_apg=1):
        self.braking = False
        # redundant safety check with the board
        self.controls_allowed = True
        self.last_steer = 0
        self.last_angle = 0
        self.accel_steady = 0.
        self.car_fingerprint = car_fingerprint
        self.alert_active = False
        self.last_standstill = False
        self.standstill_req = False
        self.angle_control = False
        self.steer_angle_enabled = False
        self.last_fault_frame = -200

        self.fake_ecus = set()
        #if enable_camera: self.fake_ecus.add(ECU.CAM)
        if enable_dsu: self.fake_ecus.add(ECU.DSU)
        #if enable_apg: self.fake_ecus.add(ECU.APGS)

        self.packer = CANPacker(dbc_name)
        self.client = Client()
 def __init__(self, dbc_name, enable_camera=True):
   self.params = Params()
   self.braking = False
   self.brake_steady = 0.
   self.brake_last = 0.
   self.enable_camera = enable_camera
   self.packer = CANPacker(dbc_name)
   self.epas_disabled = True
   self.last_angle = 0.
   self.last_accel = 0.
   self.ALCA = ALCAController(self,True,True)  # Enabled and SteerByAngle both True
   self.ACC = ACCController()
   self.PCC = PCCController(self)
   self.HSO = HSOController(self)
   self.GYRO = GYROController()
   self.sent_DAS_bootID = False
   context = zmq.Context()
   self.poller = zmq.Poller()
   self.speedlimit = messaging.sub_sock(context, service_list['liveMapData'].port, conflate=True, poller=self.poller)
   self.speedlimit_ms = 0
   self.speedlimit_valid = False
   self.speedlimit_units = 0
   self.opState = 0 # 0-disabled, 1-enabled, 2-disabling, 3-unavailable, 5-warning
   self.accPitch = 0.
   self.accRoll = 0.
   self.accYaw = 0.
   self.magPitch = 0.
   self.magRoll = 0.
   self.magYaw = 0.
   self.gyroPitch = 0.
   self.gyroRoll = 0.
   self.gyroYaw = 0.
   self.set_speed_limit_active = False
   self.speed_limit_offset = 0.
    def __init__(self, dbc_name, car_fingerprint, enable_camera, enable_dsu,
                 enable_apg):
        self.braking = False
        # redundant safety check with the board
        self.controls_allowed = True
        self.last_steer = 0
        self.last_angle = 0
        self.accel_steady = 0.
        self.car_fingerprint = car_fingerprint
        self.alert_active = False
        self.last_standstill = False
        self.standstill_req = False
        self.angle_control = False

        self.steer_angle_enabled = False
        self.ipas_reset_counter = 0
        self.last_fault_frame = -200

        self.fake_ecus = set()
        if enable_camera: self.fake_ecus.add(ECU.CAM)
        if enable_dsu: self.fake_ecus.add(ECU.DSU)
        if enable_apg: self.fake_ecus.add(ECU.APGS)
        self.ALCA = ALCAController(
            self, True, False)  # Enabled True and SteerByAngle only False

        self.packer = CANPacker(dbc_name)
Exemple #5
0
    def __init__(self, dbc_name, car_fingerprint, enable_camera):
        self.apply_steer_last = 0
        self.turning_signal_timer = 0
        self.car_fingerprint = car_fingerprint
        self.lkas11_cnt = 0
        self.mdps12_cnt = 0
        self.cnt = 0
        self.last_resume_cnt = 0
        self.map_speed = 0
        self.enable_camera = enable_camera
        # True when camera present, and we need to replace all the camera messages
        # otherwise we forward the camera msgs and we just replace the lkas cmd signals
        self.camera_disconnected = False
        self.packer = CANPacker(dbc_name)
        context = zmq.Context()
        self.params = Params()
        self.map_data_sock = messaging.sub_sock(
            context, service_list['liveMapData'].port, conflate=True)
        self.speed_conv = 3.6
        self.speed_adjusted = False
        self.checksum = "NONE"
        self.checksum_learn_cnt = 0
        self.en_cnt = 0
        self.apply_steer_ang = 0.0
        self.en_spas = 3
        self.mdps11_stat_last = 0
        self.lkas = False
        self.spas_present = True  # TODO Make Automatic

        self.ALCA = ALCAController(
            self, True, False)  # Enabled True and SteerByAngle only False
 def test_hud(self):
   packer = CANPacker('chrysler_pacifica_2017_hybrid')
   self.assertEqual(
       [0x2a6, 0, '0100010100000000'.decode('hex'), 0],
       chryslercan.create_lkas_hud(
           packer,
           'park', False, False, 1, 0))
   self.assertEqual(
       [0x2a6, 0, '0100010000000000'.decode('hex'), 0],
       chryslercan.create_lkas_hud(
           packer,
           'park', False, False, 5*4, 0))
   self.assertEqual(
       [0x2a6, 0, '0100010000000000'.decode('hex'), 0],
       chryslercan.create_lkas_hud(
           packer,
           'park', False, False, 99999, 0))
   self.assertEqual(
       [0x2a6, 0, '0200060000000000'.decode('hex'), 0],
       chryslercan.create_lkas_hud(
           packer,
           'drive', True, False, 99999, 0))
   self.assertEqual(
       [0x2a6, 0, '0264060000000000'.decode('hex'), 0],
       chryslercan.create_lkas_hud(
           packer,
           'drive', True, False, 99999, 0x64))
Exemple #7
0
  def __init__(self, dbc_name, car_fingerprint):
    self.apply_steer_last = 0
    self.car_fingerprint = car_fingerprint

    self.lkas11_cnt = 0
    self.clu11_cnt = 0
    self.mdps12_cnt = 0
    self.cnt = 0
    self.last_resume_cnt = 0

    self.map_speed = 0
    self.map_data_sock = messaging.sub_sock(service_list['liveMapData'].port)
    self.params = Params()
    self.speed_conv = 3.6
    self.speed_offset = 1.03      # Multiplier for cruise speed vs speed limit  TODO: Add to UI
    self.speed_enable = True      # Enable Auto Speed Set                       TODO: Add to UI
    self.speed_adjusted = False

    self.checksum = "NONE"
    self.checksum_learn_cnt = 0

    self.turning_signal_timer = 0
    self.camera_disconnected = False
    self.checksum_found = False

    self.packer = CANPacker(dbc_name)
Exemple #8
0
  def __init__(self, dbc_name, car_fingerprint, enable_camera, enable_dsu, enable_apg):
    self.braking = False
    # redundant safety check with the board
    self.controls_allowed = True
    self.last_steer = 0
    self.last_angle = 0
    self.accel_steady = 0.
    self.car_fingerprint = car_fingerprint
    self.alert_active = False
    self.last_standstill = False
    self.standstill_req = False
    self.angle_control = False

    self.steer_angle_enabled = False
    self.ipas_reset_counter = 0
    self.last_fault_frame = -200

    self.fake_ecus = set()
    if enable_camera: self.fake_ecus.add(ECU.CAM)
    if enable_dsu: self.fake_ecus.add(ECU.DSU)
    if enable_apg: self.fake_ecus.add(ECU.APGS)

    self.packer = CANPacker(dbc_name)

    # Openpilot Buttons -- https://github.com/rhinodavid/OpenpilotButtons
    # used to rate limit sending of ACC Time Gap advance commands
    self.last_acc_advance_time = 0.
Exemple #9
0
 def __init__(self, dbc_name, enable_camera=True):
     self.braking = False
     self.brake_steady = 0.
     self.brake_last = 0.
     self.enable_camera = enable_camera
     self.packer = CANPacker(dbc_name)
     self.new_radar_config = False
 def test_hud(self):
     packer = CANPacker('chrysler_pacifica_2017_hybrid')
     self.assertEqual([0x2a6, 0, '0000010100000000'.decode('hex'), 0],
                      chryslercan.create_lkas_hud(packer, 'park', False,
                                                  False,
                                                  CAR.PACIFICA_2017_HYBRID,
                                                  1))
     self.assertEqual([0x2a6, 0, '0000010000000000'.decode('hex'), 0],
                      chryslercan.create_lkas_hud(packer, 'park', False,
                                                  False,
                                                  CAR.PACIFICA_2017_HYBRID,
                                                  5 * 4))
     self.assertEqual([0x2a6, 0, '0000000000000000'.decode('hex'), 0],
                      chryslercan.create_lkas_hud(packer, 'park', False,
                                                  False,
                                                  CAR.PACIFICA_2017_HYBRID,
                                                  99999))
     self.assertEqual([0x2a6, 0, '0200060000000000'.decode('hex'), 0],
                      chryslercan.create_lkas_hud(packer, 'drive', True,
                                                  False,
                                                  CAR.PACIFICA_2017_HYBRID,
                                                  99999))
     self.assertEqual([0x2a6, 0, '0264060000000000'.decode('hex'), 0],
                      chryslercan.create_lkas_hud(packer, 'drive', True,
                                                  False, CAR.PACIFICA_2018,
                                                  99999))
Exemple #11
0
    def __init__(self, dbc_name, car_fingerprint, enable_camera, enable_dsu,
                 enable_apg):
        self.braking = False
        # redundant safety check with the board
        self.controls_allowed = True
        self.last_steer = 0
        self.last_angle = 0
        self.send_new_status = False  # indicates we want to send 2a6 when we can.
        self.prev_2a6 = -9999  # long time ago.
        self.ccframe = 0
        self.accel_steady = 0.
        self.car_fingerprint = car_fingerprint
        self.alert_active = False
        self.last_standstill = False
        self.standstill_req = False
        self.angle_control = False

        self.steer_angle_enabled = False
        self.ipas_reset_counter = 0

        self.fake_ecus = set()
        if enable_camera: self.fake_ecus.add(ECU.CAM)
        #if enable_dsu: self.fake_ecus.add(ECU.DSU)
        #if enable_apg: self.fake_ecus.add(ECU.APGS)

        self.packer = CANPacker(dbc_name)

        logging.basicConfig(
            level=logging.DEBUG,
            filename="/tmp/chrylog",
            filemode="a+",
            format="%(asctime)-15s %(levelname)-8s %(message)s")
    def __init__(self, canbus, car_fingerprint):
        self.pedal_steady = 0.
        self.start_time = sec_since_boot()
        self.chime = 0
        self.lkas_active = False
        self.inhibit_steer_for = 0
        self.steer_idx = 0
        self.apply_steer_last = 0
        self.car_fingerprint = car_fingerprint

        # Setup detection helper. Routes commands to
        # an appropriate CAN bus number.
        self.canbus = canbus
        self.params = CarControllerParams(car_fingerprint)

        self.packer_pt = CANPacker(DBC[car_fingerprint]['pt'])
        self.packer_ch = CANPacker(DBC[car_fingerprint]['chassis'])
Exemple #13
0
 def __init__(self, dbc_name):
     self.braking = False
     self.brake_steady = 0.
     self.brake_last = 0.
     self.apply_brake_last = 0
     self.last_pump_ts = 0.
     self.packer = CANPacker(dbc_name)
     self.new_radar_config = False
Exemple #14
0
 def __init__(self, dbc_name, enable_camera=True):
   self.braking = False
   self.brake_steady = 0.
   self.brake_last = 0.
   self.enable_camera = enable_camera
   self.packer = CANPacker(dbc_name)
   self.new_radar_config = False
   self.ALCA = ALCAController(self,True,False)  # Enabled  True and SteerByAngle only False
Exemple #15
0
 def __init__(self, dbc_name, enable_camera, vehicle_model):
     self.packer = CANPacker(dbc_name)
     self.enable_camera = enable_camera
     self.enabled_last = False
     self.main_on_last = False
     self.vehicle_model = vehicle_model
     self.generic_toggle_last = 0
     self.steer_alert_last = False
     self.lkas_action = 0
Exemple #16
0
 def __init__(self, dbc_name):
     self.braking = False
     self.brake_steady = 0.
     self.brake_last = 0.
     self.apply_brake_last = 0
     self.last_pump_on_state = False
     self.packer = CANPacker(dbc_name)
     self.new_radar_config = False
     self.prev_lead_distance = 0.0
Exemple #17
0
    def __init__(self, canbus, car_fingerprint, allow_controls):
        self.pedal_steady = 0.
        self.start_time = sec_since_boot()
        self.chime = 0
        self.steer_idx = 0
        self.apply_steer_last = 0
        self.car_fingerprint = car_fingerprint
        self.allow_controls = allow_controls
        self.lka_icon_status_last = (False, False)
        self.ALCA = ALCAController(
            self, True, False)  # Enabled  True and SteerByAngle only False

        # Setup detection helper. Routes commands to
        # an appropriate CAN bus number.
        self.canbus = canbus
        self.params = CarControllerParams(car_fingerprint)

        self.packer_pt = CANPacker(DBC[car_fingerprint]['pt'])
        self.packer_ch = CANPacker(DBC[car_fingerprint]['chassis'])
Exemple #18
0
    def __init__(self, dbc_name, car_fingerprint):
        self.apply_steer_last = 0
        self.car_fingerprint = car_fingerprint
        self.lkas11_cnt = 0
        self.cnt = 0
        self.last_resume_cnt = 0
        # True when giraffe switch 2 is low and we need to replace all the camera messages
        # otherwise we forward the camera msgs and we just replace the lkas cmd signals
        self.camera_disconnected = False

        self.packer = CANPacker(dbc_name)
Exemple #19
0
    def test_subaru(self):
        # Subuaru is little endian
        CP = SubaruInterface.get_params(SUBARU_CAR.IMPREZA)

        signals = [
            ("Counter", "ES_LKAS", 0),
            ("LKAS_Output", "ES_LKAS", 0),
            ("LKAS_Request", "ES_LKAS", 0),
            ("SET_1", "ES_LKAS", 0),
        ]

        checks = []

        parser = CANParser(SUBARU_DBC[CP.carFingerprint]['pt'], signals,
                           checks, 0)
        packer = CANPacker(SUBARU_DBC[CP.carFingerprint]['pt'])

        idx = 0

        for steer in range(0, 255):
            for active in [1, 0]:
                values = {
                    "Counter": idx,
                    "LKAS_Output": steer,
                    "LKAS_Request": active,
                    "SET_1": 1
                }

                msgs = packer.make_can_msg("ES_LKAS", 0, values)
                bts = can_list_to_can_capnp([msgs])
                parser.update_string(bts)

                self.assertAlmostEqual(parser.vl["ES_LKAS"]["LKAS_Output"],
                                       steer)
                self.assertAlmostEqual(parser.vl["ES_LKAS"]["LKAS_Request"],
                                       active)
                self.assertAlmostEqual(parser.vl["ES_LKAS"]["SET_1"], 1)
                self.assertAlmostEqual(parser.vl["ES_LKAS"]["Counter"],
                                       idx % 16)

                idx += 1
 def test_command(self):
   packer = CANPacker('chrysler_pacifica_2017_hybrid')
   self.assertEqual(
       [0x292, 0, '140000001086'.decode('hex'), 0],
       chryslercan.create_lkas_command(
           packer,
           0, True, 1))
   self.assertEqual(
       [0x292, 0, '040000008083'.decode('hex'), 0],
       chryslercan.create_lkas_command(
           packer,
           0, False, 8))
    def __init__(self, car_fingerprint):
        self.lkas_active = False
        self.steer_idx = 0
        self.apply_steer_last = 0
        self.car_fingerprint = car_fingerprint
        self.es_distance_cnt = -1
        self.es_lkas_cnt = -1

        # Setup detection helper. Routes commands to
        # an appropriate CAN bus number.
        self.params = CarControllerParams(car_fingerprint)
        self.packer = CANPacker(DBC[car_fingerprint]['pt'])
Exemple #22
0
 def __init__(self, dbc_name):
     self.braking = False
     self.brake_steady = 0.
     self.brake_last = 0.
     self.apply_brake_last = 0
     self.last_pump_ts = 0.
     self.packer = CANPacker(dbc_name)
     self.new_radar_config = False
     self.prev_lead_distance = 0.0
     self.stopped_lead_distance = 0.0
     self.lead_distance_counter = 1
     self.lead_distance_counter_prev = 1
     self.rough_lead_speed = 0.0
Exemple #23
0
 def __init__(self, dbc_name, enable_camera=True):
     self.braking = False
     self.brake_steady = 0.
     self.brake_last = 0.
     self.enable_camera = enable_camera
     self.packer = CANPacker(dbc_name)
     self.epas_disabled = True
     self.last_angle = 0.
     self.last_accel = 0.
     self.ALCA = ALCAController(self, True,
                                True)  # Enabled and SteerByAngle both True
     self.ACC = ACCController()
     self.PCC = PCCController(self)
     self.HSO = HSOController(self)
Exemple #24
0
    def __init__(self, canbus, car_fingerprint):
        self.apply_steer_last = 0
        self.car_fingerprint = car_fingerprint

        # Setup detection helper. Routes commands to an appropriate CAN bus number.
        self.canbus = canbus
        self.packer_gw = CANPacker(DBC[car_fingerprint]['pt'])

        self.hcaSameTorqueCount = 0
        self.hcaEnabledFrameCount = 0
        self.graButtonStatesToSend = None
        self.graMsgSentCount = 0
        self.graMsgStartFramePrev = 0
        self.graMsgBusCounterPrev = 0
Exemple #25
0
 def __init__(self, dbc_name, enable_camera=True):
     self.braking = False
     self.brake_steady = 0.
     self.brake_last = 0.
     self.apply_brake_last = 0
     self.last_pump_ts = 0
     self.enable_camera = enable_camera
     self.packer = CANPacker(dbc_name)
     self.new_radar_config = False
     #self.params = Params()
     self.is_metric = Params().get("IsMetric") == "1"
     if self.is_metric:
         self.speed_units = 2
     else:
         self.speed_units = 3
Exemple #26
0
    def test_civic(self):
        CP = HondaInterface.get_params(HONDA_CAR.CIVIC)

        signals = [
            ("STEER_TORQUE", "STEERING_CONTROL", 0),
            ("STEER_TORQUE_REQUEST", "STEERING_CONTROL", 0),
        ]
        checks = []

        parser = CANParser(HONDA_DBC[CP.carFingerprint]['pt'], signals, checks,
                           0)
        packer = CANPacker(HONDA_DBC[CP.carFingerprint]['pt'])

        idx = 0

        for steer in range(0, 255):
            for active in [1, 0]:
                values = {
                    "STEER_TORQUE": steer,
                    "STEER_TORQUE_REQUEST": active,
                }

                msgs = packer.make_can_msg("STEERING_CONTROL", 0, values, idx)
                bts = can_list_to_can_capnp([msgs])

                parser.update_string(bts)

                self.assertAlmostEqual(
                    parser.vl["STEERING_CONTROL"]["STEER_TORQUE"], steer)
                self.assertAlmostEqual(
                    parser.vl["STEERING_CONTROL"]["STEER_TORQUE_REQUEST"],
                    active)
                self.assertAlmostEqual(
                    parser.vl["STEERING_CONTROL"]["COUNTER"], idx % 4)

                idx += 1
Exemple #27
0
    def __init__(self, dbc_name, car_fingerprint, enable_camera):
        self.braking = False
        self.controls_allowed = True
        self.apply_steer_last = 0
        self.car_fingerprint = car_fingerprint
        self.angle_control = False
        self.idx = 0
        self.lkas_request = 0
        self.lanes = 0
        self.steer_angle_enabled = False
        self.ipas_reset_counter = 0
        self.turning_inhibit = 0
        self.hide_lkas_fault = 180
        print self.car_fingerprint

        self.packer = CANPacker(dbc_name)
Exemple #28
0
    def __init__(self, dbc_name, car_fingerprint, enable_camera):
        self.braking = False
        # redundant safety check with the board
        self.controls_allowed = True
        self.apply_steer_last = 0
        self.ccframe = 0
        self.prev_frame = -1
        self.car_fingerprint = car_fingerprint
        self.alert_active = False
        self.send_chime = False

        self.fake_ecus = set()
        if enable_camera:
            self.fake_ecus.add(ECU.CAM)

        self.packer = CANPacker(dbc_name)
Exemple #29
0
    def __init__(self, dbc_name, car_fingerprint, enable_camera=True):
        self.braking = False
        self.brake_steady = 0.
        self.brake_last = 0.
        self.enable_camera = enable_camera
        self.packer = CANPacker(dbc_name)
        self.new_radar_config = False
        self.car_fingerprint = car_fingerprint  #2018.09.06 12:06AM borrow from subaru carcontroller.py

        # 2018.09.06 12:09AM borrow from subaru carcontroller.py
        # Setup detection helper. Routes commands to
        # an appropriate CAN bus number.
        #self.canbus = canbus

        self.params = SteerLimitParams(
            car_fingerprint
        )  #2018.09.05 define steering paramater limt #TODO to use in code
Exemple #30
0
 def __init__(self, car_fingerprint):
   self.start_time = sec_since_boot()
   self.lkas_active = False
   self.steer_idx = 0
   self.apply_steer_last = 0
   self.car_fingerprint = car_fingerprint
   self.es_distance_cnt = -1
   self.es_lkas_cnt = -1
   self.counter = 0
   
   self.ALCA = ALCAController(self,True,False) # Enabled  True and SteerByAngle only False
   
   # Setup detection helper. Routes commands to
   # an appropriate CAN bus number.
   self.params = CarControllerParams(car_fingerprint)
   print(DBC)
   self.packer = CANPacker(DBC[car_fingerprint]['pt'])