コード例 #1
0
ファイル: carstate.py プロジェクト: DS1SQM/openpilot_084
  def get_can_parser(CP):
    signals = [
      # sig_name, sig_address, default
      ("WHL_SPD_FL", "WHL_SPD11", 0),
      ("WHL_SPD_FR", "WHL_SPD11", 0),
      ("WHL_SPD_RL", "WHL_SPD11", 0),
      ("WHL_SPD_RR", "WHL_SPD11", 0),

      ("YAW_RATE", "ESP12", 0),

      ("CF_Gway_DrvSeatBeltInd", "CGW4", 1),

      ("CF_Gway_DrvSeatBeltSw", "CGW1", 0),
      ("CF_Gway_DrvDrSw", "CGW1", 0),       # Driver Door
      ("CF_Gway_AstDrSw", "CGW1", 0),       # Passenger door
      ("CF_Gway_RLDrSw", "CGW2", 0),        # Rear reft door
      ("CF_Gway_RRDrSw", "CGW2", 0),        # Rear right door
      ("CF_Gway_TSigLHSw", "CGW1", 0),
      ("CF_Gway_TurnSigLh", "CGW1", 0),
      ("CF_Gway_TSigRHSw", "CGW1", 0),
      ("CF_Gway_TurnSigRh", "CGW1", 0),
      ("CF_Gway_ParkBrakeSw", "CGW1", 0),

      ("CYL_PRES", "ESP12", 0),

      ("AVH_STAT", "ESP11", 0),

      ("CF_Clu_CruiseSwState", "CLU11", 0),
      ("CF_Clu_CruiseSwMain", "CLU11", 0),
      ("CF_Clu_SldMainSW", "CLU11", 0),
      ("CF_Clu_ParityBit1", "CLU11", 0),
      ("CF_Clu_VanzDecimal" , "CLU11", 0),
      ("CF_Clu_Vanz", "CLU11", 0),
      ("CF_Clu_SPEED_UNIT", "CLU11", 0),
      ("CF_Clu_DetentOut", "CLU11", 0),
      ("CF_Clu_RheostatLevel", "CLU11", 0),
      ("CF_Clu_CluInfo", "CLU11", 0),
      ("CF_Clu_AmpInfo", "CLU11", 0),
      ("CF_Clu_AliveCnt1", "CLU11", 0),

      ("ACCEnable", "TCS13", 0),
      ("BrakeLight", "TCS13", 0),
      ("DriverBraking", "TCS13", 0),
      ("DriverOverride", "TCS13",0),
      ("PBRAKE_ACT", "TCS13", 0),
      ("CF_VSM_Avail", "TCS13", 0),

      ("ESC_Off_Step", "TCS15", 0),
      ("AVH_LAMP", "TCS15", 0),

      ("CF_Lvr_CruiseSet", "LVR12", 0),
      ("CRUISE_LAMP_M", "EMS16", 0),
      ("CR_FCA_Alive", "FCA11", 0),
      ("Supplemental_Counter", "FCA11", 0),

      ("MainMode_ACC", "SCC11", 1),
      ("SCCInfoDisplay", "SCC11", 0),
      ("AliveCounterACC", "SCC11", 0),
      ("VSetDis", "SCC11", 30),
      ("ObjValid", "SCC11", 0),
      ("DriverAlertDisplay", "SCC11", 0),
      ("TauGapSet", "SCC11", 4),
      ("ACC_ObjStatus", "SCC11", 0),
      ("ACC_ObjLatPos", "SCC11", 0),
      ("ACC_ObjDist", "SCC11", 150), #TK211X value is 204.6
      ("ACC_ObjRelSpd", "SCC11", 0),
      ("Navi_SCC_Curve_Status", "SCC11", 0),
      ("Navi_SCC_Curve_Act", "SCC11", 0),
      ("Navi_SCC_Camera_Act", "SCC11", 0),
      ("Navi_SCC_Camera_Status", "SCC11", 2),

      ("ACCMode", "SCC12", 0),
      ("CF_VSM_Prefill", "SCC12", 0),
      ("CF_VSM_DecCmdAct", "SCC12", 0),
      ("CF_VSM_HBACmd", "SCC12", 0),
      ("CF_VSM_Warn", "SCC12", 0),
      ("CF_VSM_Stat", "SCC12", 0),
      ("CF_VSM_BeltCmd", "SCC12", 0),
      ("ACCFailInfo", "SCC12", 0),
      ("StopReq", "SCC12", 0),
      ("CR_VSM_DecCmd", "SCC12", 0),
      ("aReqRaw", "SCC12", 0), #aReqMax
      ("TakeOverReq", "SCC12", 0),
      ("PreFill", "SCC12", 0),
      ("aReqValue", "SCC12", 0), #aReqMin
      ("CF_VSM_ConfMode", "SCC12", 1),
      ("AEB_Failinfo", "SCC12", 0),
      ("AEB_Status", "SCC12", 2),
      ("AEB_CmdAct", "SCC12", 0),
      ("AEB_StopReq", "SCC12", 0),
      ("CR_VSM_Alive", "SCC12", 0),
      ("CR_VSM_ChkSum", "SCC12", 0),

      ("SCCDrvModeRValue", "SCC13", 2),
      ("SCC_Equip", "SCC13", 1),
      ("AebDrvSetStatus", "SCC13", 0),

      ("JerkUpperLimit", "SCC14", 0),
      ("JerkLowerLimit", "SCC14", 0),
      ("SCCMode2", "SCC14", 0),
      ("ComfortBandUpper", "SCC14", 0),
      ("ComfortBandLower", "SCC14", 0),

      ("UNIT", "TPMS11", 0),
      ("PRESSURE_FL", "TPMS11", 0),
      ("PRESSURE_FR", "TPMS11", 0),
      ("PRESSURE_RL", "TPMS11", 0),
      ("PRESSURE_RR", "TPMS11", 0),
    ]

    checks = [
      # address, frequency
      ("TCS13", 50),
      ("TCS15", 10),
      ("CLU11", 50),
      ("ESP12", 100),
      ("CGW1", 10),
      ("CGW2", 5),
      ("CGW4", 5),
      ("WHL_SPD11", 50),
    ]
    if CP.sccBus == 0 and CP.enableCruise:
      checks += [
        ("SCC11", 50),
        ("SCC12", 50),
      ]
    if CP.fcaBus == 0:
      signals += [
        ("FCA_CmdAct", "FCA11", 0),
        ("CF_VSM_Warn", "FCA11", 0),
      ]
      checks += [("FCA11", 50)]

    if CP.mdpsBus == 0:
      signals += [
        ("CR_Mdps_StrColTq", "MDPS12", 0),
        ("CF_Mdps_Def", "MDPS12", 0),
        ("CF_Mdps_ToiActive", "MDPS12", 0),
        ("CF_Mdps_ToiUnavail", "MDPS12", 0),
        ("CF_Mdps_ToiFlt", "MDPS12", 0),
        ("CF_Mdps_MsgCount2", "MDPS12", 0),
        ("CF_Mdps_Chksum2", "MDPS12", 0),
        ("CF_Mdps_SErr", "MDPS12", 0),
        ("CR_Mdps_StrTq", "MDPS12", 0),
        ("CF_Mdps_FailStat", "MDPS12", 0),
        ("CR_Mdps_OutTq", "MDPS12", 0)
      ]
      checks += [
        ("MDPS12", 50)
      ]
    if CP.sasBus == 0:
      signals += [
        ("SAS_Angle", "SAS11", 0),
        ("SAS_Speed", "SAS11", 0),
      ]
      checks += [
        ("SAS11", 100)
      ]

    if CP.bsmAvailable or CP.enableBsm:
      signals += [
      	("CF_Lca_Stat", "LCA11", 0),
        ("CF_Lca_IndLeft", "LCA11", 0),
        ("CF_Lca_IndRight", "LCA11", 0),
      ]
      checks += [("LCA11", 50)]

    if CP.carFingerprint in ELEC_VEH:
      signals += [
        ("Accel_Pedal_Pos", "E_EMS11", 0),
      ]
      checks += [
        ("E_EMS11", 50),
      ]
    elif CP.carFingerprint in HYBRID_VEH:
      signals += [
        ("CR_Vcu_AccPedDep_Pc", "EV_PC4", 0),
      ]
      checks += [
        ("EV_PC4", 50),
      ]
    elif CP.emsAvailable:
      signals += [
        ("PV_AV_CAN", "EMS12", 0),
        ("CF_Ems_AclAct", "EMS16", 0),
      ]
      checks += [
        ("EMS12", 100),
        ("EMS16", 100),
      ]

    if CP.carFingerprint in FEATURES["use_cluster_gears"]:
      signals += [
        ("CF_Clu_InhibitD", "CLU15", 0),
        ("CF_Clu_InhibitP", "CLU15", 0),
        ("CF_Clu_InhibitN", "CLU15", 0),
        ("CF_Clu_InhibitR", "CLU15", 0),
      ]
      checks += [("CLU15", 5)]
    elif CP.carFingerprint in FEATURES["use_tcu_gears"]:
      signals += [
        ("CUR_GR", "TCU12", 0)
      ]
      checks += [("TCU12", 100)]
    elif CP.evgearAvailable:
      signals += [("Elect_Gear_Shifter", "ELECT_GEAR", 0)]
      checks += [("ELECT_GEAR", 20)]
    elif CP.lvrAvailable:
      signals += [("CF_Lvr_Gear", "LVR12", 0)]
      checks += [("LVR12", 100)]

    if CP.carFingerprint in [CAR.SANTA_FE]:
      checks.remove(("TCS13", 50))

    return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, 0, enforce_checks=False)
