Пример #1
0
    def __init__(self, dbc_name, CP, VM):
        self.start_time = 0.
        self.apply_steer_last = 0
        self.lka_icon_status_last = (False, False)
        self.steer_rate_limited = False
        self.fcw_count = 0

        self.params = CarControllerParams()

        self.packer_pt = CANPacker(DBC[CP.carFingerprint]['pt'])
        self.packer_obj = CANPacker(DBC[CP.carFingerprint]['radar'])
        self.packer_ch = CANPacker(DBC[CP.carFingerprint]['chassis'])

        self.debug_logging = False
        self.debug_log_time_step = 0.333
        self.last_debug_log_t = 0.
        if self.debug_logging:
            with open("/data/openpilot/coast_debug.csv", "w") as f:
                f.write(",".join([
                    "t", "long plan", "d (m/s)", "v", "vEgo", "v_cruise",
                    "v (mph)", "vEgo (mph)", "v_cruise (mph)", "ttc",
                    "coast gas lockout", "coast brake lockout", "gas in",
                    "brake in", "one-pedal", "coasting enabled", "no f brakes",
                    "gas out", "brake out"
                ]) + "\n")
Пример #2
0
 def __init__(self, dbc_name, CP, VM):
     self.CP = CP
     self.last_angle = 0
     self.long_control_counter = 0
     self.packer = CANPacker(dbc_name)
     self.pt_packer = CANPacker(DBC[CP.carFingerprint]['pt'])
     self.tesla_can = TeslaCAN(self.packer, self.pt_packer)
Пример #3
0
    def __init__(self, dbc_name, CP, VM):
        self.start_time = 0.
        self.apply_steer_last = 0
        self.lka_icon_status_last = (False, False)
        self.steer_rate_limited = False

        self.params = CarControllerParams()

        self.packer_pt = CANPacker(DBC[CP.carFingerprint]['pt'])
        self.packer_obj = CANPacker(DBC[CP.carFingerprint]['radar'])
        self.packer_ch = CANPacker(DBC[CP.carFingerprint]['chassis'])
Пример #4
0
  def __init__(self, dbc_name, CP, VM):
    self.apply_steer_last = 0

    self.packer_pt = CANPacker(DBC[CP.carFingerprint]['pt'])
    self.acc_bus = CANBUS.pt if CP.networkLocation == NWL.fwdCamera else CANBUS.cam

    if CP.safetyModel == car.CarParams.SafetyModel.volkswagen:
      self.create_steering_control = volkswagencan.create_mqb_steering_control
      self.create_acc_buttons_control = volkswagencan.create_mqb_acc_buttons_control
      self.create_hud_control = volkswagencan.create_mqb_hud_control
    elif CP.safetyModel == car.CarParams.SafetyModel.volkswagenPq:
      self.create_steering_control = volkswagencan.create_pq_steering_control
      self.create_acc_buttons_control = volkswagencan.create_pq_acc_buttons_control
      self.create_hud_control = volkswagencan.create_pq_hud_control

    self.hcaSameTorqueCount = 0
    self.hcaEnabledFrameCount = 0
    self.graButtonStatesToSend = None
    self.graMsgSentCount = 0
    self.graMsgStartFramePrev = 0
    self.graMsgBusCounterPrev = 0

    self.steer_rate_limited = False

    # dp
    self.last_blinker_on = False
    self.blinker_end_frame = 0.
Пример #5
0
    def __init__(self, dbc_name, car_fingerprint):
        self.packer = CANPacker(dbc_name)
        self.car_fingerprint = car_fingerprint
        self.accel_steady = 0
        self.apply_steer_last = 0
        self.steer_rate_limited = False
        self.lkas11_cnt = 0
        self.scc12_cnt = 0
        self.resume_cnt = 0
        self.last_resume_frame = 0
        self.last_lead_distance = 0
        self.turning_signal_timer = 0
        self.lkas_button = 1
        self.lkas_button_last = 0
        self.longcontrol = 0  #TODO: make auto

        self.cnt = 0
        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