コード例 #2
0
ファイル: carstate.py プロジェクト: Kiaoptima/openpilot
    def get_can_parser(CP):

        signals = [
            # sig_name, sig_address, default
            ("WHL_SPD_FL", "WHL_SPD11", 0),
            ("WHL_SPD_FR", "WHL_SPD11", 0),
            ("WHL_SPD_RL", "WHL_SPD11", 0),
            ("WHL_SPD_RR", "WHL_SPD11", 0),
            ("YAW_RATE", "ESP12", 0),
            ("CF_Gway_DrvSeatBeltInd", "CGW4", 1),
            ("CF_Gway_DrvSeatBeltSw", "CGW1", 0),
            ("CF_Gway_DrvDrSw", "CGW1", 0),  # Driver Door
            ("CF_Gway_AstDrSw", "CGW1", 0),  # Passenger door
            ("CF_Gway_RLDrSw", "CGW2", 0),  # Rear reft door
            ("CF_Gway_RRDrSw", "CGW2", 0),  # Rear right door
            ("CF_Gway_TurnSigLh", "CGW1", 0),
            ("CF_Gway_TurnSigRh", "CGW1", 0),
            ("CF_Gway_ParkBrakeSw", "CGW1", 0),  # Parking Brake
            ("CYL_PRES", "ESP12", 0),
            ("CF_Clu_CruiseSwState", "CLU11", 0),
            ("CF_Clu_CruiseSwMain", "CLU11", 0),
            ("CF_Clu_SldMainSW", "CLU11", 0),
            ("CF_Clu_ParityBit1", "CLU11", 0),
            ("CF_Clu_VanzDecimal", "CLU11", 0),
            ("CF_Clu_Vanz", "CLU11", 0),
            ("CF_Clu_SPEED_UNIT", "CLU11", 0),
            ("CF_Clu_DetentOut", "CLU11", 0),
            ("CF_Clu_RheostatLevel", "CLU11", 0),
            ("CF_Clu_CluInfo", "CLU11", 0),
            ("CF_Clu_AmpInfo", "CLU11", 0),
            ("CF_Clu_AliveCnt1", "CLU11", 0),
            ("ACCEnable", "TCS13", 0),
            ("ACC_REQ", "TCS13", 0),
            ("BrakeLight", "TCS13", 0),
            ("DriverBraking", "TCS13", 0),
            ("CF_VSM_Avail", "TCS13", 0),
            ("StandStill", "TCS13", 0),
            ("PBRAKE_ACT", "TCS13", 0),
            ("ESC_Off_Step", "TCS15", 0),
            ("AVH_LAMP", "TCS15", 0),
            ("CF_Lvr_GearInf", "LVR11",
             0),  # Transmission Gear (0 = N or P, 1-8 = Fwd, 14 = Rev)
            ("CF_Lca_Stat", "LCA11", 0),
            ("CF_Lca_IndLeft", "LCA11", 0),
            ("CF_Lca_IndRight", "LCA11", 0),
            ("MainMode_ACC", "SCC11", 1),
            ("SCCInfoDisplay", "SCC11", 0),
            ("AliveCounterACC", "SCC11", 0),
            ("VSetDis", "SCC11", 30),
            ("ObjValid", "SCC11", 0),
            ("DriverAlertDisplay", "SCC11", 0),
            ("TauGapSet", "SCC11", 4),
            ("ACC_ObjStatus", "SCC11", 0),
            ("ACC_ObjLatPos", "SCC11", 0),
            ("ACC_ObjDist", "SCC11", 150),  #TK211X value is 204.6
            ("ACC_ObjRelSpd", "SCC11", 0),
            ("Navi_SCC_Curve_Status", "SCC11", 0),
            ("Navi_SCC_Curve_Act", "SCC11", 0),
            ("Navi_SCC_Camera_Act", "SCC11", 0),
            ("Navi_SCC_Camera_Status", "SCC11", 2),
            ("ACCMode", "SCC12", 0),
            ("CF_VSM_Prefill", "SCC12", 0),
            ("CF_VSM_DecCmdAct", "SCC12", 0),
            ("CF_VSM_HBACmd", "SCC12", 0),
            ("CF_VSM_Warn", "SCC12", 0),
            ("CF_VSM_Stat", "SCC12", 0),
            ("CF_VSM_BeltCmd", "SCC12", 0),
            ("ACCFailInfo", "SCC12", 0),
            ("StopReq", "SCC12", 0),
            ("CR_VSM_DecCmd", "SCC12", 0),
            ("aReqRaw", "SCC12", 0),  #aReqMax
            ("TakeOverReq", "SCC12", 0),
            ("PreFill", "SCC12", 0),
            ("aReqValue", "SCC12", 0),  #aReqMin
            ("CF_VSM_ConfMode", "SCC12", 1),
            ("AEB_Failinfo", "SCC12", 0),
            ("AEB_Status", "SCC12", 2),
            ("AEB_CmdAct", "SCC12", 0),
            ("AEB_StopReq", "SCC12", 0),
            ("CR_VSM_Alive", "SCC12", 0),
            ("CR_VSM_ChkSum", "SCC12", 0),
            ("SCCDrvModeRValue", "SCC13", 2),
            ("SCC_Equip", "SCC13", 1),
            ("AebDrvSetStatus", "SCC13", 0),
            ("JerkUpperLimit", "SCC14", 0),
            ("JerkLowerLimit", "SCC14", 0),
            ("SCCMode2", "SCC14", 0),
            ("ComfortBandUpper", "SCC14", 0),
            ("ComfortBandLower", "SCC14", 0),
            ("UNIT", "TPMS11", 0),
            ("PRESSURE_FL", "TPMS11", 0),
            ("PRESSURE_FR", "TPMS11", 0),
            ("PRESSURE_RL", "TPMS11", 0),
            ("PRESSURE_RR", "TPMS11", 0),
        ]

        checks = [
            # address, frequency
            ("TCS13", 50),
            ("TCS15", 10),
            ("CLU11", 50),
            ("ESP12", 100),
            ("CGW1", 10),
            ("CGW4", 5),
            ("WHL_SPD11", 50),
        ]
        if CP.sccBus == 0 and CP.enableCruise:
            checks += [
                ("SCC11", 50),
                ("SCC12", 50),
            ]
        if CP.mdpsBus == 0:
            signals += [("CR_Mdps_StrColTq", "MDPS12", 0),
                        ("CF_Mdps_Def", "MDPS12", 0),
                        ("CF_Mdps_ToiActive", "MDPS12", 0),
                        ("CF_Mdps_ToiUnavail", "MDPS12", 0),
                        ("CF_Mdps_MsgCount2", "MDPS12", 0),
                        ("CF_Mdps_Chksum2", "MDPS12", 0),
                        ("CF_Mdps_ToiFlt", "MDPS12", 0),
                        ("CF_Mdps_SErr", "MDPS12", 0),
                        ("CR_Mdps_StrTq", "MDPS12", 0),
                        ("CF_Mdps_FailStat", "MDPS12", 0),
                        ("CR_Mdps_OutTq", "MDPS12", 0)]
            checks += [("MDPS12", 50)]
        if CP.sasBus == 0:
            signals += [
                ("SAS_Angle", "SAS11", 0),
                ("SAS_Speed", "SAS11", 0),
            ]
            checks += [("SAS11", 100)]
        if CP.sccBus == -1:
            signals += [
                ("CRUISE_LAMP_M", "EMS16", 0),
                ("CF_Lvr_CruiseSet", "LVR12", 0),
            ]
        if CP.carFingerprint in FEATURES["use_cluster_gears"]:
            signals += [
                ("CF_Clu_InhibitD", "CLU15", 0),
                ("CF_Clu_InhibitP", "CLU15", 0),
                ("CF_Clu_InhibitN", "CLU15", 0),
                ("CF_Clu_InhibitR", "CLU15", 0),
            ]
        elif CP.carFingerprint in FEATURES["use_tcu_gears"]:
            signals += [
                ("CUR_GR", "TCU12", 0),
            ]
        elif CP.carFingerprint in FEATURES["use_elect_ems_gears"]:
            signals += [
                ("Elect_Gear_Shifter", "ELECT_GEAR", 0),
            ]
        else:
            signals += [
                ("CF_Lvr_Gear", "LVR12", 0),
            ]
        if CP.carFingerprint not in FEATURES["use_elect_ems_gears"]:
            signals += [
                ("PV_AV_CAN", "EMS12", 0),
                ("CF_Ems_AclAct", "EMS16", 0),
            ]
            checks += [
                ("EMS12", 100),
                ("EMS16", 100),
            ]
        else:
            signals += [
                ("Accel_Pedal_Pos", "E_EMS11", 0),
                ("Brake_Pedal_Pos", "E_EMS11", 0),
            ]
            checks += [
                ("E_EMS11", 100),
            ]

        if CP.carFingerprint in FEATURES["use_fca"]:
            signals += [
                ("FCA_CmdAct", "FCA11", 0),
                ("CF_VSM_Warn", "FCA11", 0),
            ]
            if not CP.openpilotLongitudinalControl:
                checks += [("FCA11", 50)]

        if CP.carFingerprint in FEATURES["tcs_remove"]:
            checks.remove(("TCS13", 50))
        if CP.spasEnabled:
            if CP.mdpsBus == 1:
                signals += [
                    ("SWI_IGK", "EMS11", 0),
                    ("F_N_ENG", "EMS11", 0),
                    ("ACK_TCS", "EMS11", 0),
                    ("PUC_STAT", "EMS11", 0),
                    ("TQ_COR_STAT", "EMS11", 0),
                    ("RLY_AC", "EMS11", 0),
                    ("F_SUB_TQI", "EMS11", 0),
                    ("TQI_ACOR", "EMS11", 0),
                    ("N", "EMS11", 0),
                    ("TQI", "EMS11", 0),
                    ("TQFR", "EMS11", 0),
                    ("VS", "EMS11", 0),
                    ("RATIO_TQI_BAS_MAX_STND", "EMS11", 0),
                ]
                checks += [("EMS11", 100)]
            elif CP.mdpsBus == 0:
                signals += [
                    ("CR_Mdps_StrAng", "MDPS11", 0),
                    ("CF_Mdps_Stat", "MDPS11", 0),
                ]
                checks += [("MDPS11", 100)]

        return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, 0)
コード例 #3
0
    def get_can_parser(CP):
        signals = [
            # sig_name, sig_address, default
            ("COUNTER", "THROTTLE"),
            ("STEER_RATE00", "EPS_00"),
            ("STEER_ANGLE01", "EPS_01"),
            ("STEER_SPEED01", "EPS_01"),
            ("STEER_TORQUE_DRIVER02", "EPS_02"),
            ("STEER_TORQUE_MOTOR02", "EPS_02"),
            ("STEER_TORQUE_DRIVER03", "EPS_03"),
            ("STEER_TQ", "EPS_04"),
            ("GEAR_SHIFT", "GEAR_PRND"),
            ("CRUISE_ON", "CRUISE_CONTROL"),
            ("DRIVER_BRAKE", "CRUISE_CONTROL"),
            ("SPEED_CRUISE_RESUME", "CRUISE_CONTROL"),
            ("ACCELATOR_DRIVER", "ACCELATOR_DRIVER"),
            ("SEAT_BELT_DRIVER", "SEAT_BELT"),
            ("RIGHT_TURN", "TURN_SIGNAL"),
            ("LEFT_TURN", "TURN_SIGNAL"),
            ("LEFT_BLINK", "TURN_SIGNAL"),
            ("RIGHT_BLINK", "TURN_SIGNAL"),
            ("SPEED01", "SPEED_01"),
            ("SPEED02", "SPEED_02"),
            #("LEFT_ALERT_1", "LEFT_ALERT", 0),
            #("RIGHT_ALERT_1", "RIGHT_ALERT", 0),
            #( "COUNTER", "LKAS_RUN"),
            ("WHEEL_SPEED_FR", "SPEED_04"),
            ("WHEEL_SPEED_FL", "SPEED_04"),
            ("WHEEL_SPEED_RR", "SPEED_03"),
            ("WHEEL_SPEED_RL", "SPEED_03"),
            ("GREEN2WHITE_RIGHT", "LKAS_STATUS"),
            ("GREEN2WHITE_LEFT", "LKAS_STATUS"),
            ("FRONT_CAR_DISTANCE", "LKAS_HUD_STAT"),
            ("LADAR_DISTANCE", "LKAS_HUD_STAT"),
            ("HIBEAM", "HEAD_LIGHT"),
        ]

        # It's considered invalid if it is not received for 10x the expected period (1/f).
        checks = [
            # sig_address, frequency
            ("EPS_00", 100),
            ("EPS_01", 100),
            ("EPS_02", 100),
            ("EPS_03", 100),
            ("EPS_04", 100),
            ("SPEED_01", 100),
            ("SPEED_02", 100),
            ("SPEED_03", 100),
            ("SPEED_04", 100),
            ("CRUISE_CONTROL", 100),
            ("SEAT_BELT", 100),
            ("LKAS_HUD_STAT", 10),
            ("HEAD_LIGHT", 100),
            ("LKAS_STATUS", 100),
            ("GEAR_PRND", 100),
            ("TURN_SIGNAL", 10),
            ("SEAT_BELT", 10),
            ("ACCELATOR_DRIVER", 10),
            ("THROTTLE", 0),
        ]

        return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 0)
コード例 #4
0
    def get_can_parser(CP):
        signals = [
            # sig_name, sig_address, default
            ("WHL_SPD_FL", "WHL_SPD11", 0),
            ("WHL_SPD_FR", "WHL_SPD11", 0),
            ("WHL_SPD_RL", "WHL_SPD11", 0),
            ("WHL_SPD_RR", "WHL_SPD11", 0),
            ("YAW_RATE", "ESP12", 0),
            ("CF_Gway_DrvSeatBeltInd", "CGW4", 1),
            ("CF_Gway_DrvSeatBeltSw", "CGW1", 0),
            ("CF_Gway_DrvDrSw", "CGW1", 0),  # Driver Door
            ("CF_Gway_AstDrSw", "CGW1", 0),  # Passenger door
            ("CF_Gway_RLDrSw", "CGW2", 0),  # Rear reft door
            ("CF_Gway_RRDrSw", "CGW2", 0),  # Rear right door
            ("CF_Gway_TSigLHSw", "CGW1", 0),
            ("CF_Gway_TurnSigLh", "CGW1", 0),
            ("CF_Gway_TSigRHSw", "CGW1", 0),
            ("CF_Gway_TurnSigRh", "CGW1", 0),
            ("CF_Gway_ParkBrakeSw", "CGW1", 0),
            ("CYL_PRES", "ESP12", 0),
            ("CF_Clu_CruiseSwState", "CLU11", 0),
            ("CF_Clu_CruiseSwMain", "CLU11", 0),
            ("CF_Clu_SldMainSW", "CLU11", 0),
            ("CF_Clu_ParityBit1", "CLU11", 0),
            ("CF_Clu_VanzDecimal", "CLU11", 0),
            ("CF_Clu_Vanz", "CLU11", 0),
            ("CF_Clu_SPEED_UNIT", "CLU11", 0),
            ("CF_Clu_DetentOut", "CLU11", 0),
            ("CF_Clu_RheostatLevel", "CLU11", 0),
            ("CF_Clu_CluInfo", "CLU11", 0),
            ("CF_Clu_AmpInfo", "CLU11", 0),
            ("CF_Clu_AliveCnt1", "CLU11", 0),
            ("ACCEnable", "TCS13", 0),
            ("BrakeLight", "TCS13", 0),
            ("DriverBraking", "TCS13", 0),
            ("DriverOverride", "TCS13", 0),
            ("ESC_Off_Step", "TCS15", 0),
            ("CF_Lvr_GearInf", "LVR11",
             0),  # Transmission Gear (0 = N or P, 1-8 = Fwd, 14 = Rev)
            ("MainMode_ACC", "SCC11", 0),
            ("VSetDis", "SCC11", 0),
            ("SCCInfoDisplay", "SCC11", 0),
            ("ACC_ObjDist", "SCC11", 0),
            ("ACC_ObjRelSpd", "SCC11", 0),
            ("ACCMode", "SCC12", 1),

            #("LFA_USM", "LFAHDA_MFC", 0),
            #("LFA_SysWarning", "LFAHDA_MFC", 0),
            #("ACTIVE2", "LFAHDA_MFC", 0),
            #("HDA_USM", "LFAHDA_MFC", 0),
            #("ACTIVE", "LFAHDA_MFC", 0),
        ]

        checks = [
            # address, frequency
            ("TCS13", 50),  # 916
            ("TCS15", 10),
            ("CLU11", 50),
            ("ESP12", 100),
            ("CGW1", 10),
            ("CGW4", 5),
            ("WHL_SPD11", 50),  # 902
            ("SCC11", 50),
            ("SCC12", 50),
        ]
        if not CP.mdpsBus:
            signals += [("CR_Mdps_StrColTq", "MDPS12", 0),
                        ("CF_Mdps_Def", "MDPS12", 0),
                        ("CF_Mdps_ToiActive", "MDPS12", 0),
                        ("CF_Mdps_ToiUnavail", "MDPS12", 0),
                        ("CF_Mdps_MsgCount2", "MDPS12", 0),
                        ("CF_Mdps_Chksum2", "MDPS12", 0),
                        ("CF_Mdps_ToiFlt", "MDPS12", 0),
                        ("CF_Mdps_SErr", "MDPS12", 0),
                        ("CR_Mdps_StrTq", "MDPS12", 0),
                        ("CF_Mdps_FailStat", "MDPS12", 0),
                        ("CR_Mdps_OutTq", "MDPS12", 0)]
            checks += [("MDPS12", 50)]
        if not CP.sasBus:
            signals += [
                ("SAS_Angle", "SAS11", 0),
                ("SAS_Speed", "SAS11", 0),
            ]
            checks += [("SAS11", 100)]
        if CP.sccBus == -1:
            signals += [
                ("CRUISE_LAMP_M", "EMS16", 0),
                ("CF_Lvr_CruiseSet", "LVR12", 0),
            ]

        signals, checks = CarState.get_parser_ev_hybrid(CP, signals, checks)
        signals, checks = CarState.get_parser_gears(CP, signals, checks)

        if CP.carFingerprint in FEATURES["use_bsm"]:
            signals += [
                ("CF_Lca_IndLeft", "LCA11", 0),
                ("CF_Lca_IndRight", "LCA11", 0),
            ]
            checks += [("LCA11", 50)]

        if CP.carFingerprint in FEATURES["use_fca"]:
            signals += [
                ("FCA_CmdAct", "FCA11", 0),
                ("CF_VSM_Warn", "FCA11", 0),
            ]
            checks += [("FCA11", 50)]
        else:
            signals += [
                ("AEB_CmdAct", "SCC12", 0),
                ("CF_VSM_Warn", "SCC12", 0),
            ]

        return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, 0)
コード例 #5
0
ファイル: carstate.py プロジェクト: UDLab/openpilot
    def get_cam_can_parser(CP):
        if CP.carFingerprint in PREGLOBAL_CARS:
            signals = [
                ("Cruise_Set_Speed", "ES_DashStatus", 0),
                ("Not_Ready_Startup", "ES_DashStatus", 0),
                ("Throttle_Cruise", "ES_CruiseThrottle", 0),
                ("Signal1", "ES_CruiseThrottle", 0),
                ("Cruise_Activated", "ES_CruiseThrottle", 0),
                ("Signal2", "ES_CruiseThrottle", 0),
                ("Brake_On", "ES_CruiseThrottle", 0),
                ("Distance_Swap", "ES_CruiseThrottle", 0),
                ("Standstill", "ES_CruiseThrottle", 0),
                ("Signal3", "ES_CruiseThrottle", 0),
                ("Close_Distance", "ES_CruiseThrottle", 0),
                ("Signal4", "ES_CruiseThrottle", 0),
                ("Standstill_2", "ES_CruiseThrottle", 0),
                ("Cruise_Fault", "ES_CruiseThrottle", 0),
                ("Signal5", "ES_CruiseThrottle", 0),
                ("Counter", "ES_CruiseThrottle", 0),
                ("Signal6", "ES_CruiseThrottle", 0),
                ("Cruise_Button", "ES_CruiseThrottle", 0),
                ("Signal7", "ES_CruiseThrottle", 0),
            ]

            checks = [
                ("ES_DashStatus", 20),
                ("ES_CruiseThrottle", 20),
            ]
        else:
            signals = [
                ("Cruise_Set_Speed", "ES_DashStatus", 0),
                ("Conventional_Cruise", "ES_DashStatus", 0),
                ("Counter", "ES_Distance", 0),
                ("Signal1", "ES_Distance", 0),
                ("Cruise_Fault", "ES_Distance", 0),
                ("Cruise_Throttle", "ES_Distance", 0),
                ("Signal2", "ES_Distance", 0),
                ("Car_Follow", "ES_Distance", 0),
                ("Signal3", "ES_Distance", 0),
                ("Cruise_Brake_Active", "ES_Distance", 0),
                ("Distance_Swap", "ES_Distance", 0),
                ("Cruise_EPB", "ES_Distance", 0),
                ("Signal4", "ES_Distance", 0),
                ("Close_Distance", "ES_Distance", 0),
                ("Signal5", "ES_Distance", 0),
                ("Cruise_Cancel", "ES_Distance", 0),
                ("Cruise_Set", "ES_Distance", 0),
                ("Cruise_Resume", "ES_Distance", 0),
                ("Signal6", "ES_Distance", 0),
                ("Counter", "ES_LKAS_State", 0),
                ("LKAS_Alert_Msg", "ES_LKAS_State", 0),
                ("Signal1", "ES_LKAS_State", 0),
                ("LKAS_ACTIVE", "ES_LKAS_State", 0),
                ("LKAS_Dash_State", "ES_LKAS_State", 0),
                ("Signal2", "ES_LKAS_State", 0),
                ("Backward_Speed_Limit_Menu", "ES_LKAS_State", 0),
                ("LKAS_Left_Line_Enable", "ES_LKAS_State", 0),
                ("LKAS_Left_Line_Light_Blink", "ES_LKAS_State", 0),
                ("LKAS_Right_Line_Enable", "ES_LKAS_State", 0),
                ("LKAS_Right_Line_Light_Blink", "ES_LKAS_State", 0),
                ("LKAS_Left_Line_Visible", "ES_LKAS_State", 0),
                ("LKAS_Right_Line_Visible", "ES_LKAS_State", 0),
                ("LKAS_Alert", "ES_LKAS_State", 0),
                ("Signal3", "ES_LKAS_State", 0),
            ]

            checks = [
                ("ES_DashStatus", 10),
                ("ES_Distance", 20),
                ("ES_LKAS_State", 10),
            ]

        return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 2)
コード例 #6
0
ファイル: carstate.py プロジェクト: KelvinPark70/openpilot-5
    def get_can_parser(CP):
        # this function generates lists for signal, messages and initial values
        signals = [
            # sig_name, sig_address, default
            ("LEFT_BLINK", "BLINK_INFO", 0),
            ("RIGHT_BLINK", "BLINK_INFO", 0),
            ("STEER_ANGLE", "STEER", 0),
            ("STEER_ANGLE_RATE", "STEER_RATE", 0),
            ("STEER_TORQUE_SENSOR", "STEER_TORQUE", 0),
            ("STEER_TORQUE_MOTOR", "STEER_TORQUE", 0),
            ("FL", "WHEEL_SPEEDS", 0),
            ("FR", "WHEEL_SPEEDS", 0),
            ("RL", "WHEEL_SPEEDS", 0),
            ("RR", "WHEEL_SPEEDS", 0),
        ]

        checks = [
            # sig_address, frequency
            ("BLINK_INFO", 10),
            ("STEER", 67),
            ("STEER_RATE", 83),
            ("STEER_TORQUE", 83),
            ("WHEEL_SPEEDS", 100),
        ]

        if CP.carFingerprint in GEN1:
            signals += [
                ("LKAS_BLOCK", "STEER_RATE", 0),
                ("LKAS_TRACK_STATE", "STEER_RATE", 0),
                ("HANDS_OFF_5_SECONDS", "STEER_RATE", 0),
                ("CRZ_ACTIVE", "CRZ_CTRL", 0),
                ("STANDSTILL", "PEDALS", 0),
                ("BRAKE_ON", "PEDALS", 0),
                ("BRAKE_PRESSURE", "BRAKE", 0),
                ("GEAR", "GEAR", 0),
                ("DRIVER_SEATBELT", "SEATBELT", 0),
                ("FL", "DOORS", 0),
                ("FR", "DOORS", 0),
                ("BL", "DOORS", 0),
                ("BR", "DOORS", 0),
                ("PEDAL_GAS", "ENGINE_DATA", 0),
                ("SPEED", "ENGINE_DATA", 0),
                ("RES", "CRZ_BTNS", 0),
                ("SET_P", "CRZ_BTNS", 0),
                ("SET_M", "CRZ_BTNS", 0),
                ("CTR", "CRZ_BTNS", 0),
                ("LEFT_BS1", "BSM", 0),
                ("RIGHT_BS1", "BSM", 0),
            ]

            checks += [
                ("ENGINE_DATA", 100),
                ("CRZ_CTRL", 50),
                ("CRZ_BTNS", 10),
                ("PEDALS", 50),
                ("BRAKE", 50),
                ("SEATBELT", 10),
                ("DOORS", 10),
                ("GEAR", 20),
                ("BSM", 10),
            ]

        return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, 0)
コード例 #7
0
  def test_standstill_and_cancel(self):
    self.longMessage = True
    car_name = TOYOTA.RAV4

    sendcan = messaging.pub_sock('sendcan')

    params = CarInterface.get_params(car_name)
    CI = CarInterface(params, CarController)

    # Get parser
    parser_signals = [
      ('RELEASE_STANDSTILL', 'ACC_CONTROL', 0),
      ('CANCEL_REQ', 'ACC_CONTROL', 0),
      ('SET_ME_X3', 'ACC_CONTROL', 0),
      ('SET_ME_1', 'ACC_CONTROL', 0),
    ]
    parser = CANParser(CI.cp.dbc_name, parser_signals, [], 0, sendcan=True, tcp_addr="127.0.0.1")
    time.sleep(0.2)  # Slow joiner syndrome

    control = car.CarControl.new_message()
    control.enabled = True

    CI.update(control)

    CI.CS.pcm_acc_status = 8  # Active
    CI.CS.standstill = True
    can_sends = CI.apply(control)

    sendcan.send(can_list_to_can_capnp(can_sends, msgtype='sendcan'))

    for _ in range(5):
      parser.update(int(sec_since_boot() * 1e9), False)
      time.sleep(0.01)

    self.assertEqual(0x3, parser.vl['ACC_CONTROL']['SET_ME_X3'])
    self.assertEqual(1, parser.vl['ACC_CONTROL']['SET_ME_1'])
    self.assertFalse(parser.vl['ACC_CONTROL']['RELEASE_STANDSTILL'])
    self.assertFalse(parser.vl['ACC_CONTROL']['CANCEL_REQ'])

    CI.CS.pcm_acc_status = 7  # Standstill

    for _ in range(10):
      can_sends = CI.apply(control)
      sendcan.send(can_list_to_can_capnp(can_sends, msgtype='sendcan'))

    for _ in range(5):
      parser.update(int(sec_since_boot() * 1e9), False)
      time.sleep(0.01)

    self.assertTrue(parser.vl['ACC_CONTROL']['RELEASE_STANDSTILL'])

    cruise = car.CarControl.CruiseControl.new_message()
    cruise.cancel = True
    control.cruiseControl = cruise

    for _ in range(10):
      can_sends = CI.apply(control)

    sendcan.send(can_list_to_can_capnp(can_sends, msgtype='sendcan'))

    for _ in range(5):
      parser.update(int(sec_since_boot() * 1e9), False)
      time.sleep(0.01)

    self.assertTrue(parser.vl['ACC_CONTROL']['CANCEL_REQ'])