Пример #6
0
    def __init__(self, dbc_name, CP, VM):
        self.apply_steer_last = 0
        self.es_distance_cnt = -1
        self.es_accel_cnt = -1
        self.es_lkas_cnt = -1
        self.fake_button_prev = 0
        self.steer_rate_limited = False
        self.throttle_cnt = -1

        self.packer = CANPacker(DBC[CP.carFingerprint]['pt'])

        #self.params = CarControllerParams

        #SUBARU STOP AND GO flags and vars
        self.prev_cruise_state = -1
        self.cruise_state_change_time = -1
        self.sng_throttle_tap_cnt = 0
        self.sng_resume_acc = False
        self.sng_has_recorded_distance = False
        self.sng_distance_threshold = CarControllerParams.SNG_DISTANCE_LIMIT

        #SUBARU STOP AND GO - Pre-Global only
        self.prev_close_distance = -1

        #SUBARU NON-EPB
        self.brake_pedal_cnt = -1
        self.prev_standstill = False
        self.standstill_transition_timestamp = -1
        self.sng_send_fake_speed = False
Пример #7
0
    def __init__(self, dbc_name, CP, VM):
        self.car_fingerprint = CP.carFingerprint
        self.packer = CANPacker(dbc_name)
        self.apply_steer_last = 0
        self.steer_rate_limited = False
        self.lkas11_cnt = 0
        self.scc12_cnt = -1

        self.resume_cnt = 0
        self.last_lead_distance = 0
        self.resume_wait_timer = 0

        self.turning_signal_timer = 0
        self.longcontrol = CP.openpilotLongitudinalControl
        self.scc_live = not CP.radarOffCan

        self.turning_indicator_alert = False

        param = Params()

        self.mad_mode_enabled = param.get_bool('MadModeEnabled')
        self.ldws_opt = param.get_bool('IsLdwsCar')
        self.stock_navi_decel_enabled = param.get_bool('StockNaviDecelEnabled')
        self.keep_steering_turn_signals = param.get_bool(
            'KeepSteeringTurnSignals')
        self.warning_over_speed_limit = param.get_bool('WarningOverSpeedLimit')

        # gas_factor, brake_factor
        # Adjust it in the range of 0.7 to 1.3
        self.scc_smoother = SccSmoother()
        self.last_blinker_frame = 0
Пример #8
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)
        self.steer_rate_limited = 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'])