コード例 #8
0
ファイル: carstate.py プロジェクト: biltmore1000/openpilot2
    def get_can_parser(CP):

        signals = [
            # sig_name, sig_address, default
            ("STEER_ANGLE", "STEER_ANGLE_SENSOR", 0),
            ("GEAR", "GEAR_PACKET", 0),
            ("BRAKE_PRESSED", "BRAKE_MODULE", 0),
            ("GAS_PEDAL", "GAS_PEDAL", 0),
            ("WHEEL_SPEED_FL", "WHEEL_SPEEDS", 0),
            ("WHEEL_SPEED_FR", "WHEEL_SPEEDS", 0),
            ("WHEEL_SPEED_RL", "WHEEL_SPEEDS", 0),
            ("WHEEL_SPEED_RR", "WHEEL_SPEEDS", 0),
            ("DOOR_OPEN_FL", "SEATS_DOORS", 1),
            ("DOOR_OPEN_FR", "SEATS_DOORS", 1),
            ("DOOR_OPEN_RL", "SEATS_DOORS", 1),
            ("DOOR_OPEN_RR", "SEATS_DOORS", 1),
            ("SEATBELT_DRIVER_UNLATCHED", "SEATS_DOORS", 1),
            ("TC_DISABLED", "ESP_CONTROL", 1),
            ("STEER_FRACTION", "STEER_ANGLE_SENSOR", 0),
            ("STEER_RATE", "STEER_ANGLE_SENSOR", 0),
            ("CRUISE_ACTIVE", "PCM_CRUISE", 0),
            ("CRUISE_STATE", "PCM_CRUISE", 0),
            ("GAS_RELEASED", "PCM_CRUISE", 1),
            ("STEER_TORQUE_DRIVER", "STEER_TORQUE_SENSOR", 0),
            ("STEER_TORQUE_EPS", "STEER_TORQUE_SENSOR", 0),
            ("STEER_ANGLE", "STEER_TORQUE_SENSOR", 0),
            ("TURN_SIGNALS", "STEERING_LEVERS", 3),  # 3 is no blinkers
            ("LKA_STATE", "EPS_STATUS", 0),
            ("BRAKE_LIGHTS_ACC", "ESP_CONTROL", 0),
            ("AUTO_HIGH_BEAM", "LIGHT_STALK", 0),
        ]

        checks = [
            ("BRAKE_MODULE", 40),
            ("GAS_PEDAL", 33),
            ("WHEEL_SPEEDS", 80),
            ("STEER_ANGLE_SENSOR", 80),
            ("PCM_CRUISE", 33),
            ("STEER_TORQUE_SENSOR", 50),
            ("EPS_STATUS", 25),
        ]

        if CP.carFingerprint == CAR.LEXUS_IS:
            signals.append(("MAIN_ON", "DSU_CRUISE", 0))
            signals.append(("SET_SPEED", "DSU_CRUISE", 0))
            checks.append(("DSU_CRUISE", 5))
        else:
            signals.append(("MAIN_ON", "PCM_CRUISE_2", 0))
            signals.append(("SET_SPEED", "PCM_CRUISE_2", 0))
            signals.append(("LOW_SPEED_LOCKOUT", "PCM_CRUISE_2", 0))
            checks.append(("PCM_CRUISE_2", 33))

        if CP.carFingerprint == CAR.PRIUS:
            signals += [("STATE", "AUTOPARK_STATUS", 0)]

        # add gas interceptor reading if we are using it
        if CP.enableGasInterceptor:
            signals.append(("INTERCEPTOR_GAS", "GAS_SENSOR", 0))
            signals.append(("INTERCEPTOR_GAS2", "GAS_SENSOR", 0))
            checks.append(("GAS_SENSOR", 50))

        if CP.carFingerprint in TSS2_CAR:
            signals += [("L_ADJACENT", "BSM", 0)]
            signals += [("R_ADJACENT", "BSM", 0)]

        return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, 0)
コード例 #9
0
ファイル: carstate.py プロジェクト: OzKnight2013/openpilot
    def get_can_parser(CP):
        checks = []
        signals = [
            # sig_name, sig_address, default
            ("WHL_SPD_FL", "WHL_SPD11", 0),
            ("WHL_SPD_FR", "WHL_SPD11", 0),
            ("WHL_SPD_RL", "WHL_SPD11", 0),
            ("WHL_SPD_RR", "WHL_SPD11", 0),
            ("YAW_RATE", "ESP12", 0),
            ("CF_Gway_DrvSeatBeltInd", "CGW4", 1),
            ("CF_Gway_DrvSeatBeltSw", "CGW1", 0),
            ("CF_Gway_DrvDrSw", "CGW1", 0),  # Driver Door
            ("CF_Gway_AstDrSw", "CGW1", 0),  # Passenger door
            ("CF_Gway_RLDrSw", "CGW2", 0),  # Rear reft door
            ("CF_Gway_RRDrSw", "CGW2", 0),  # Rear right door
            ("CF_Gway_TSigLHSw", "CGW1", 0),
            ("CF_Gway_TurnSigLh", "CGW1", 0),
            ("CF_Gway_TSigRHSw", "CGW1", 0),
            ("CF_Gway_TurnSigRh", "CGW1", 0),
            ("CF_Gway_ParkBrakeSw", "CGW1", 0),
            ("CYL_PRES", "ESP12", 0),
            ("AVH_STAT", "ESP11", 0),
            ("CF_Clu_CruiseSwState", "CLU11", 0),
            ("CF_Clu_CruiseSwMain", "CLU11", 0),
            ("CF_Clu_SldMainSW", "CLU11", 0),
            ("CF_Clu_ParityBit1", "CLU11", 0),
            ("CF_Clu_VanzDecimal", "CLU11", 0),
            ("CF_Clu_Vanz", "CLU11", 0),
            ("CF_Clu_SPEED_UNIT", "CLU11", 0),
            ("CF_Clu_DetentOut", "CLU11", 0),
            ("CF_Clu_RheostatLevel", "CLU11", 0),
            ("CF_Clu_CluInfo", "CLU11", 0),
            ("CF_Clu_AmpInfo", "CLU11", 0),
            ("CF_Clu_AliveCnt1", "CLU11", 0),
            ("ACCEnable", "TCS13", 0),
            ("BrakeLight", "TCS13", 0),
            ("DriverBraking", "TCS13", 0),
            ("DriverOverride", "TCS13", 0),
            ("ESC_Off_Step", "TCS15", 0),
            ("CF_Lvr_CruiseSet", "LVR12", 0),
            ("CRUISE_LAMP_M", "EMS16", 0),
            ("CR_VSM_Alive", "SCC12", 0),
            ("AliveCounterACC", "SCC11", 0),
            ("CR_FCA_Alive", "FCA11", 0),
            ("Supplemental_Counter", "FCA11", 0),
        ]

        checks = [
            # address, frequency
            ("TCS13", 50),
            ("TCS15", 10),
            ("CLU11", 50),
            ("ESP12", 100),
            ("CGW1", 10),
            ("CGW4", 5),
            ("WHL_SPD11", 50),
        ]

        if CP.sccBus == 0:
            signals += [
                ("MainMode_ACC", "SCC11", 0),
                ("VSetDis", "SCC11", 0),
                ("SCCInfoDisplay", "SCC11", 0),
                ("ACC_ObjStatus", "SCC11", 0),
                ("ACC_ObjDist", "SCC11", 0),
                ("ObjValid", "SCC11", 0),
                ("ACC_ObjRelSpd", "SCC11", 0),
                ("AliveCounterACC", "SCC11", 0),
                ("ACCMode", "SCC12", 1),
                ("AEB_CmdAct", "SCC12", 0),
                ("CF_VSM_Warn", "SCC12", 0),
                ("CR_VSM_Alive", "SCC12", 0),
            ]
            checks += [
                ("SCC11", 50),
                ("SCC12", 50),
            ]
        if CP.fcaBus == 0:
            signals += [
                ("FCA_CmdAct", "FCA11", 0),
                ("CF_VSM_Warn", "FCA11", 0),
                ("CR_FCA_Alive", "FCA11", 0),
                ("Supplemental_Counter", "FCA11", 0),
            ]
            checks += [("FCA11", 50)]

        if not CP.mdpsHarness:
            signals += [("CR_Mdps_StrColTq", "MDPS12", 0),
                        ("CF_Mdps_Def", "MDPS12", 0),
                        ("CF_Mdps_ToiActive", "MDPS12", 0),
                        ("CF_Mdps_ToiUnavail", "MDPS12", 0),
                        ("CF_Mdps_MsgCount2", "MDPS12", 0),
                        ("CF_Mdps_Chksum2", "MDPS12", 0),
                        ("CF_Mdps_ToiFlt", "MDPS12", 0),
                        ("CF_Mdps_SErr", "MDPS12", 0),
                        ("CR_Mdps_StrTq", "MDPS12", 0),
                        ("CF_Mdps_FailStat", "MDPS12", 0),
                        ("CR_Mdps_OutTq", "MDPS12", 0)]
            checks += [("MDPS12", 50)]
        if CP.sasBus == 0:
            signals += [
                ("SAS_Angle", "SAS11", 0),
                ("SAS_Speed", "SAS11", 0),
            ]
            checks += [("SAS11", 100)]

        if CP.bsmAvailable:
            signals += [
                ("CF_Lca_IndLeft", "LCA11", 0),
                ("CF_Lca_IndRight", "LCA11", 0),
            ]
            checks += [("LCA11", 50)]

        if CP.carFingerprint in ELEC_VEH:
            signals += [
                ("Accel_Pedal_Pos", "E_EMS11", 0),
            ]
            checks += [
                ("E_EMS11", 50),
            ]
        elif CP.carFingerprint in HYBRID_VEH:
            signals += [
                ("CR_Vcu_AccPedDep_Pc", "EV_PC4", 0),
            ]
            checks += [
                ("EV_PC4", 50),
            ]
        elif CP.emsAvailable:
            signals += [
                ("PV_AV_CAN", "EMS12", 0),
                ("CF_Ems_AclAct", "EMS16", 0),
            ]
            checks += [
                ("EMS12", 100),
                ("EMS16", 100),
            ]

        if CP.carFingerprint in FEATURES["use_cluster_gears"]:
            signals += [
                ("CF_Clu_InhibitD", "CLU15", 0),
                ("CF_Clu_InhibitP", "CLU15", 0),
                ("CF_Clu_InhibitN", "CLU15", 0),
                ("CF_Clu_InhibitR", "CLU15", 0),
            ]
            checks += [("CLU15", 5)]
        elif CP.carFingerprint in FEATURES["use_tcu_gears"]:
            signals += [("CUR_GR", "TCU12", 0)]
            checks += [("TCU12", 100)]
        elif CP.evgearAvailable:
            signals += [("Elect_Gear_Shifter", "ELECT_GEAR", 0)]
            checks += [("ELECT_GEAR", 20)]
        elif CP.lvrAvailable:
            signals += [("CF_Lvr_Gear", "LVR12", 0)]
            checks += [("LVR12", 100)]

        return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, 0)
コード例 #10
0
 def get_can_parser(self, CP):
     signals, checks = get_can_signals(CP, self.gearbox_msg,
                                       self.main_on_sig_msg)
     bus_pt = 1 if CP.carFingerprint in HONDA_BOSCH else 0
     return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, bus_pt)
コード例 #11
0
    def get_can_parser(CP):
        signals = [
            # sig_name, sig_address
            ("LEFT_BLINK", "BLINK_INFO"),
            ("RIGHT_BLINK", "BLINK_INFO"),
            ("HIGH_BEAMS", "BLINK_INFO"),
            ("STEER_ANGLE", "STEER"),
            ("STEER_ANGLE_RATE", "STEER_RATE"),
            ("STEER_TORQUE_SENSOR", "STEER_TORQUE"),
            ("STEER_TORQUE_MOTOR", "STEER_TORQUE"),
            ("FL", "WHEEL_SPEEDS"),
            ("FR", "WHEEL_SPEEDS"),
            ("RL", "WHEEL_SPEEDS"),
            ("RR", "WHEEL_SPEEDS"),
        ]

        checks = [
            # sig_address, frequency
            ("BLINK_INFO", 10),
            ("STEER", 67),
            ("STEER_RATE", 83),
            ("STEER_TORQUE", 83),
            ("WHEEL_SPEEDS", 100),
        ]

        if CP.carFingerprint in GEN1:
            signals += [
                ("LKAS_BLOCK", "STEER_RATE"),
                ("LKAS_TRACK_STATE", "STEER_RATE"),
                ("HANDS_OFF_5_SECONDS", "STEER_RATE"),
                ("CRZ_ACTIVE", "CRZ_CTRL"),
                ("CRZ_AVAILABLE", "CRZ_CTRL"),
                ("CRZ_SPEED", "CRZ_EVENTS"),
                ("STANDSTILL", "PEDALS"),
                ("BRAKE_ON", "PEDALS"),
                ("BRAKE_PRESSURE", "BRAKE"),
                ("GEAR", "GEAR"),
                ("DRIVER_SEATBELT", "SEATBELT"),
                ("FL", "DOORS"),
                ("FR", "DOORS"),
                ("BL", "DOORS"),
                ("BR", "DOORS"),
                ("PEDAL_GAS", "ENGINE_DATA"),
                ("SPEED", "ENGINE_DATA"),
                ("CTR", "CRZ_BTNS"),
                ("LEFT_BS1", "BSM"),
                ("RIGHT_BS1", "BSM"),
            ]

            checks += [
                ("ENGINE_DATA", 100),
                ("CRZ_CTRL", 50),
                ("CRZ_EVENTS", 50),
                ("CRZ_BTNS", 10),
                ("PEDALS", 50),
                ("BRAKE", 50),
                ("SEATBELT", 10),
                ("DOORS", 10),
                ("GEAR", 20),
                ("BSM", 10),
            ]

        return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 0)
コード例 #12
0
    def get_can_parser(CP):
        signals = [
            # sig_name, sig_address
            ("WHL_SPD_FL", "WHL_SPD11"),
            ("WHL_SPD_FR", "WHL_SPD11"),
            ("WHL_SPD_RL", "WHL_SPD11"),
            ("WHL_SPD_RR", "WHL_SPD11"),
            ("YAW_RATE", "ESP12"),
            ("CF_Gway_DrvSeatBeltInd", "CGW4"),
            ("CF_Gway_DrvSeatBeltSw", "CGW1"),
            ("CF_Gway_DrvDrSw", "CGW1"),  # Driver Door
            ("CF_Gway_AstDrSw", "CGW1"),  # Passenger door
            ("CF_Gway_RLDrSw", "CGW2"),  # Rear reft door
            ("CF_Gway_RRDrSw", "CGW2"),  # Rear right door
            ("CF_Gway_TurnSigLh", "CGW1"),
            ("CF_Gway_TurnSigRh", "CGW1"),
            ("CF_Gway_ParkBrakeSw", "CGW1"),
            ("CYL_PRES", "ESP12"),
            ("CF_Clu_CruiseSwState", "CLU11"),
            ("CF_Clu_CruiseSwMain", "CLU11"),
            ("CF_Clu_SldMainSW", "CLU11"),
            ("CF_Clu_ParityBit1", "CLU11"),
            ("CF_Clu_VanzDecimal", "CLU11"),
            ("CF_Clu_Vanz", "CLU11"),
            ("CF_Clu_SPEED_UNIT", "CLU11"),
            ("CF_Clu_DetentOut", "CLU11"),
            ("CF_Clu_RheostatLevel", "CLU11"),
            ("CF_Clu_CluInfo", "CLU11"),
            ("CF_Clu_AmpInfo", "CLU11"),
            ("CF_Clu_AliveCnt1", "CLU11"),
            ("ACCEnable", "TCS13"),
            ("ACC_REQ", "TCS13"),
            ("DriverBraking", "TCS13"),
            ("StandStill", "TCS13"),
            ("PBRAKE_ACT", "TCS13"),
            ("ESC_Off_Step", "TCS15"),
            ("AVH_LAMP", "TCS15"),
            ("CR_Mdps_StrColTq", "MDPS12"),
            ("CF_Mdps_ToiActive", "MDPS12"),
            ("CF_Mdps_ToiUnavail", "MDPS12"),
            ("CF_Mdps_ToiFlt", "MDPS12"),
            ("CR_Mdps_OutTq", "MDPS12"),
            ("SAS_Angle", "SAS11"),
            ("SAS_Speed", "SAS11"),
        ]

        checks = [
            # address, frequency
            ("MDPS12", 50),
            ("TCS13", 50),
            ("TCS15", 10),
            ("CLU11", 50),
            ("ESP12", 100),
            ("CGW1", 10),
            ("CGW2", 5),
            ("CGW4", 5),
            ("WHL_SPD11", 50),
            ("SAS11", 100),
        ]

        if not CP.openpilotLongitudinalControl:
            signals += [
                ("MainMode_ACC", "SCC11"),
                ("VSetDis", "SCC11"),
                ("SCCInfoDisplay", "SCC11"),
                ("ACC_ObjDist", "SCC11"),
                ("ACCMode", "SCC12"),
            ]

            checks += [
                ("SCC11", 50),
                ("SCC12", 50),
            ]

            if CP.carFingerprint in FEATURES["use_fca"]:
                signals += [
                    ("FCA_CmdAct", "FCA11"),
                    ("CF_VSM_Warn", "FCA11"),
                ]
                checks.append(("FCA11", 50))
            else:
                signals += [
                    ("AEB_CmdAct", "SCC12"),
                    ("CF_VSM_Warn", "SCC12"),
                ]

        if CP.enableBsm:
            signals += [
                ("CF_Lca_IndLeft", "LCA11"),
                ("CF_Lca_IndRight", "LCA11"),
            ]
            checks.append(("LCA11", 50))

        if CP.carFingerprint in (HYBRID_CAR | EV_CAR):
            if CP.carFingerprint in HYBRID_CAR:
                signals.append(("CR_Vcu_AccPedDep_Pos", "E_EMS11"))
            else:
                signals.append(("Accel_Pedal_Pos", "E_EMS11"))
            checks.append(("E_EMS11", 50))
        else:
            signals += [
                ("PV_AV_CAN", "EMS12"),
                ("CF_Ems_AclAct", "EMS16"),
            ]
            checks += [
                ("EMS12", 100),
                ("EMS16", 100),
            ]

        if CP.carFingerprint in FEATURES["use_cluster_gears"]:
            signals.append(("CF_Clu_Gear", "CLU15"))
            checks.append(("CLU15", 5))
        elif CP.carFingerprint in FEATURES["use_tcu_gears"]:
            signals.append(("CUR_GR", "TCU12"))
            checks.append(("TCU12", 100))
        elif CP.carFingerprint in FEATURES["use_elect_gears"]:
            signals.append(("Elect_Gear_Shifter", "ELECT_GEAR"))
            checks.append(("ELECT_GEAR", 20))
        else:
            signals.append(("CF_Lvr_Gear", "LVR12"))
            checks.append(("LVR12", 100))

        return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 0)
コード例 #13
0
ファイル: carstate.py プロジェクト: darknight111/openpilot
    def get_can_parser(CP):
        signals = [
            # sig_name, sig_address
            ("BrakePedalPosition", "EBCMBrakePedalPosition"),
            ("FrontLeftDoor", "BCMDoorBeltStatus"),
            ("FrontRightDoor", "BCMDoorBeltStatus"),
            ("RearLeftDoor", "BCMDoorBeltStatus"),
            ("RearRightDoor", "BCMDoorBeltStatus"),
            ("LeftSeatBelt", "BCMDoorBeltStatus"),
            ("RightSeatBelt", "BCMDoorBeltStatus"),
            ("TurnSignals", "BCMTurnSignals"),
            ("AcceleratorPedal2", "AcceleratorPedal2"),
            ("CruiseState", "AcceleratorPedal2"),
            ("ACCButtons", "ASCMSteeringButton"),
            ("SteeringWheelAngle", "PSCMSteeringAngle"),
            ("SteeringWheelRate", "PSCMSteeringAngle"),
            ("FLWheelSpd", "EBCMWheelSpdFront"),
            ("FRWheelSpd", "EBCMWheelSpdFront"),
            ("RLWheelSpd", "EBCMWheelSpdRear"),
            ("RRWheelSpd", "EBCMWheelSpdRear"),
            ("PRNDL2", "ECMPRDNL2"),
            ("ManualMode", "ECMPRDNL2"),
            ("LKADriverAppldTrq", "PSCMStatus"),
            ("LKATorqueDelivered", "PSCMStatus"),
            ("LKATorqueDeliveredStatus", "PSCMStatus"),
            ("TractionControlOn", "ESPStatus"),
            ("CruiseMainOn", "ECMEngineStatus"),
            ("Brake_Pressed", "ECMEngineStatus"),
        ]

        checks = [
            ("BCMTurnSignals", 1),
            ("ECMPRDNL2", 10),
            ("PSCMStatus", 10),
            ("ESPStatus", 10),
            ("BCMDoorBeltStatus", 10),
            ("EBCMWheelSpdFront", 20),
            ("EBCMWheelSpdRear", 20),
            ("AcceleratorPedal2", 33),
            ("ASCMSteeringButton", 33),
            ("ECMEngineStatus", 100),
            ("PSCMSteeringAngle", 100),
            ("EBCMBrakePedalPosition", 100),
        ]

        # TODO: Might be wise to find the non-electronic parking brake signal
        # TODO: JJS Add hasEPB to cereal
        if CP.carFingerprint != CAR.SUBURBAN and CP.carFingerprint != CAR.TAHOE_NR:
            signals.append(("EPBClosed", "EPBStatus", 0))
            checks.append(("EPBStatus", 20))

        if CP.enableGasInterceptor:
            signals.append(("INTERCEPTOR_GAS", "GAS_SENSOR"))
            signals.append(("INTERCEPTOR_GAS2", "GAS_SENSOR"))
            checks.append(("GAS_SENSOR", 50))

        if CP.carFingerprint in EV_CAR:
            signals.append(("RegenPaddle", "EBCMRegenPaddle"))
            checks.append(("EBCMRegenPaddle", 50))

        return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks,
                         CanBus.POWERTRAIN)
コード例 #14
0
ファイル: carstate.py プロジェクト: Kiaoptima/openpilot
 def get_can2_parser(CP):
     signals = []
     checks = []
     if CP.mdpsBus == 1:
         signals += [("CR_Mdps_StrColTq", "MDPS12", 0),
                     ("CF_Mdps_Def", "MDPS12", 0),
                     ("CF_Mdps_ToiActive", "MDPS12", 0),
                     ("CF_Mdps_ToiUnavail", "MDPS12", 0),
                     ("CF_Mdps_MsgCount2", "MDPS12", 0),
                     ("CF_Mdps_Chksum2", "MDPS12", 0),
                     ("CF_Mdps_ToiFlt", "MDPS12", 0),
                     ("CF_Mdps_SErr", "MDPS12", 0),
                     ("CR_Mdps_StrTq", "MDPS12", 0),
                     ("CF_Mdps_FailStat", "MDPS12", 0),
                     ("CR_Mdps_OutTq", "MDPS12", 0)]
         checks += [("MDPS12", 50)]
         if CP.spasEnabled:
             signals += [
                 ("CR_Mdps_StrAng", "MDPS11", 0),
                 ("CF_Mdps_Stat", "MDPS11", 0),
             ]
             checks += [
                 ("MDPS11", 100),
             ]
     if CP.sasBus == 1:
         signals += [
             ("SAS_Angle", "SAS11", 0),
             ("SAS_Speed", "SAS11", 0),
         ]
         checks += [("SAS11", 100)]
     if CP.sccBus == 1:
         signals += [
             ("MainMode_ACC", "SCC11", 1),
             ("SCCInfoDisplay", "SCC11", 0),
             ("AliveCounterACC", "SCC11", 0),
             ("VSetDis", "SCC11", 30),
             ("ObjValid", "SCC11", 0),
             ("DriverAlertDisplay", "SCC11", 0),
             ("TauGapSet", "SCC11", 4),
             ("ACC_ObjStatus", "SCC11", 0),
             ("ACC_ObjLatPos", "SCC11", 0),
             ("ACC_ObjDist", "SCC11", 150.),
             ("ACC_ObjRelSpd", "SCC11", 0),
             ("Navi_SCC_Curve_Status", "SCC11", 0),
             ("Navi_SCC_Curve_Act", "SCC11", 0),
             ("Navi_SCC_Camera_Act", "SCC11", 0),
             ("Navi_SCC_Camera_Status", "SCC11", 2),
             ("ACCMode", "SCC12", 0),
             ("CF_VSM_Prefill", "SCC12", 0),
             ("CF_VSM_DecCmdAct", "SCC12", 0),
             ("CF_VSM_HBACmd", "SCC12", 0),
             ("CF_VSM_Warn", "SCC12", 0),
             ("CF_VSM_Stat", "SCC12", 0),
             ("CF_VSM_BeltCmd", "SCC12", 0),
             ("ACCFailInfo", "SCC12", 0),
             ("StopReq", "SCC12", 0),
             ("CR_VSM_DecCmd", "SCC12", 0),
             ("aReqRaw", "SCC12", 0),  #aReqMax
             ("TakeOverReq", "SCC12", 0),
             ("PreFill", "SCC12", 0),
             ("aReqValue", "SCC12", 0),  #aReqMin
             ("CF_VSM_ConfMode", "SCC12", 1),
             ("AEB_Failinfo", "SCC12", 0),
             ("AEB_Status", "SCC12", 2),
             ("AEB_CmdAct", "SCC12", 0),
             ("AEB_StopReq", "SCC12", 0),
             ("CR_VSM_Alive", "SCC12", 0),
             ("CR_VSM_ChkSum", "SCC12", 0),
             ("SCCDrvModeRValue", "SCC13", 2),
             ("SCC_Equip", "SCC13", 1),
             ("AebDrvSetStatus", "SCC13", 0),
             ("JerkUpperLimit", "SCC14", 0),
             ("JerkLowerLimit", "SCC14", 0),
             ("SCCMode2", "SCC14", 0),
             ("ComfortBandUpper", "SCC14", 0),
             ("ComfortBandLower", "SCC14", 0),
         ]
         checks += [
             ("SCC11", 50),
             ("SCC12", 50),
         ]
     return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, 1)