Пример #9
0
  def test_civic(self):

    dbc_file = "honda_civic_touring_2016_can_generated"

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

    parser = CANParser(dbc_file, signals, checks, 0)
    packer = CANPacker(dbc_file)

    idx = 0

    for steer in range(-256, 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
Пример #10
0
    def __init__(self, dbc_name, CP, VM):
        self.last_steer = 0
        self.accel_steady = 0.
        self.alert_active = False
        self.last_standstill = False
        self.standstill_req = False

        self.last_fault_frame = -200
        self.steer_rate_limited = False

        self.fake_ecus = set()
        if CP.enableCamera: self.fake_ecus.add(Ecu.fwdCamera)
        if CP.enableDsu: self.fake_ecus.add(Ecu.dsu)

        self.packer = CANPacker(dbc_name)

        # dp
        self.dragon_enable_steering_on_signal = False
        self.dragon_lat_ctrl = True
        self.dragon_lane_departure_warning = True
        self.dragon_toyota_sng_mod = False
        self.dp_last_modified = None
        self.last_blinker_on = False
        self.blinker_end_frame = 0
        self.dragon_blinker_off_timer = 0.
Пример #11
0
    def __init__(self, dbc_name, CP, VM):
        self.last_steer = 0
        self.accel_steady = 0.
        self.alert_active = False
        self.last_standstill = False
        self.standstill_req = False
        self.standstill_hack = opParams().get('standstill_hack')

        self.steer_rate_limited = False

        self.fake_ecus = set()
        if CP.enableCamera:
            self.fake_ecus.add(Ecu.fwdCamera)
        if CP.enableDsu:
            self.fake_ecus.add(Ecu.dsu)

        self.packer = CANPacker(dbc_name)

        self.lead_v = 100
        self.lead_a = 0
        self.lead_d = 250
        self.sm = messaging.SubMaster(['radarState', 'controlsState'])
        #self.sm = messaging.SubMaster(['radarState'])

        self.LCS = ""
Пример #12
0
  def __init__(self, dbc_name, CP, VM):
    self.car_fingerprint = CP.carFingerprint
    self.packer = CANPacker(dbc_name)
    self.accel_steady = 0
    self.apply_steer_last = 0
    self.steer_rate_limited = False
    self.lkas11_cnt = 0
    self.scc12_cnt = 0

    self.resume_cnt = 0
    self.last_lead_distance = 0
    self.resume_wait_timer = 0
    self.lanechange_manual_timer = 0
    self.emergency_manual_timer = 0
    self.driver_steering_torque_above_timer = 0
    
    self.mode_change_timer = 0
    
    self.params = Params()
    self.mode_change_switch = int(self.params.get('CruiseStatemodeSelInit'))
    self.opkr_variablecruise = int(self.params.get('OpkrVariableCruise'))
    self.opkr_autoresume = int(self.params.get('OpkrAutoResume'))

    self.steer_mode = ""
    self.mdps_status = ""
    self.lkas_switch = ""

    self.timer1 = tm.CTime1000("time")
    
    self.SC = Spdctrl()
    
    self.model_speed = 0
    self.model_sum = 0

    self.dRel = 0
    self.yRel = 0
    self.vRel = 0

    self.cruise_gap = 0.0
    self.cruise_gap_prev = 0
    self.cruise_gap_set_init = 0
    self.cruise_gap_switch_timer = 0

    self.lkas_button_on = True
    self.longcontrol = CP.openpilotLongitudinalControl
    self.scc_live = not CP.radarOffCan

    if CP.lateralTuning.which() == 'pid':
      self.str_log2 = 'TUNE={:0.2f}/{:0.3f}/{:0.5f}'.format(CP.lateralTuning.pid.kpV[1], CP.lateralTuning.pid.kiV[1], CP.lateralTuning.pid.kf)
    elif CP.lateralTuning.which() == 'indi':
      self.str_log2 = 'TUNE={:03.1f}/{:03.1f}/{:03.1f}/{:03.1f}'.format(CP.lateralTuning.indi.innerLoopGain, CP.lateralTuning.indi.outerLoopGain, CP.lateralTuning.indi.timeConstant, CP.lateralTuning.indi.actuatorEffectiveness)
    elif CP.lateralTuning.which() == 'lqr':
      self.str_log2 = 'TUNE={:04.0f}/{:05.3f}/{:06.4f}'.format(CP.lateralTuning.lqr.scale, CP.lateralTuning.lqr.ki, CP.lateralTuning.lqr.dcGain)

    if CP.spasEnabled:
      self.en_cnt = 0
      self.apply_steer_ang = 0.0
      self.en_spas = 3
      self.mdps11_stat_last = 0
      self.spas_always = False
Пример #13
0
 def __init__(self, dbc_name, CP, VM):
     self.apply_steer_last = 0
     self.car_fingerprint = CP.carFingerprint
     self.cp_oplongcontrol = CP.openpilotLongitudinalControl
     self.packer = CANPacker(dbc_name)
     self.accel_steady = 0
     self.accel_lim_prev = 0.
     self.accel_lim = 0.
     self.steer_rate_limited = False
     self.p = SteerLimitParams(CP)
     self.usestockscc = True
     self.lead_visible = False
     self.lead_debounce = 0
     self.gapsettingdance = 2
     self.gapcount = 0
     self.current_veh_speed = 0
     self.lfainFingerprint = CP.lfaAvailable
     self.vdiff = 0
     self.resumebuttoncnt = 0
     self.lastresumeframe = 0
     self.fca11supcnt = self.fca11inc = self.fca11alivecnt = self.fca11cnt13 = self.scc11cnt = self.scc12cnt = 0
     self.counter_init = False
     self.fca11maxcnt = 0xD
     self.radarDisableActivated = False
     self.radarDisableResetTimer = 0
     self.radarDisableOverlapTimer = 0
     self.sendaccmode = not CP.radarDisablePossible
     self.enabled = False
     self.sm = messaging.SubMaster(['controlsState'])
     self.lanechange_manual_timer = 0
     self.emergency_manual_timer = 0
     self.driver_steering_torque_above_timer = 0
Пример #14
0
    def __init__(self, dbc_name, CP, VM):
        self.car_fingerprint = CP.carFingerprint

        self.lkas_max_torque = 0
        self.last_angle = 0

        self.packer = CANPacker(dbc_name)
Пример #15
0
    def __init__(self, dbc_name, CP, VM):
        self.apply_steer_last = 0
        self.prev_frame = -1
        self.lkas_frame = -1
        self.prev_lkas_counter = -1
        self.hud_count = 0
        self.car_fingerprint = CP.carFingerprint
        self.torq_enabled = False
        self.steer_rate_limited = False
        self.last_button_counter = -1
        self.button_frame = -1

        self.packer = CANPacker(dbc_name)

        self.params = Params()
        self.cachedParams = CachedParams()
        self.opParams = opParams()
        self.auto_resume = self.params.get_bool('jvePilot.settings.autoResume')
        self.minAccSetting = V_CRUISE_MIN_MS if self.params.get_bool(
            "IsMetric") else V_CRUISE_MIN_IMPERIAL_MS
        self.round_to_unit = CV.MS_TO_KPH if self.params.get_bool(
            "IsMetric") else CV.MS_TO_MPH
        self.autoFollowDistanceLock = None
        self.moving_fast = False
        self.min_steer_check = self.opParams.get("steer.checkMinimum")
Пример #16
0
    def __init__(self, dbc_name, CP, VM):
        self.car_fingerprint = CP.carFingerprint
        self.packer = CANPacker(dbc_name)
        self.apply_steer_last = 0
        self.accel = 0
        self.lkas11_cnt = 0
        self.scc12_cnt = -1

        self.resume_cnt = 0
        self.last_lead_distance = 0
        self.resume_wait_timer = 0

        self.turning_signal_timer = 0
        self.longcontrol = CP.openpilotLongitudinalControl
        self.scc_live = not CP.radarOffCan

        self.turning_indicator_alert = False

        param = Params()

        self.mad_mode_enabled = param.get_bool('MadModeEnabled')
        self.ldws_opt = param.get_bool('IsLdwsCar')
        self.stock_navi_decel_enabled = param.get_bool('StockNaviDecelEnabled')
        self.keep_steering_turn_signals = param.get_bool(
            'KeepSteeringTurnSignals')
        self.haptic_feedback_speed_camera = param.get_bool(
            'HapticFeedbackWhenSpeedCamera')

        self.scc_smoother = SccSmoother()
        self.last_blinker_frame = 0
        self.prev_active_cam = False
        self.active_cam_timer = 0
Пример #17
0
    def __init__(self, dbc_name, CP, VM):
        self.CP = CP
        self.apply_steer_last = 0
        self.car_fingerprint = CP.carFingerprint
        self.packer = CANPacker(dbc_name)
        self.steer_rate_limited = False

        # resume
        self.resume_cnt = 0
        self.last_resume_frame = 0
        self.last_lead_distance = 0

        self.lkas11_cnt = 0

        # hud
        self.hud_timer_left = 0
        self.hud_timer_right = 0

        self.enable_time = 0
        self.steer_torque_over_timer = 0
        self.steer_torque_ratio = 1

        self.timer1 = tm.CTime1000("time")

        self.SC = SpdctrlSlow()
        self.model_speed = 0
        self.model_sum = 0
Пример #18
0
    def __init__(self, dbc_name, CP, VM):
        self.apply_steer_last = 0
        self.car_fingerprint = CP.carFingerprint
        self.cp_oplongcontrol = CP.openpilotLongitudinalControl
        self.packer = CANPacker(dbc_name)
        self.accel_steady = 0
        self.steer_rate_limited = False
        self.usestockscc = True
        self.lead_visible = False
        self.lead_debounce = 0
        self.apply_accel_last = 0
        self.gapsettingdance = 2
        self.gapcount = 0
        self.current_veh_speed = 0
        self.lfainFingerprint = CP.lfaAvailable
        self.vdiff = 0
        self.resumebuttoncnt = 0
        self.lastresumeframe = 0
        self.scc12cnt = 0

        self.smartspeed = 20.
        self.recordsetspeed = 20.
        self.setspeed = 0.
        self.button_cnt = 0
        self.last_button_frame = 0

        self.stopcontrolupdate = False
        self.last_button_frame = 0
        self.button_set_stop = self.button_res_stop = 0
        self.sm = messaging.SubMaster(['radarState'])
Пример #19
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.steer_rate_limited = False

        self.fake_ecus = set()
        if enable_camera: self.fake_ecus.add(Ecu.fwdCamera)
        if enable_dsu: self.fake_ecus.add(Ecu.dsu)
        if enable_apg: self.fake_ecus.add(Ecu.apgs)

        self.packer = CANPacker(dbc_name)
Пример #20
0
    def test_parser_can_valid(self):
        signals = [
            ("COUNTER", "CAN_FD_MESSAGE"),
        ]
        checks = [
            ("CAN_FD_MESSAGE", 10),
        ]
        packer = CANPacker(TEST_DBC)
        parser = CANParser(TEST_DBC, signals, checks, 0)

        # shouldn't be valid initially
        self.assertFalse(parser.can_valid)

        # not valid until the message is seen
        for _ in range(100):
            dat = can_list_to_can_capnp([])
            parser.update_string(dat)
            self.assertFalse(parser.can_valid)

        # valid once seen
        for i in range(1, 100):
            t = int(0.01 * i * 1e9)
            msg = packer.make_can_msg("CAN_FD_MESSAGE", 0, {})
            dat = can_list_to_can_capnp([
                msg,
            ], logMonoTime=t)
            parser.update_string(dat)
            self.assertTrue(parser.can_valid)
Пример #21
0
    def __init__(self, dbc_name, CP, VM):
        self.car_fingerprint = CP.carFingerprint
        self.packer = CANPacker(dbc_name)
        self.accel_steady = 0
        self.apply_steer_last = 0
        self.steer_rate_limited = False
        self.lkas11_cnt = 0
        self.scc12_cnt = -1

        self.resume_cnt = 0
        self.last_lead_distance = 0
        self.resume_wait_timer = 0

        self.turning_signal_timer = 0
        self.longcontrol = CP.openpilotLongitudinalControl
        self.scc_live = not CP.radarOffCan

        self.mad_mode_enabled = Params().get_bool('MadModeEnabled')
        self.ldws_opt = Params().get_bool('IsLdwsCar')
        self.stock_navi_decel_enabled = Params().get_bool(
            'StockNaviDecelEnabled')

        # gas_factor, brake_factor
        # Adjust it in the range of 0.7 to 1.3
        self.scc_smoother = SccSmoother()
Пример #22
0
  def __init__(self, dbc_name, CP, VM):
    self.car_fingerprint = CP.carFingerprint
    self.packer = CANPacker(dbc_name)
    self.accel_steady = 0
    self.apply_steer_last = 0
    self.steer_rate_limited = False
    self.lkas11_cnt = 0
    self.scc12_cnt = 0

    self.resume_cnt = 0
    self.last_lead_distance = 0
    self.resume_wait_timer = 0

    self.turning_signal_timer = 0
    self.longcontrol = CP.openpilotLongitudinalControl
    self.scc_live = not CP.radarOffCan

    if CP.spasEnabled:
      self.en_cnt = 0
      self.apply_steer_ang = 0.0
      self.en_spas = 3
      self.mdps11_stat_last = 0
      self.spas_always = False

    self.scc_smoother = SccSmoother(accel_gain=1.0, decel_gain=1.0, curvature_gain=0.8)
Пример #23
0
  def test_honda_checksum(self):
    """Test checksums for Honda standard and extended CAN ids"""
    dbc_file = "honda_accord_2018_can_generated"

    signals = [
      ("CHECKSUM", "LKAS_HUD"),
      ("CHECKSUM", "LKAS_HUD_A"),
    ]
    checks = [("LKAS_HUD", 0), ("LKAS_HUD_A", 0)]

    parser = CANParser(dbc_file, signals, checks, 0)
    packer = CANPacker(dbc_file)

    values = {
      'SET_ME_X41': 0x41,
      'STEERING_REQUIRED': 1,
      'SOLID_LANES': 1,
      'BEEP': 0,
    }

    # known correct checksums according to the above values
    checksum_std = [11, 10, 9, 8]
    checksum_ext = [4, 3, 2, 1]

    for std, ext in zip(checksum_std, checksum_ext):
      msgs = [
        packer.make_can_msg("LKAS_HUD", 0, values),
        packer.make_can_msg("LKAS_HUD_A", 0, values),
      ]
      can_strings = [can_list_to_can_capnp(msgs), ]
      parser.update_strings(can_strings)

      self.assertEqual(parser.vl['LKAS_HUD']['CHECKSUM'], std)
      self.assertEqual(parser.vl['LKAS_HUD_A']['CHECKSUM'], ext)
Пример #24
0
 def __init__(self, dbc_name, CP, VM):
   self.CP = CP
   self.apply_steer_last = 0
   self.packer = CANPacker(dbc_name)
   self.steer_rate_limited = False
   self.brake_counter = 0
   self.frame = 0
Пример #25
0
  def __init__(self, dbc_name, CP, VW):
    
    # state
    self.acc_enabled_prev = 0

    # steering related
    self.angle_request_prev = 0
    
    # Direction change statemachine
    self.UNBLOCKED = 0
    self.BLOCKED = 1
    self.BLOCK_LEN = CCP.BLOCK_LEN  # Block steer direction change for x samples

    self.dir_state = 0
    self.block_steering = 0
    self.steer_direction_bf_block = 0
    self.des_steer_direction_prev = 0

    # SteerCommand
    self.SteerCommand = SteerCommand
    self.trq_fifo = deque([])  
    self.fault_frame = -200

    # Diag
    self.doDTCRequests = True  # Turn on and off DTC requests
    self.checkPN = False       # Check partnumbers
    self.clearDtcs = False     # Set false to stop sending diagnostic requests 
    self.timeout = 0           # Set to 0 as init
    self.diagRequest = { 
      "byte0": 0x03,
      "byte1": 0x19,
      "byte2": 0x02,
      "byte3": 0x02,
      }
    self.flowControl = { 
      "byte0": 0x30,
      "byte1": 0x00,
      "byte2": 0x00,
      "byte3": 0x00,
      }
    self.clearDTC = {
      "byte0": 0x04,
      "byte1": 0x14,
      "byte2": 0xFF,
      "byte3": 0xFF,
      "byte4": 0xFF,
      }

    # Part number
    self.cnt = 0          # Init at 0 always
    self.sndNxtFrame = 0  # Init at low value 
    self.dictKeys = ["byte"+str(x) for x in range(8)]
    startdid = 0xf1a1     # Start with this DID (Data IDentifier, read UDS Spec for more info)
    self.dids = [x for x in range(startdid, startdid+9)]

    # Setup detection helper. Routes commands to
    # an appropriate CAN bus number.
    self.CP = CP
    self.packer = CANPacker(DBC[CP.carFingerprint]['pt'])
Пример #26
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
Пример #27
0
  def __init__(self, dbc_name, CP, VM):
    self.last_steer = 0
    self.alert_active = False
    self.last_standstill = False
    self.standstill_req = False
    self.steer_rate_limited = False

    self.packer = CANPacker(dbc_name)
Пример #28
0
 def __init__(self, dbc_name, CP, VM):
   self.apply_steer_last = 0
   self.car_fingerprint = CP.carFingerprint
   self.lkas11_cnt = 0
   self.cnt = 0
   self.last_resume_cnt = 0
   self.packer = CANPacker(dbc_name)
   self.steer_rate_limited = False
Пример #29
0
 def __init__(self, dbc_name, CP, VM):
     self.packer = CANPacker(dbc_name)
     self.enabled_last = False
     self.main_on_last = False
     self.vehicle_model = VM
     self.generic_toggle_last = 0
     self.steer_alert_last = False
     self.lkas_action = 0
Пример #30
0
    def __init__(self, dbc_name, CP, VM):
        self.p = CarControllerParams(CP)
        self.packer = CANPacker(dbc_name)

        self.apply_steer_last = 0
        self.car_fingerprint = CP.carFingerprint
        self.steer_rate_limited = False
        self.last_resume_frame = 0