コード例 #15
0
  def test_ui(self):
    self.longMessage = True
    car_name = TOYOTA.RAV4

    sendcan = messaging.pub_sock('sendcan')

    params = CarInterface.get_params(car_name)
    CI = CarInterface(params, CarController)

    # Get parser
    parser_signals = [
      ('BARRIERS', 'LKAS_HUD', -1),
      ('RIGHT_LINE', 'LKAS_HUD', 0),
      ('LEFT_LINE', 'LKAS_HUD', 0),
      ('SET_ME_X01', 'LKAS_HUD', 0),
      ('SET_ME_X01_2', 'LKAS_HUD', 0),
      ('LDA_ALERT', 'LKAS_HUD', -1),
      ('SET_ME_X0C', 'LKAS_HUD', 0),
      ('SET_ME_X2C', 'LKAS_HUD', 0),
      ('SET_ME_X38', 'LKAS_HUD', 0),
      ('SET_ME_X02', 'LKAS_HUD', 0),
    ]
    parser = CANParser(CI.cp.dbc_name, parser_signals, [], 0, sendcan=True, tcp_addr="127.0.0.1")
    time.sleep(0.2)  # Slow joiner syndrome

    VA = car.CarControl.HUDControl.VisualAlert

    for left_lane in [True, False]:
      for right_lane in [True, False]:
        for steer in [True, False]:
          control = car.CarControl.new_message()
          control.enabled = True

          hud = car.CarControl.HUDControl.new_message()
          if steer:
            hud.visualAlert = VA.steerRequired

          hud.leftLaneVisible = left_lane
          hud.rightLaneVisible = right_lane

          control.hudControl = hud
          CI.update(control)

            for _ in range(200):  # UI is only sent at 1Hz
              can_sends = CI.apply(control)
              sendcan.send(can_list_to_can_capnp(can_sends, msgtype='sendcan'))

            for _ in range(5):
              parser.update(int(sec_since_boot() * 1e9), False)
              time.sleep(0.01)

            self.assertEqual(0x0c, parser.vl['LKAS_HUD']['SET_ME_X0C'])
            self.assertEqual(0x2c, parser.vl['LKAS_HUD']['SET_ME_X2C'])
            self.assertEqual(0x38, parser.vl['LKAS_HUD']['SET_ME_X38'])
            self.assertEqual(0x02, parser.vl['LKAS_HUD']['SET_ME_X02'])
            self.assertEqual(0, parser.vl['LKAS_HUD']['BARRIERS'])
            self.assertEqual(1 if right_lane else 2, parser.vl['LKAS_HUD']['RIGHT_LINE'])
            self.assertEqual(1 if left_lane else 2, parser.vl['LKAS_HUD']['LEFT_LINE'])
            self.assertEqual(1, parser.vl['LKAS_HUD']['SET_ME_X01'])
            self.assertEqual(1, parser.vl['LKAS_HUD']['SET_ME_X01_2'])
            self.assertEqual(steer, parser.vl['LKAS_HUD']['LDA_ALERT'])
コード例 #16
0
ファイル: carstate.py プロジェクト: Kiaoptima/openpilot
    def get_cam_can_parser(CP):

        signals = [
            # sig_name, sig_address, default
            ("CF_Lkas_LdwsActivemode", "LKAS11", 0),
            ("CF_Lkas_LdwsSysState", "LKAS11", 0),
            ("CF_Lkas_SysWarning", "LKAS11", 0),
            ("CF_Lkas_LdwsLHWarning", "LKAS11", 0),
            ("CF_Lkas_LdwsRHWarning", "LKAS11", 0),
            ("CF_Lkas_HbaLamp", "LKAS11", 0),
            ("CF_Lkas_FcwBasReq", "LKAS11", 0),
            ("CF_Lkas_ToiFlt", "LKAS11", 0),
            ("CF_Lkas_HbaSysState", "LKAS11", 0),
            ("CF_Lkas_FcwOpt", "LKAS11", 0),
            ("CF_Lkas_HbaOpt", "LKAS11", 0),
            ("CF_Lkas_FcwSysState", "LKAS11", 0),
            ("CF_Lkas_FcwCollisionWarning", "LKAS11", 0),
            ("CF_Lkas_MsgCount", "LKAS11", 0),
            ("CF_Lkas_FusionState", "LKAS11", 0),
            ("CF_Lkas_FcwOpt_USM", "LKAS11", 0),
            ("CF_Lkas_LdwsOpt_USM", "LKAS11", 0),
        ]

        checks = [("LKAS11", 100)]
        if CP.sccBus == 2:
            signals += [
                ("MainMode_ACC", "SCC11", 1),
                ("SCCInfoDisplay", "SCC11", 0),
                ("AliveCounterACC", "SCC11", 0),
                ("VSetDis", "SCC11", 30),
                ("ObjValid", "SCC11", 0),
                ("DriverAlertDisplay", "SCC11", 0),
                ("TauGapSet", "SCC11", 4),
                ("ACC_ObjStatus", "SCC11", 0),
                ("ACC_ObjLatPos", "SCC11", 0),
                ("ACC_ObjDist", "SCC11", 150.),
                ("ACC_ObjRelSpd", "SCC11", 0),
                ("Navi_SCC_Curve_Status", "SCC11", 0),
                ("Navi_SCC_Curve_Act", "SCC11", 0),
                ("Navi_SCC_Camera_Act", "SCC11", 0),
                ("Navi_SCC_Camera_Status", "SCC11", 2),
                ("ACCMode", "SCC12", 0),
                ("CF_VSM_Prefill", "SCC12", 0),
                ("CF_VSM_DecCmdAct", "SCC12", 0),
                ("CF_VSM_HBACmd", "SCC12", 0),
                ("CF_VSM_Warn", "SCC12", 0),
                ("CF_VSM_Stat", "SCC12", 0),
                ("CF_VSM_BeltCmd", "SCC12", 0),
                ("ACCFailInfo", "SCC12", 0),
                ("StopReq", "SCC12", 0),
                ("CR_VSM_DecCmd", "SCC12", 0),
                ("aReqRaw", "SCC12", 0),  #aReqMax
                ("TakeOverReq", "SCC12", 0),
                ("PreFill", "SCC12", 0),
                ("aReqValue", "SCC12", 0),  #aReqMin
                ("CF_VSM_ConfMode", "SCC12", 1),
                ("AEB_Failinfo", "SCC12", 0),
                ("AEB_Status", "SCC12", 2),
                ("AEB_CmdAct", "SCC12", 0),
                ("AEB_StopReq", "SCC12", 0),
                ("CR_VSM_Alive", "SCC12", 0),
                ("CR_VSM_ChkSum", "SCC12", 0),
                ("SCCDrvModeRValue", "SCC13", 2),
                ("SCC_Equip", "SCC13", 1),
                ("AebDrvSetStatus", "SCC13", 0),
                ("JerkUpperLimit", "SCC14", 0),
                ("JerkLowerLimit", "SCC14", 0),
                ("SCCMode2", "SCC14", 0),
                ("ComfortBandUpper", "SCC14", 0),
                ("ComfortBandLower", "SCC14", 0),
            ]
            checks += [
                ("SCC11", 50),
                ("SCC12", 50),
            ]

        return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, 2)
コード例 #17
0
  def get_can_parser(CP):
    signals = [
      # sig_name, sig_address, default
      ("ESP_vehicleSpeed", "ESP_B", 0),
      ("DI_pedalPos", "DI_torque1", 0),
      ("DI_brakePedal", "DI_torque2", 0),
      ("StW_AnglHP", "STW_ANGLHP_STAT", 0),
      ("StW_AnglHP_Spd", "STW_ANGLHP_STAT", 0),
      ("EPAS_handsOnLevel", "EPAS_sysStatus", 0),
      ("EPAS_torsionBarTorque", "EPAS_sysStatus", 0),
      ("EPAS_internalSAS", "EPAS_sysStatus", 0),
      ("EPAS_eacStatus", "EPAS_sysStatus", 1),
      ("EPAS_eacErrorCode", "EPAS_sysStatus", 0),
      ("DI_cruiseState", "DI_state", 0),
      ("DI_digitalSpeed", "DI_state", 0),
      ("DI_speedUnits", "DI_state", 0),
      ("DI_gear", "DI_torque2", 0),
      ("DOOR_STATE_FL", "GTW_carState", 1),
      ("DOOR_STATE_FR", "GTW_carState", 1),
      ("DOOR_STATE_RL", "GTW_carState", 1),
      ("DOOR_STATE_RR", "GTW_carState", 1),
      ("DOOR_STATE_FrontTrunk", "GTW_carState", 1),
      ("BOOT_STATE", "GTW_carState", 1),
      ("BC_indicatorLStatus", "GTW_carState", 1),
      ("BC_indicatorRStatus", "GTW_carState", 1),
      ("SDM_bcklDrivStatus", "SDM1", 0),
      ("driverBrakeStatus", "BrakeMessage", 0),

      # We copy this whole message when spamming cancel
      ("SpdCtrlLvr_Stat", "STW_ACTN_RQ", 0),
      ("VSL_Enbl_Rq", "STW_ACTN_RQ", 0),
      ("SpdCtrlLvrStat_Inv", "STW_ACTN_RQ", 0),
      ("DTR_Dist_Rq", "STW_ACTN_RQ", 0),
      ("TurnIndLvr_Stat", "STW_ACTN_RQ", 0),
      ("HiBmLvr_Stat", "STW_ACTN_RQ", 0),
      ("WprWashSw_Psd", "STW_ACTN_RQ", 0),
      ("WprWash_R_Sw_Posn_V2", "STW_ACTN_RQ", 0),
      ("StW_Lvr_Stat", "STW_ACTN_RQ", 0),
      ("StW_Cond_Flt", "STW_ACTN_RQ", 0),
      ("StW_Cond_Psd", "STW_ACTN_RQ", 0),
      ("HrnSw_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw00_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw01_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw02_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw03_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw04_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw05_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw06_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw07_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw08_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw09_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw10_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw11_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw12_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw13_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw14_Psd", "STW_ACTN_RQ", 0),
      ("StW_Sw15_Psd", "STW_ACTN_RQ", 0),
      ("WprSw6Posn", "STW_ACTN_RQ", 0),
      ("MC_STW_ACTN_RQ", "STW_ACTN_RQ", 0),
      ("CRC_STW_ACTN_RQ", "STW_ACTN_RQ", 0),
    ]

    checks = [
      # sig_address, frequency
      ("ESP_B", 50),
      ("DI_torque1", 100),
      ("DI_torque2", 100),
      ("STW_ANGLHP_STAT", 100),
      ("EPAS_sysStatus", 25),
      ("DI_state", 10),
      ("STW_ACTN_RQ", 10),
      ("GTW_carState", 10),
      ("SDM1", 10),
      ("BrakeMessage", 50),
    ]

    return CANParser(DBC[CP.carFingerprint]['chassis'], signals, checks, CANBUS.chassis)
コード例 #18
0
 def get_can_parser(CP):
     signals, checks = get_can_signals(CP)
     bus_pt = 1 if CP.isPandaBlack and CP.carFingerprint in HONDA_BOSCH else 0
     return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, bus_pt)
コード例 #19
0
def get_mqb_pt_can_parser(CP, canbus):
    # this function generates lists for signal, messages and initial values
    signals = [
        # sig_name, sig_address, default
        ("LWI_Lenkradwinkel", "LWI_01", 0),  # Absolute steering angle
        ("LWI_VZ_Lenkradwinkel", "LWI_01", 0),  # Steering angle sign
        ("LWI_Lenkradw_Geschw", "LWI_01", 0),  # Absolute steering rate
        ("LWI_VZ_Lenkradw_Geschw", "LWI_01", 0),  # Steering rate sign
        ("ESP_VL_Radgeschw_02", "ESP_19", 0),  # ABS wheel speed, front left
        ("ESP_VR_Radgeschw_02", "ESP_19", 0),  # ABS wheel speed, front right
        ("ESP_HL_Radgeschw_02", "ESP_19", 0),  # ABS wheel speed, rear left
        ("ESP_HR_Radgeschw_02", "ESP_19", 0),  # ABS wheel speed, rear right
        ("ESP_Gierrate", "ESP_02", 0),  # Absolute yaw rate
        ("ESP_VZ_Gierrate", "ESP_02", 0),  # Yaw rate sign
        ("ZV_FT_offen", "Gateway_72", 0),  # Door open, driver
        ("ZV_BT_offen", "Gateway_72", 0),  # Door open, passenger
        ("ZV_HFS_offen", "Gateway_72", 0),  # Door open, rear left
        ("ZV_HBFS_offen", "Gateway_72", 0),  # Door open, rear right
        ("ZV_HD_offen", "Gateway_72", 0),  # Trunk or hatch open
        ("BH_Blinker_li", "Gateway_72", 0),  # Left turn signal on
        ("BH_Blinker_re", "Gateway_72", 0),  # Right turn signal on
        ("GE_Fahrstufe", "Getriebe_11",
         0),  # Auto trans gear selector position
        ("AB_Gurtschloss_FA", "Airbag_02", 0),  # Seatbelt status, driver
        ("AB_Gurtschloss_BF", "Airbag_02", 0),  # Seatbelt status, passenger
        ("ESP_Fahrer_bremst", "ESP_05", 0),  # Brake pedal pressed
        ("ESP_Status_Bremsdruck", "ESP_05", 0),  # Brakes applied
        ("ESP_Bremsdruck", "ESP_05", 0),  # Brake pressure applied
        ("MO_Fahrpedalrohwert_01", "Motor_20", 0),  # Accelerator pedal value
        ("MO_Kuppl_schalter", "Motor_14", 0),  # Clutch switch
        ("Driver_Strain", "EPS_01", 0),  # Absolute driver torque input
        ("Driver_Strain_VZ", "EPS_01", 0),  # Driver torque input sign
        ("HCA_Ready", "EPS_01", 0),  # Steering rack HCA support configured
        ("ESP_Tastung_passiv", "ESP_21", 0),  # Stability control disabled
        ("KBI_MFA_v_Einheit_02", "Einheiten_01",
         0),  # MPH vs KMH speed display
        ("KBI_Handbremse", "Kombi_01", 0),  # Manual handbrake applied
        ("TSK_Fahrzeugmasse_02", "Motor_16",
         0),  # Estimated vehicle mass from drivetrain coordinator
        ("ACC_Status_ACC", "ACC_06", 0),  # ACC engagement status
        ("ACC_Typ", "ACC_06", 0),  # ACC type (follow to stop, stop&go)
        ("SetSpeed", "ACC_02", 0),  # ACC set speed
        ("GRA_Hauptschalter", "GRA_ACC_01", 0),  # ACC button, on/off
        ("GRA_Abbrechen", "GRA_ACC_01", 0),  # ACC button, cancel
        ("GRA_Tip_Setzen", "GRA_ACC_01", 0),  # ACC button, set
        ("GRA_Tip_Hoch", "GRA_ACC_01", 0),  # ACC button, increase or accel
        ("GRA_Tip_Runter", "GRA_ACC_01", 0),  # ACC button, decrease or decel
        ("GRA_Tip_Wiederaufnahme", "GRA_ACC_01", 0),  # ACC button, resume
        ("GRA_Verstellung_Zeitluecke", "GRA_ACC_01",
         0),  # ACC button, time gap adj
        ("GRA_Typ_Hauptschalter", "GRA_ACC_01", 0),  # ACC main button type
        ("GRA_Tip_Stufe_2", "GRA_ACC_01", 0),  # unknown related to stalk type
        ("GRA_ButtonTypeInfo", "GRA_ACC_01",
         0),  # unknown related to stalk type
        ("COUNTER", "GRA_ACC_01", 0),  # GRA_ACC_01 CAN message counter
    ]

    checks = [
        # sig_address, frequency
        ("LWI_01", 100),  # From J500 Steering Assist with integrated sensors
        ("EPS_01", 100),  # From J500 Steering Assist with integrated sensors
        ("ESP_19", 100),  # From J104 ABS/ESP controller
        ("ESP_05", 50),  # From J104 ABS/ESP controller
        ("ESP_21", 50),  # From J104 ABS/ESP controller
        ("ACC_06", 50),  # From J428 ACC radar control module
        ("Motor_20", 50),  # From J623 Engine control module
        ("GRA_ACC_01", 33),  # From J??? steering wheel control buttons
        ("ACC_02", 17),  # From J428 ACC radar control module
        ("Getriebe_11", 20),  # From J743 Auto transmission control module
        ("Gateway_72", 10),  # From J533 CAN gateway (aggregated data)
        ("Motor_14", 10),  # From J623 Engine control module
        ("Airbag_02", 5),  # From J234 Airbag control module
        ("Kombi_01", 2),  # From J285 Instrument cluster
        ("Motor_16", 2),  # From J623 Engine control module
        ("Einheiten_01", 1),  # From J??? not known if gateway, cluster, or BCM
    ]

    return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, canbus.pt)
コード例 #20
0
ファイル: carstate.py プロジェクト: UDLab/openpilot
    def get_can_parser(CP):
        # this function generates lists for signal, messages and initial values
        signals = [
            # sig_name, sig_address, default
            ("Steer_Torque_Sensor", "Steering_Torque", 0),
            ("Steering_Angle", "Steering_Torque", 0),
            ("Steer_Error_1", "Steering_Torque", 0),
            ("Cruise_On", "CruiseControl", 0),
            ("Cruise_Activated", "CruiseControl", 0),
            ("Brake_Pedal", "Brake_Pedal", 0),
            ("Throttle_Pedal", "Throttle", 0),
            ("LEFT_BLINKER", "Dashlights", 0),
            ("RIGHT_BLINKER", "Dashlights", 0),
            ("SEATBELT_FL", "Dashlights", 0),
            ("FL", "Wheel_Speeds", 0),
            ("FR", "Wheel_Speeds", 0),
            ("RL", "Wheel_Speeds", 0),
            ("RR", "Wheel_Speeds", 0),
            ("DOOR_OPEN_FR", "BodyInfo", 1),
            ("DOOR_OPEN_FL", "BodyInfo", 1),
            ("DOOR_OPEN_RR", "BodyInfo", 1),
            ("DOOR_OPEN_RL", "BodyInfo", 1),
            ("Gear", "Transmission", 0),
        ]

        checks = [
            # sig_address, frequency
            ("Throttle", 100),
            ("Dashlights", 10),
            ("Brake_Pedal", 50),
            ("Wheel_Speeds", 50),
            ("Transmission", 100),
            ("Steering_Torque", 50),
            ("BodyInfo", 1),
        ]

        if CP.enableBsm:
            signals += [
                ("L_ADJACENT", "BSD_RCTA", 0),
                ("R_ADJACENT", "BSD_RCTA", 0),
                ("L_APPROACHING", "BSD_RCTA", 0),
                ("R_APPROACHING", "BSD_RCTA", 0),
            ]
            checks += [
                ("BSD_RCTA", 17),
            ]

        if CP.carFingerprint not in PREGLOBAL_CARS:
            signals += [
                ("Steer_Warning", "Steering_Torque", 0),
                ("UNITS", "Dashlights", 0),
            ]

            checks += [
                ("Dashlights", 10),
                ("BodyInfo", 10),
                ("CruiseControl", 20),
            ]
        else:
            signals += [
                ("UNITS", "Dash_State2", 0),
            ]

            checks += [
                ("Dash_State2", 1),
            ]

        if CP.carFingerprint == CAR.FORESTER_PREGLOBAL:
            checks += [
                ("Dashlights", 20),
                ("BodyInfo", 1),
                ("CruiseControl", 50),
            ]

        if CP.carFingerprint in [
                CAR.LEGACY_PREGLOBAL, CAR.OUTBACK_PREGLOBAL,
                CAR.OUTBACK_PREGLOBAL_2018
        ]:
            checks += [
                ("Dashlights", 10),
                ("CruiseControl", 50),
            ]

        return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 0)
コード例 #21
0
    def get_can_parser(CP):
        signals = [
            # sig_name, sig_address
            ("Veh_V_ActlEng", "EngVehicleSpThrottle2"
             ),  # ABS vehicle speed (kph)
            ("VehYaw_W_Actl", "Yaw_Data_FD1"),  # ABS vehicle yaw rate (rad/s)
            ("VehStop_D_Stat", "DesiredTorqBrk"),  # ABS vehicle stopped
            ("PrkBrkStatus", "DesiredTorqBrk"),  # ABS park brake status
            ("ApedPos_Pc_ActlArb",
             "EngVehicleSpThrottle"),  # PCM throttle (pct)
            ("BrkTot_Tq_Actl", "BrakeSnData_4"),  # ABS brake torque (Nm)
            ("BpedDrvAppl_D_Actl",
             "EngBrakeData"),  # PCM driver brake pedal pressed
            ("Veh_V_DsplyCcSet", "EngBrakeData"),  # PCM ACC set speed (mph)
            # The units might change with IPC settings?
            ("CcStat_D_Actl", "EngBrakeData"),  # PCM ACC status
            ("StePinComp_An_Est",
             "SteeringPinion_Data"),  # PSCM estimated steering angle (deg)
            # Calculates steering angle (and offset) from pinion
            # angle and driving measurements.
            # StePinRelInit_An_Sns is the pinion angle, initialised
            # to zero at the beginning of the drive.
            ("SteeringColumnTorque", "EPAS_INFO"
             ),  # PSCM steering column torque (Nm)
            ("EPAS_Failure", "EPAS_INFO"),  # PSCM EPAS status
            ("LaHandsOff_B_Actl",
             "Lane_Assist_Data3_FD1"),  # PSCM LKAS hands off wheel
            ("TurnLghtSwtch_D_Stat",
             "Steering_Data_FD1"),  # SCCM Turn signal switch
            ("TjaButtnOnOffPress", "Steering_Data_FD1"
             ),  # SCCM ACC button, lane-centering/traffic jam assist toggle
            ("DrStatDrv_B_Actl", "BodyInfo_3_FD1"),  # BCM Door open, driver
            ("DrStatPsngr_B_Actl",
             "BodyInfo_3_FD1"),  # BCM Door open, passenger
            ("DrStatRl_B_Actl", "BodyInfo_3_FD1"),  # BCM Door open, rear left
            ("DrStatRr_B_Actl", "BodyInfo_3_FD1"),  # BCM Door open, rear right
            ("FirstRowBuckleDriver",
             "RCMStatusMessage2_FD1"),  # RCM Seatbelt status, driver
        ]

        checks = [
            # sig_address, frequency
            ("EngVehicleSpThrottle2", 50),
            ("Yaw_Data_FD1", 100),
            ("DesiredTorqBrk", 50),
            ("EngVehicleSpThrottle", 100),
            ("BrakeSnData_4", 50),
            ("EngBrakeData", 10),
            ("SteeringPinion_Data", 100),
            ("EPAS_INFO", 50),
            ("Lane_Assist_Data3_FD1", 33),
            ("Steering_Data_FD1", 10),
            ("BodyInfo_3_FD1", 2),
            ("RCMStatusMessage2_FD1", 10),
        ]

        if CP.transmissionType == TransmissionType.automatic:
            signals += [
                ("TrnGear_D_RqDrv",
                 "Gear_Shift_by_Wire_FD1"),  # GWM transmission gear position
            ]
            checks += [
                ("Gear_Shift_by_Wire_FD1", 10),
            ]
        elif CP.transmissionType == TransmissionType.manual:
            signals += [
                ("CluPdlPos_Pc_Meas",
                 "Engine_Clutch_Data"),  # PCM clutch (pct)
                ("RvrseLghtOn_B_Stat",
                 "BCM_Lamp_Stat_FD1"),  # BCM reverse light
            ]
            checks += [
                ("Engine_Clutch_Data", 33),
                ("BCM_Lamp_Stat_FD1", 1),
            ]

        if CP.enableBsm:
            signals += [
                ("SodDetctLeft_D_Stat",
                 "Side_Detect_L_Stat"),  # Blindspot sensor, left
                ("SodDetctRight_D_Stat",
                 "Side_Detect_R_Stat"),  # Blindspot sensor, right
            ]
            checks += [
                ("Side_Detect_L_Stat", 5),
                ("Side_Detect_R_Stat", 5),
            ]

        return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks,
                         CANBUS.main)
コード例 #22
0
ファイル: carstate.py プロジェクト: OzKnight2013/openwaifu
def get_can_parser(CP):

    signals = [
        # sig_name, sig_address, default
        ("WHL_SPD_FL", "WHL_SPD11", 0),
        ("WHL_SPD_FR", "WHL_SPD11", 0),
        ("WHL_SPD_RL", "WHL_SPD11", 0),
        ("WHL_SPD_RR", "WHL_SPD11", 0),
        ("YAW_RATE", "ESP12", 0),
        ("CF_Gway_DrvSeatBeltInd", "CGW4", 1),
        ("CF_Gway_DrvSeatBeltSw", "CGW1", 0),
        ("CF_Gway_TSigLHSw", "CGW1", 0),
        ("CF_Gway_TurnSigLh", "CGW1", 0),
        ("CF_Gway_TSigRHSw", "CGW1", 0),
        ("CF_Gway_TurnSigRh", "CGW1", 0),
        ("CF_Gway_ParkBrakeSw", "CGW1", 0),
        ("BRAKE_ACT", "EMS12", 0),
        ("PV_AV_CAN", "EMS12", 0),
        ("TPS", "EMS12", 0),
        ("CYL_PRES", "ESP12", 0),
        ("CF_Clu_CruiseSwState", "CLU11", 0),
        ("CF_Clu_CruiseSwMain", "CLU11", 0),
        ("CF_Clu_SldMainSW", "CLU11", 0),
        ("CF_Clu_ParityBit1", "CLU11", 0),
        ("CF_Clu_VanzDecimal", "CLU11", 0),
        ("CF_Clu_Vanz", "CLU11", 0),
        ("CF_Clu_SPEED_UNIT", "CLU11", 0),
        ("CF_Clu_DetentOut", "CLU11", 0),
        ("CF_Clu_RheostatLevel", "CLU11", 0),
        ("CF_Clu_CluInfo", "CLU11", 0),
        ("CF_Clu_AmpInfo", "CLU11", 0),
        ("CF_Clu_AliveCnt1", "CLU11", 0),
        ("ACCEnable", "TCS13", 0),
        ("ACC_REQ", "TCS13", 0),
        ("BrakeLight", "TCS13", 0),
        ("DriverBraking", "TCS13", 0),
        ("DriverOverride", "TCS13", 0),
        ("ESC_Off_Step", "TCS15", 0),
        ("CF_Lvr_GearInf", "LVR11",
         0),  #Transmission Gear (0 = N or P, 1-8 = Fwd, 14 = Rev)
    ]

    checks = [
        # address, frequency
        ("TCS15", 10),
        ("TCS13", 50),
        ("CLU11", 50),
        ("ESP12", 100),
        ("CGW1", 10),
        ("CGW4", 5),
        ("WHL_SPD11", 50),
    ]
    if not CP.mdpsBus:
        signals += [("CR_Mdps_StrColTq", "MDPS12", 0),
                    ("CF_Mdps_Def", "MDPS12", 0),
                    ("CF_Mdps_ToiActive", "MDPS12", 0),
                    ("CF_Mdps_ToiUnavail", "MDPS12", 0),
                    ("CF_Mdps_MsgCount2", "MDPS12", 0),
                    ("CF_Mdps_Chksum2", "MDPS12", 0),
                    ("CF_Mdps_ToiFlt", "MDPS12", 0),
                    ("CF_Mdps_SErr", "MDPS12", 0),
                    ("CR_Mdps_StrTq", "MDPS12", 0),
                    ("CF_Mdps_FailStat", "MDPS12", 0),
                    ("CR_Mdps_OutTq", "MDPS12", 0)]
        checks += [("MDPS12", 50)]
    if not CP.sasBus:
        signals += [
            ("SAS_Angle", "SAS11", 0),
            ("SAS_Speed", "SAS11", 0),
        ]
        checks += [("SAS11", 100)]
    if CP.sccBus == -1:
        signals += [
            ("CRUISE_LAMP_M", "EMS16", 0),
            ("CF_Lvr_CruiseSet", "LVR12", 0),
        ]
    elif not CP.sccBus:
        signals += [
            ("MainMode_ACC", "SCC11", 0),
            ("VSetDis", "SCC11", 0),
            ("SCCInfoDisplay", "SCC11", 0),
            ("ACC_ObjDist", "SCC11", 0),
            ("TauGapSet", "SCC11", 0),
            ("ACCMode", "SCC12", 0),
            ("CF_VSM_Prefill", "SCC12", 0),
            ("CF_VSM_DecCmdAct", "SCC12", 0),
            ("CF_VSM_HBACmd", "SCC12", 0),
            ("CF_VSM_Warn", "SCC12", 0),
            ("CF_VSM_Stat", "SCC12", 0),
            ("CF_VSM_BeltCmd", "SCC12", 0),
            ("ACCFailInfo", "SCC12", 0),
            ("ACCMode", "SCC12", 0),
            ("StopReq", "SCC12", 0),
            ("CR_VSM_DecCmd", "SCC12", 0),
            ("aReqMax", "SCC12", 0),
            ("TakeOverReq", "SCC12", 0),
            ("PreFill", "SCC12", 0),
            ("aReqMin", "SCC12", 0),
            ("CF_VSM_ConfMode", "SCC12", 0),
            ("AEB_Failinfo", "SCC12", 0),
            ("AEB_Status", "SCC12", 0),
            ("AEB_CmdAct", "SCC12", 0),
            ("AEB_StopReq", "SCC12", 0),
            ("CR_VSM_Alive", "SCC12", 0),
            ("CR_VSM_ChkSum", "SCC12", 0),
        ]
        checks += [
            ("SCC11", 50),
            ("SCC12", 50),
        ]
    if CP.carFingerprint in FEATURES["use_cluster_gears"]:
        signals += [
            ("CF_Clu_InhibitD", "CLU15", 0),
            ("CF_Clu_InhibitP", "CLU15", 0),
            ("CF_Clu_InhibitN", "CLU15", 0),
            ("CF_Clu_InhibitR", "CLU15", 0),
        ]
    elif CP.carFingerprint in FEATURES["use_tcu_gears"]:
        signals += [
            ("CUR_GR", "TCU12", 0),
        ]
    elif CP.carFingerprint in FEATURES["use_elect_gears"]:
        signals += [
            ("Elect_Gear_Shifter", "ELECT_GEAR", 0),
        ]
    else:
        signals += [
            ("CF_Lvr_Gear", "LVR12", 0),
        ]
    return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, 0)
コード例 #23
0
ファイル: carstate.py プロジェクト: kadupitiya/openpilot
    def get_can_parser(CP):
        signals = [
            # sig_name, sig_address
            ("LWI_Lenkradwinkel", "LWI_01"),  # Absolute steering angle
            ("LWI_VZ_Lenkradwinkel", "LWI_01"),  # Steering angle sign
            ("LWI_Lenkradw_Geschw", "LWI_01"),  # Absolute steering rate
            ("LWI_VZ_Lenkradw_Geschw", "LWI_01"),  # Steering rate sign
            ("ESP_VL_Radgeschw_02", "ESP_19"),  # ABS wheel speed, front left
            ("ESP_VR_Radgeschw_02", "ESP_19"),  # ABS wheel speed, front right
            ("ESP_HL_Radgeschw_02", "ESP_19"),  # ABS wheel speed, rear left
            ("ESP_HR_Radgeschw_02", "ESP_19"),  # ABS wheel speed, rear right
            ("ESP_Gierrate", "ESP_02"),  # Absolute yaw rate
            ("ESP_VZ_Gierrate", "ESP_02"),  # Yaw rate sign
            ("ZV_FT_offen", "Gateway_72"),  # Door open, driver
            ("ZV_BT_offen", "Gateway_72"),  # Door open, passenger
            ("ZV_HFS_offen", "Gateway_72"),  # Door open, rear left
            ("ZV_HBFS_offen", "Gateway_72"),  # Door open, rear right
            ("ZV_HD_offen", "Gateway_72"),  # Trunk or hatch open
            ("Comfort_Signal_Left", "Blinkmodi_02"
             ),  # Left turn signal including comfort blink interval
            ("Comfort_Signal_Right", "Blinkmodi_02"
             ),  # Right turn signal including comfort blink interval
            ("AB_Gurtschloss_FA", "Airbag_02"),  # Seatbelt status, driver
            ("AB_Gurtschloss_BF", "Airbag_02"),  # Seatbelt status, passenger
            ("ESP_Fahrer_bremst", "ESP_05"),  # Brake pedal pressed
            ("ESP_Bremsdruck", "ESP_05"),  # Brake pressure applied
            ("MO_Fahrpedalrohwert_01", "Motor_20"),  # Accelerator pedal value
            ("EPS_Lenkmoment", "LH_EPS_03"),  # Absolute driver torque input
            ("EPS_VZ_Lenkmoment", "LH_EPS_03"),  # Driver torque input sign
            ("EPS_HCA_Status", "LH_EPS_03"),  # EPS HCA control status
            ("ESP_Tastung_passiv", "ESP_21"),  # Stability control disabled
            ("ESP_Haltebestaetigung", "ESP_21"),  # ESP hold confirmation
            ("KBI_Handbremse", "Kombi_01"),  # Manual handbrake applied
            ("TSK_Status",
             "TSK_06"),  # ACC engagement status from drivetrain coordinator
            ("GRA_Hauptschalter", "GRA_ACC_01"),  # ACC button, on/off
            ("GRA_Abbrechen", "GRA_ACC_01"),  # ACC button, cancel
            ("GRA_Tip_Setzen", "GRA_ACC_01"),  # ACC button, set
            ("GRA_Tip_Hoch", "GRA_ACC_01"),  # ACC button, increase or accel
            ("GRA_Tip_Runter", "GRA_ACC_01"),  # ACC button, decrease or decel
            ("GRA_Tip_Wiederaufnahme", "GRA_ACC_01"),  # ACC button, resume
            ("GRA_Verstellung_Zeitluecke",
             "GRA_ACC_01"),  # ACC button, time gap adj
            ("GRA_Typ_Hauptschalter", "GRA_ACC_01"),  # ACC main button type
            ("GRA_Tip_Stufe_2", "GRA_ACC_01"),  # unknown related to stalk type
            ("GRA_ButtonTypeInfo",
             "GRA_ACC_01"),  # unknown related to stalk type
            ("COUNTER", "GRA_ACC_01"),  # GRA_ACC_01 CAN message counter
        ]

        checks = [
            # sig_address, frequency
            ("LWI_01", 100
             ),  # From J500 Steering Assist with integrated sensors
            ("LH_EPS_03",
             100),  # From J500 Steering Assist with integrated sensors
            ("ESP_19", 100),  # From J104 ABS/ESP controller
            ("ESP_05", 50),  # From J104 ABS/ESP controller
            ("ESP_21", 50),  # From J104 ABS/ESP controller
            ("Motor_20", 50),  # From J623 Engine control module
            ("TSK_06", 50),  # From J623 Engine control module
            ("ESP_02", 50),  # From J104 ABS/ESP controller
            ("GRA_ACC_01", 33
             ),  # From J533 CAN gateway (via LIN from steering wheel controls)
            ("Gateway_72", 10),  # From J533 CAN gateway (aggregated data)
            ("Airbag_02", 5),  # From J234 Airbag control module
            ("Kombi_01", 2),  # From J285 Instrument cluster
            (
                "Blinkmodi_02", 1
            ),  # From J519 BCM (sent at 1Hz when no lights active, 50Hz when active)
        ]

        if CP.transmissionType == TransmissionType.automatic:
            signals.append(
                ("GE_Fahrstufe",
                 "Getriebe_11"))  # Auto trans gear selector position
            checks.append(("Getriebe_11",
                           20))  # From J743 Auto transmission control module
        elif CP.transmissionType == TransmissionType.direct:
            signals.append(
                ("GearPosition", "EV_Gearshift"))  # EV gear selector position
            checks.append(
                ("EV_Gearshift", 10))  # From J??? unknown EV control module
        elif CP.transmissionType == TransmissionType.manual:
            signals += [
                ("MO_Kuppl_schalter", "Motor_14"),  # Clutch switch
                ("BCM1_Rueckfahrlicht_Schalter", "Gateway_72")
            ]  # Reverse light from BCM
            checks.append(("Motor_14", 10))  # From J623 Engine control module

        if CP.networkLocation == NetworkLocation.fwdCamera:
            # Radars are here on CANBUS.pt
            signals += MqbExtraSignals.fwd_radar_signals
            checks += MqbExtraSignals.fwd_radar_checks
            if CP.enableBsm:
                signals += MqbExtraSignals.bsm_radar_signals
                checks += MqbExtraSignals.bsm_radar_checks

        return CANParser(DBC_FILES.mqb, signals, checks, CANBUS.pt)