mazda gen3

This commit is contained in:
MoreTore
2025-06-05 15:07:33 -05:00
parent 09a8b34469
commit 36a2d5358d
8 changed files with 798 additions and 24 deletions
+633
View File
@@ -0,0 +1,633 @@
VERSION ""
NS_ :
NS_DESC_
CM_
BA_DEF_
BA_
VAL_
CAT_DEF_
CAT_
FILTER
BA_DEF_DEF_
EV_DATA_
ENVVAR_DATA_
SGTYPE_
SGTYPE_VAL_
BA_DEF_SGTYPE_
BA_SGTYPE_
SIG_TYPE_REF_
VAL_TABLE_
SIG_GROUP_
SIG_VALTYPE_
SIGTYPE_VALTYPE_
BO_TX_BU_
BA_DEF_REL_
BA_REL_
BA_DEF_DEF_REL_
BU_SG_REL_
BU_EV_REL_
BU_BO_REL_
SG_MUL_VAL_
BS_:
BU_: XXX
BO_ 16 STEER_TORQUE_VB: 8 XXX
SG_ STEER_TORQUE_SENSOR : 5|13@0+ (1,-4000) [0|15] "" XXX
SG_ NEW_SIGNAL_12 : 7|2@0+ (1,0) [0|15] "" XXX
SG_ STEER_TORQUE_MOTOR : 8|13@0+ (0.05,-205) [0|15] "" XXX
SG_ BRAKE_PREASURE : 27|12@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_1 : 43|4@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_5 : 47|4@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_3 : 51|4@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_4 : 55|4@0+ (1,0) [0|15] "" XXX
SG_ CHKSUM : 63|8@0- (1,0) [0|15] "" XXX
BO_ 17 STEER_TORQUE_VB_2: 8 XXX
SG_ STEER_TORQUE_MOTOR : 7|16@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_3 : 23|12@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 27|14@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 45|6@0+ (1,0) [0|15] "" XXX
SG_ CTR : 51|4@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_5 : 55|4@0+ (1,0) [0|15] "" XXX
SG_ CHKSUM : 63|8@0+ (1,0) [0|255] "" XXX
BO_ 18 STEER_VB: 8 XXX
SG_ STEER_ANGLE : 25|14@0- (1,375) [0|65536] "" XXX
SG_ STEER_LEFT_BIT : 26|1@0+ (1,0) [0|1] "" XXX
SG_ CTR : 41|2@0+ (1,0) [0|3] "" XXX
SG_ ENGINE_OFF : 43|2@0+ (1,0) [0|63] "" XXX
SG_ NEW_SIGNAL_2 : 53|6@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_3 : 55|2@0+ (1,0) [0|15] "" XXX
BO_ 20 NEW_MSG_29: 8 XXX
SG_ RIGHT_BLINK_CLOCK : 23|8@0+ (1,0) [0|1] "" XXX
BO_ 22 CRZ_CTRL_BTNS: 8 XXX
SG_ SIGNAL : 45|1@0+ (1,0) [0|15] "" XXX
SG_ NOT_SIGNAL : 46|1@0+ (1,0) [0|3] "" XXX
SG_ CRZ_CTRL_BTN_PRESSED : 48|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_2 : 51|3@0+ (1,0) [0|7] "" XXX
BO_ 24 BRAKE_PEDAL_VB: 8 XXX
SG_ BRAKE_PEDAL_PRESSED_AND_ENGINE_ON : 0|1@0+ (1,0) [0|3] "" XXX
SG_ NOT_BRAKE_PEDAL_PRESSED : 6|1@0+ (1,0) [0|3] "" XXX
SG_ BRAKE_PEDAL_PRESSED : 7|1@0+ (1,0) [0|65535] "" XXX
SG_ NOT_BRAKE_PEDAL_PRESSED_AND_ENGINE_ON : 15|1@0+ (1,0) [0|7] "" XXX
BO_ 26 ENGINE_DATA_VB: 8 XXX
SG_ RPM : 7|13@0+ (1,0) [0|15] "" XXX
SG_ PEDAL_GAS : 39|10@0+ (1,0) [0|15] "" XXX
SG_ ENGINE_ON : 52|1@0+ (1,0) [0|15] "" XXX
SG_ CHKSUM : 63|8@0- (1,0) [0|15] "" XXX
BO_ 29 WHEEL: 8 XXX
SG_ ENCODER_1 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ ENCODER_2 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ SPEED : 39|16@0+ (1,0) [0|127] "" XXX
SG_ NEW_SIGNAL_2 : 51|4@0+ (1,0) [0|15] "" XXX
SG_ STANDSTILL : 52|1@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_6 : 55|3@0+ (1,0) [0|7] "" XXX
SG_ NEW_SIGNAL_1 : 63|8@0+ (1,0) [0|255] "" XXX
BO_ 31 GEAR_VB: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_2 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ GEAR : 36|4@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 55|16@0+ (1,0) [0|65535] "" XXX
BO_ 37 BLANK_1: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_2 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_3 : 39|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 55|16@0+ (1,0) [0|65535] "" XXX
BO_ 44 BLANK_2: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|16777215] "" XXX
SG_ NEW_SIGNAL_4 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_2 : 39|16@0+ (1,0) [0|16777215] "" XXX
SG_ NEW_SIGNAL_3 : 55|16@0+ (1,0) [0|65535] "" XXX
BO_ 59 STEER_RATE: 8 XXX
SG_ STEER_ANGLE : 23|16@0+ (0.05,-1600) [-500|500] "" XXX
SG_ CHKSUM : 39|8@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_1 : 43|4@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_2 : 47|4@0+ (1,0) [0|15] "" XXX
SG_ STEER_ANGLE_RATE : 55|8@0+ (0.05,0) [0|65535] "" XXX
BO_ 96 STEER2: 8 XXX
SG_ STEER__ : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ SPEED : 18|16@0- (0.00621371,-62.1371) [-65635|65635] "MPH" XXX
SG_ CAR_MOVING_FORWARD : 21|1@0+ (1,0) [0|15] "" XXX
SG_ CAR_REVERSING : 22|1@0+ (1,0) [0|1] "" XXX
SG_ ENGINE_OFF : 23|1@0+ (1,0) [0|1] "" XXX
SG_ TURN_OFF : 32|1@0+ (1,0) [0|1] "" XXX
SG_ ENGINE_ON : 33|1@0+ (1,0) [0|1] "" XXX
SG_ TURN_ON : 34|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_4 : 45|1@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_5 : 48|4@1+ (1,0) [0|15] "" XXX
SG_ CTR : 55|4@0+ (1,0) [0|15] "" XXX
SG_ CHKSUM : 63|8@0+ (1,0) [0|255] "" XXX
BO_ 117 NEW_MSG_31_MAIN: 8 XXX
BO_ 120 BCM_ECHO_MAYBE: 8 XXX
SG_ EPS_MOTOR_TORQUE_MAYBE : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ BRAKE_MAYBE : 39|8@0+ (1,0) [0|65535] "" XXX
BO_ 121 NEW_MSG_39: 8 XXX
SG_ NEW_SIGNAL_3 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_2 : 16|2@1+ (1,0) [0|3] "" XXX
SG_ NEW_SIGNAL_1 : 25|10@0+ (1,0) [0|3] "" XXX
BO_ 128 RADARS: 8 XXX
SG_ NEW_SIGNAL_3 : 7|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_4 : 15|1@0+ (1,0) [0|255] "" XXX
SG_ REAR_LEFT : 17|1@0+ (1,0) [0|1] "" XXX
SG_ FRONT_RIGHT : 18|1@0+ (1,0) [0|1] "" XXX
SG_ FRONT_LEFT : 19|1@0+ (1,0) [0|255] "" XXX
SG_ REAR_RIGHT : 20|1@0+ (1,0) [0|15] "" XXX
SG_ FRONT : 21|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_1 : 59|4@0+ (1,0) [0|255] "" XXX
BO_ 129 NEW_MSG_19: 8 XXX
SG_ NEW_SIGNAL_2 : 15|1@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_3 : 31|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 47|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_5 : 56|8@1+ (1,0) [0|15] "" XXX
BO_ 130 STEER: 8 XXX
SG_ STEER_ANGLE : 23|14@0+ (0.05,-400) [0|65535] "" XXX
SG_ NEW_SIGNAL_2 : 39|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 55|16@0- (1,0) [0|65535] "" XXX
BO_ 132 NEW_MSG_84: 8 XXX
SG_ STEER_ANGLE : 23|16@0+ (1,0) [0|65535] "" XXX
BO_ 133 NEW_MSG_35: 8 XXX
SG_ STEER_ANGLE : 23|16@0+ (1,0) [0|65535] "" XXX
BO_ 134 STEER_OLD: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ STEER_ANGLE : 25|14@0- (0.1,36) [0|1023] "" XXX
BO_ 135 NEW_MSG_87: 8 XXX
SG_ STEER_ANGLE : 23|16@0+ (1,0) [0|65535] "" XXX
BO_ 136 NEW_MSG_40: 8 XXX
SG_ NEW_SIGNAL_4 : 4|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_5 : 5|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_6 : 6|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_1 : 36|13@0+ (1,0) [0|8191] "" XXX
SG_ NEW_SIGNAL_2 : 59|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 60|1@0+ (1,0) [0|1] "" XXX
BO_ 137 SPEED: 8 XXX
SG_ SPEED : 23|16@0+ (1,-12) [0|65535] "" XXX
BO_ 145 BLINK_INFO: 8 XXX
SG_ RIGHT_BLINK : 12|1@0+ (1,0) [0|3] "" XXX
SG_ LEFT_BLINK : 13|1@0+ (1,0) [0|3] "" XXX
SG_ Speed : 27|12@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 40|8@1+ (1,0) [0|255] "" XXX
SG_ CTR : 51|4@0+ (1,0) [0|15] "" XXX
SG_ CHKSUM : 63|8@0+ (1,0) [0|15] "" XXX
BO_ 151 NEW_MSG_97: 8 XXX
BO_ 155 NEW_MSG_43: 8 XXX
SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|16777215] "" XXX
SG_ NEW_SIGNAL_2 : 15|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_3 : 23|8@0+ (1,0) [0|255] "" XXX
BO_ 157 CRZ_BTNS: 8 XXX
SG_ RES : 2|1@0+ (1,0) [0|1] "" XXX
SG_ SET_M : 3|1@0+ (1,0) [0|1] "" XXX
SG_ SET_P : 4|1@0+ (1,0) [0|1] "" XXX
SG_ CAN : 5|1@0+ (1,0) [0|1] "" XXX
SG_ STATIC_0 : 7|2@0+ (1,0) [0|7] "" XXX
SG_ STATIC_1 : 10|7@0+ (1,0) [0|15] "" XXX
SG_ MODE_LKAS : 11|1@0+ (1,0) [0|1] "" XXX
SG_ MODE_ACC : 13|1@0+ (1,0) [0|3] "" XXX
SG_ STATIC_2 : 19|32@0+ (1,0) [0|7] "" XXX
SG_ CTR : 48|4@1+ (1,0) [0|15] "" XXX
SG_ CHKSUM : 56|8@1+ (1,0) [0|63] "" XXX
BO_ 159 BRAKE_PEDAL: 8 XXX
SG_ REVERSE : 1|1@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_1 : 2|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_2 : 4|1@1+ (1,0) [0|3] "" XXX
SG_ NEW_SIGNAL_3 : 40|6@1+ (1,0) [0|15] "" XXX
SG_ BRAKE_NOT_PRESSED : 58|1@0+ (1,0) [0|1] "" XXX
SG_ BRAKE_PEDAL_PRESSED : 59|1@0+ (1,0) [0|1] "" XXX
BO_ 253 NEW_MSG_34: 8 XXX
SG_ NEW_SIGNAL_1 : 36|5@0+ (1,0) [0|31] "" XXX
BO_ 256 CAM_Start: 8 XXX
SG_ DISTANCE_LEAD_CAR : 0|12@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 2|2@0+ (1,0) [0|1] "" XXX
SG_ ACTIVE_TARGET : 4|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 20|12@0+ (1,0) [0|7] "" XXX
SG_ NEW_SIGNAL_5 : 24|12@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_10 : 44|12@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_7 : 56|4@1+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_8 : 61|2@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_2 : 63|2@0+ (1,0) [0|3] "" XXX
BO_ 257 LKAS: 8 XXX
SG_ LEAD_DIST : 0|12@0+ (1,0) [0|255] "" XXX
SG_ SET_19 : 2|2@0+ (1,0) [0|255] "" XXX
SG_ ANGLE_TARGET : 20|12@0+ (1,0) [0|4095] "" XXX
SG_ UNKNOWN : 24|12@0+ (1,0) [0|4095] "" XXX
SG_ MAX_TORQUE__ : 44|12@0- (1,0) [0|4095] "" XXX
SG_ SET_0 : 48|1@1+ (1,0) [0|3] "" XXX
SG_ CTR : 59|4@0+ (1,0) [0|255] "" XXX
SG_ CTR_ACT : 61|2@0+ (1,0) [0|3] "" XXX
SG_ SET_0_1 : 63|2@0+ (1,0) [0|3] "" XXX
BO_ 258 NEW_MSG_3: 8 XXX
SG_ NEW_SIGNAL_6 : 1|2@1+ (1,0) [0|3] "" XXX
SG_ NEW_SIGNAL_1 : 13|10@0- (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 18|10@0- (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_4 : 39|10@0- (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_5 : 44|10@0- (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 59|4@0+ (1,0) [0|255] "" XXX
BO_ 259 NEW_MSG_5: 8 XXX
SG_ NEW_SIGNAL_1 : 0|12@0- (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 19|11@0- (1,0) [0|10000000] "" XXX
SG_ NEW_SIGNAL_3 : 39|10@0- (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_4 : 44|10@0- (1,0) [0|1] "" XXX
BO_ 260 NEW_MSG_6: 8 XXX
SG_ NEW_SIGNAL_1 : 0|12@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 20|12@0- (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 24|12@0+ (1,0) [0|1] "" XXX
BO_ 261 NEW_MSG_7: 8 XXX
SG_ NEW_SIGNAL_1 : 15|8@0+ (1,0) [0|255] "" XXX
BO_ 262 NEW_MSG_8: 8 XXX
SG_ NEW_SIGNAL_2 : 7|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 15|8@0- (1,0) [0|255] "" XXX
BO_ 263 NEW_MSG_9: 8 XXX
SG_ NEW_SIGNAL_1 : 15|8@0+ (1,0) [0|255] "" XXX
BO_ 264 NEW_MSG_2: 8 XXX
SG_ CRZ_CTRL_PRESSED : 48|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_2 : 49|3@1+ (1,0) [0|7] "" XXX
SG_ NEW_SIGNAL_1 : 56|8@1+ (1,0) [0|15] "" XXX
BO_ 273 NEW_MSG_26: 8 XXX
SG_ NEW_SIGNAL_1 : 23|4@0+ (1,0) [0|3] "" XXX
BO_ 274 NEW_MSG_27: 8 XXX
SG_ NEW_SIGNAL_1 : 39|8@0+ (1,0) [0|1] "" XXX
BO_ 277 NEW_MSG_24: 8 XXX
SG_ NEW_SIGNAL_1 : 47|8@0+ (1,0) [0|1] "" XXX
BO_ 278 NEW_MSG_25: 8 XXX
BO_ 288 NEW_MSG_30: 8 XXX
BO_ 289 NEW_MSG_28: 8 XXX
SG_ NEW_SIGNAL_1 : 55|8@0+ (1,0) [0|1] "" XXX
BO_ 290 NEW_MSG_23: 8 XXX
SG_ NEW_SIGNAL_1 : 31|5@0+ (1,0) [0|255] "" XXX
BO_ 291 NEW_MSG_22: 8 XXX
SG_ NEW_SIGNAL_1 : 39|8@0+ (1,0) [0|255] "" XXX
BO_ 292 NEW_MSG_18: 8 XXX
SG_ NEW_SIGNAL_1 : 63|8@0+ (1,0) [0|255] "" XXX
BO_ 293 NEW_MSG_12: 8 XXX
SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_3 : 19|4@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_2 : 39|16@0+ (1,0) [0|255] "" XXX
BO_ 294 NEW_MSG_13: 8 XXX
SG_ NEW_SIGNAL_3 : 7|16@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_1 : 59|4@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 61|2@0+ (1,0) [0|1] "" XXX
BO_ 304 CAM_LANES: 8 XXX
SG_ DISTANCE_TO_LEFT_LANE : 1|10@0- (1,0) [0|1] "" XXX
SG_ RIGHT_LANE_DETECTED : 4|1@0+ (1,0) [0|255] "" XXX
SG_ LEFT_LANE_DETECTED : 7|1@0+ (1,0) [0|1] "" XXX
SG_ DISTANCE_TO_RIGHT_LANE : 23|10@0- (1,0) [0|2047] "" XXX
SG_ DISTANCE_TO_LEFT_LANE_LOW_RES : 29|8@0+ (1,0) [0|4095] "" XXX
SG_ DISTANCE_TO_RIGHT_LANE_LOW_RES : 37|8@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_3 : 59|4@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_4 : 61|2@0+ (1,0) [0|3] "" XXX
BO_ 305 CAM_LANES_2_MAYBE: 8 XXX
SG_ NEW_SIGNAL_4 : 23|8@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_5 : 56|4@1+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_6 : 61|2@0+ (1,0) [0|3] "" XXX
BO_ 306 CAM_LANE_3_MAYBE: 8 XXX
SG_ STEER : 7|10@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_2 : 13|10@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 19|10@0+ (1,0) [0|63] "" XXX
SG_ NEW_SIGNAL_4 : 25|10@0+ (1,0) [0|1] "" XXX
SG_ LANE_DETECTED_1 : 44|1@0+ (1,0) [0|1] "" XXX
SG_ LANE_DETECTED_2 : 45|1@0+ (1,0) [0|1] "" XXX
BO_ 307 NEW_MSG_1: 8 XXX
SG_ NEW_SIGNAL_4 : 7|10@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_2 : 13|10@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_1 : 19|10@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 25|10@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_5 : 61|6@0+ (1,0) [0|1] "" XXX
BO_ 308 ACC_POSSIBLY: 8 XXX
SG_ NEW_SIGNAL_2 : 0|7@0+ (1,0) [0|63] "" XXX
SG_ NEW_SIGNAL_6 : 4|1@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_4 : 18|7@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_5 : 36|7@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_7 : 37|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 54|7@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_8 : 55|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_1 : 63|8@0+ (1,0) [0|255] "" XXX
BO_ 310 NEW_MSG_10: 8 XXX
SG_ NEW_SIGNAL_2 : 47|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 56|4@1+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_3 : 61|2@0+ (1,0) [0|3] "" XXX
BO_ 320 NEW_MSG_4: 8 XXX
SG_ NEW_SIGNAL_4 : 16|1@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 27|7@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_1 : 36|9@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 43|6@0+ (1,0) [0|1] "" XXX
BO_ 321 NEW_MSG_11: 8 XXX
SG_ NEW_SIGNAL_1 : 5|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_2 : 32|1@0+ (1,0) [0|1] "" XXX
BO_ 336 NEW_MSG_20: 8 XXX
SG_ NEW_SIGNAL_2 : 7|8@0+ (1,0) [0|4095] "" XXX
SG_ NEW_SIGNAL_1 : 11|12@0+ (1,0) [0|127] "" XXX
SG_ NEW_SIGNAL_3 : 31|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_4 : 39|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_5 : 47|8@0+ (1,0) [0|255] "" XXX
BO_ 342 NEW_MSG_21: 8 XXX
SG_ NEW_SIGNAL_7 : 7|16@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_8 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_5 : 39|16@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_6 : 40|4@1+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_3 : 48|4@1+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_4 : 55|4@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_1 : 56|4@1+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_2 : 63|4@0+ (1,0) [0|15] "" XXX
BO_ 352 NEW_MSG_14: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_3 : 39|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 55|16@0+ (1,0) [0|65535] "" XXX
BO_ 354 CAM_KEEP_ALIVE_1: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_2 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_3 : 39|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 55|30@0+ (1,0) [0|65535] "" XXX
BO_ 355 NEW_MSG_15: 8 XXX
SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|127] "" XXX
BO_ 356 NEW_MSG_16: 8 XXX
SG_ NEW_SIGNAL_1 : 56|4@1+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_2 : 61|2@0+ (1,0) [0|3] "" XXX
BO_ 357 NEW_MSG_17: 8 XXX
SG_ NEW_SIGNAL_2 : 7|32@0+ (1,0) [0|4294967295] "" XXX
SG_ NEW_SIGNAL_3 : 56|4@1+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_1 : 61|2@0+ (1,0) [0|3] "" XXX
BO_ 358 CAM_End: 8 XXX
SG_ NEW_SIGNAL_4 : 11|14@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 31|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_3 : 59|4@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_2 : 61|2@0+ (1,0) [0|3] "" XXX
BO_ 512 NEW_MSG_32: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_2 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_3 : 39|16@0+ (1,0) [0|65535] "" XXX
BO_ 514 ENGINE_DATA: 8 XXX
SG_ RPM : 7|14@0+ (1,0) [0|8191] "" XXX
SG_ NEW_SIGNAL_1 : 19|12@0+ (1,0) [0|255] "" XXX
SG_ PEDAL_GAS : 39|10@0+ (1,0) [0|65535] "" XXX
SG_ ENGINE_ON : 52|1@0+ (1,0) [0|1] "" XXX
SG_ CHKSUM : 56|8@1+ (1,0) [0|255] "" XXX
BO_ 515 NEW_MSG_36: 8 XXX
SG_ NEW_SIGNAL_1 : 31|5@0+ (1,0) [0|31] "" XXX
BO_ 529 NEW_MSG_31: 8 XXX
SG_ NEW_SIGNAL_3 : 8|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_4 : 24|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_1 : 39|4@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_2 : 47|4@0+ (1,0) [0|15] "" XXX
BO_ 533 WHEEL_SPEEDS: 8 XXX
SG_ FL : 7|16@0+ (0.01,-100) [0|65535] "" XXX
SG_ FR : 23|16@0+ (0.01,-100) [0|65535] "" XXX
SG_ RL : 39|16@0+ (0.01,-100) [0|65535] "" XXX
SG_ RR : 55|16@0+ (0.01,-100) [0|65535] "" XXX
BO_ 535 SPEED_OLD: 8 XXX
SG_ SPEED : 39|16@0+ (0.01,0) [0|65535] "" XXX
BO_ 537 MANUAL_GEAR: 8 XXX
SG_ NEW_SIGNAL_2 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_3 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ GEAR : 33|2@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_4 : 55|16@0+ (1,0) [0|65535] "" XXX
BO_ 544 ACC: 8 XXX
SG_ NEW_SIGNAL_2 : 1|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_11 : 2|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_6 : 3|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_4 : 7|4@0+ (1,0) [0|15] "" XXX
SG_ ACCEL_CMD : 16|12@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_12 : 17|1@0+ (1,0) [0|1] "" XXX
SG_ ACC_ENABLED : 18|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_10 : 32|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_5 : 33|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_1 : 34|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_9 : 35|1@0+ (1,0) [0|1] "" XXX
SG_ ACC_ENABLED_2 : 36|1@1+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_13 : 40|2@1+ (1,0) [0|3] "" XXX
SG_ NEW_SIGNAL_8 : 45|4@0+ (1,0) [0|3] "" XXX
SG_ NEW_SIGNAL_7 : 46|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 47|1@0+ (1,0) [0|1] "" XXX
SG_ HOLD : 49|1@0+ (1,0) [0|255] "" XXX
SG_ RESUME : 54|1@0+ (1,0) [0|1] "" XXX
SG_ CHECKSUM : 56|8@1+ (1,0) [0|15] "" XXX
BO_ 546 ACC_2: 8 XXX
SG_ ACCEL_CMD : 0|12@0+ (1,0) [0|65535] "" XXX
SG_ ACC_NOT_ENABLED : 1|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_4 : 2|1@0+ (1,0) [0|1] "" XXX
SG_ CTR : 7|4@0+ (1,0) [0|15] "" XXX
SG_ ACC_ENABLED : 18|1@0+ (1,0) [0|255] "" XXX
SG_ BRAKE_RELATED : 20|1@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_2 : 31|16@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 47|16@0+ (1,0) [0|65535] "" XXX
SG_ CHKSUM : 63|8@0+ (1,0) [0|15] "" XXX
BO_ 547 NEW_MSG_223: 8 XXX
BO_ 552 GEAR: 8 XXX
SG_ NEW_SIGNAL_1 : 0|1@0+ (1,0) [0|1] "" XXX
SG_ SHIFT : 8|1@0+ (1,0) [0|1] "" XXX
SG_ TORQUE_CONVERTER_LOCK : 11|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_2 : 16|1@0+ (1,0) [0|1] "" XXX
SG_ GEAR : 33|4@1+ (1,0) [0|255] "" XXX
SG_ GEAR_SHIFT : 43|4@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_3 : 56|6@1+ (1,0) [0|63] "" XXX
BO_ 576 STEER_TORQUE: 8 XXX
SG_ STEER_TORQUE_SENSOR : 7|16@0+ (1,0) [0|65535] "" XXX
BO_ 585 EPS_LKAS: 8 XXX
SG_ LKAS_REQUEST : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ STEER_FEEL : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ COUNTER : 48|8@1+ (1,0) [0|255] "" XXX
SG_ CHECKSUM : 56|8@1+ (1,0) [0|255] "" XXX
BO_ 587 EPS_FEEDBACK: 8 XXX
SG_ STEER_TORQUE_SENSOR : 7|16@0- (1,0) [0|65535] "" XXX
SG_ CPU_0_VIOL : 23|8@0+ (1,0) [0|15] "" XXX
SG_ CPU_1_VIOL : 31|8@0+ (1,0) [0|255] "" XXX
SG_ CPU_2_VIOL : 39|8@0+ (1,0) [0|255] "" XXX
SG_ CPU_3_VIOL : 47|8@0+ (1,0) [0|255] "" XXX
SG_ CPU_1_STATE : 48|4@1+ (1,0) [0|15] "" XXX
SG_ CPU_0_STATE : 55|4@0+ (1,0) [0|15] "" XXX
SG_ CPU_3_STATE : 56|4@1+ (1,0) [0|15] "" XXX
SG_ CPU_2_STATE : 63|4@0+ (1,0) [0|15] "" XXX
BO_ 608 NEW_MSG_41: 8 XXX
SG_ NEW_SIGNAL_1 : 8|7@1+ (1,0) [0|15] "" XXX
BO_ 1034 KEEP_ALIVE_2: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_3 : 23|16@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_4 : 39|16@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_5 : 55|16@0+ (1,0) [0|255] "" XXX
BO_ 1066 NEW_MSG_42A: 8 XXX
BO_ 1067 NEW_MSG_33: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 23|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 42|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_5 : 43|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_6 : 44|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 45|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_7 : 47|8@0+ (1,0) [0|3] "" XXX
BO_ 1078 NEW_MSG_44: 8 XXX
SG_ IGNITION : 10|1@1+ (1,0) [0|255] "" XXX
BO_ 1087 BRAKE_PEDAL_BUS1: 8 XXX
SG_ NEW_SIGNAL_3 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_2 : 32|1@0+ (1,0) [0|1] "" XXX
SG_ BRAKE_PEDAL_PRESSED : 42|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_5 : 47|4@0+ (1,0) [0|15] "" XXX
BO_ 1098 CRUZE_STATE: 8 XXX
SG_ NEW_SIGNAL_7 : 1|1@0+ (1,0) [0|1] "" XXX
SG_ CRZ_STATE : 6|3@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_1 : 13|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_2 : 18|1@0+ (1,0) [0|1] "" XXX
SG_ CRZ_SPEED : 31|9@0+ (1,0) [0|255] "" XXX
SG_ DISTANCE_SETTING : 38|3@0+ (1,0) [0|4] "" XXX
SG_ NEW_SIGNAL_5 : 42|1@0+ (1,0) [0|1] "" XXX
SG_ STOCK_LKAS_MODE : 44|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_4 : 45|1@0+ (1,0) [0|1] "" XXX
BO_ 1103 NEW_MSG_42: 8 XXX
SG_ NEW_SIGNAL_1 : 12|12@0+ (1,0) [0|4095] "" XXX
BO_ 1120 CAM_KEEP_ALIVE_2: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_2 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_3 : 39|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 55|16@0+ (1,0) [0|65535] "" XXX
BO_ 1167 SYSTEM_SETTINGS: 8 XXX
SG_ IMPERIAL_UNIT : 15|1@0+ (1,0) [0|1] "" XXX
BO_ 1200 KEEP_ALIVE_3: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_3 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 39|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_2 : 55|16@0+ (1,0) [0|255] "" XXX
BO_ 1209 KEEP_ALIVE_1: 8 XXX
SG_ NEW_SIGNAL_8 : 4|5@0+ (1,0) [0|127] "" XXX
SG_ NEW_SIGNAL_7 : 15|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_6 : 23|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_5 : 31|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_4 : 39|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_3 : 47|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 55|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 63|8@0+ (1,0) [0|255] "" XXX
BO_ 1216 CAM_69: 8 XXX
SG_ NEW_SIGNAL_2 : 7|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_3 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 39|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_5 : 55|12@0+ (1,0) [0|7] "" XXX
SG_ NEW_SIGNAL_1 : 56|4@1+ (1,0) [0|15] "" XXX
BO_ 1436 CAM_71: 8 XXX
SG_ NEW_SIGNAL_1 : 7|16@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 23|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_3 : 39|16@0+ (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_4 : 55|16@0+ (1,0) [0|65535] "" XXX
BO_ 1866 NEW_MSG_37: 8 XXX
SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_2 : 15|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_3 : 23|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_4 : 31|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_5 : 39|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_6 : 47|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_7 : 55|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_8 : 63|8@0+ (1,0) [0|255] "" XXX
BO_ 1867 EPS_FEEDBACK2: 8 XXX
SG_ HALL2 : 7|16@0- (-1,0) [0|65535] "" XXX
SG_ HALL3 : 23|16@0- (-1,0) [0|65535] "" XXX
SG_ HALL4 : 39|16@0- (1,0) [0|65535] "" XXX
SG_ NEW_SIGNAL_5 : 55|8@0+ (1,0) [0|255] "" XXX
SG_ CTR : 63|8@0+ (1,0) [0|65535] "" XXX
BO_ 1868 EPS_FEEDBACK3: 8 XXX
SG_ OUT1 : 7|16@0+ (1,-32767) [0|65535] "" XXX
SG_ OUT2 : 23|16@0- (1,0) [0|65535] "" XXX
SG_ OUT3 : 39|16@0- (-1,0) [0|65535] "" XXX
SG_ OUT4 : 55|16@0- (-1,0) [0|65535] "" XXX
CM_ SG_ 31 GEAR "13-P, 12-R, 11-N, 1-6-D";
VAL_ 31 GEAR 13 "P" 12 "R" 11 "N" 1 "D" 2 "D" 3 "D" 4 "D" 5 "D" 6 "D";
VAL_ 537 GEAR 0 "P" 1 "D" 2 "R";
VAL_ 552 GEAR 13 "P" 12 "R" 11 "N" 1 "D" 2 "D" 3 "D" 4 "D" 5 "D" 6 "D";
VAL_ 552 GEAR_SHIFT 6 "6th" 5 "5th" 4 "4th" 3 "3rd" 2 "2nd" 1 "1st" 14 "Shift" 13 "Park" 11 "Neutral" 12 "Reverse";
VAL_ 1098 CRZ_STATE 1 "CRUISE_DISABLED" 2 "CRUISE_READY" 4 "GAS_OVERRIDE" 3 "CRUISE_ENABLE";
VAL_ 1098 DISTANCE_SETTING 4 "CLOSE" 3 "MEDIUM_CLOSE" 2 "MEDIUM_FAR" 1 "FAR" 0 "ACC_DISABLED";
+43 -6
View File
@@ -29,6 +29,9 @@
#define MAZDA_2019_CRZ_BTNS 0x9d // rx on main tx on camera. DBC: CRZ_BTNS
#define MAZDA_2019_ACC 0x220 // main bus. DBC: ACC
#define MAZDA_2023_SPEED 0x215 // main bus. DBC: WHEEL_SPEEDS
#define MAZDA_2023_BRAKE 0x9F // main bus
#define MAZDA_TI_LKAS 0x249
// CAN bus numbers
@@ -39,13 +42,16 @@
// param flag masks
const int FLAG_GEN1 = 1;
const int FLAG_GEN2 = 2;
const int FLAG_TORQUE_INTERCEPTOR = 4;
const int FLAG_RADAR_INTERCEPTOR = 8;
const int FLAG_NO_FSC = 16;
const int FLAG_NO_MRCC = 32;
const int FLAG_GEN3 = 4;
const int FLAG_TORQUE_INTERCEPTOR = 8;
const int FLAG_RADAR_INTERCEPTOR = 16;
const int FLAG_NO_FSC = 32;
const int FLAG_NO_MRCC = 64;
const int FLAG_MANUAL_TRANSMISSION = 128;
bool gen1 = false;
bool gen2 = false;
bool gen3 = false;
bool torque_interceptor = false;
bool radar_interceptor = false;
bool no_fsc = false;
@@ -110,6 +116,14 @@ RxCheck mazda_2019_rx_checks[] = {
{.msg = {{MAZDA_2019_STEER_TORQUE, 1, 8, .frequency = 50U}, { 0 }, { 0 }}},
};
RxCheck mazda_2023_rx_checks[] = {
{.msg = {{MAZDA_2023_BRAKE, 0, 8, .frequency = 5U}, { 0 }, { 0 }}},
{.msg = {{MAZDA_2019_GAS, 0, 8, .frequency = 100U}, { 0 }, { 0 }}},
{.msg = {{MAZDA_2019_CRUISE, 0, 8, .frequency = 10U}, { 0 }, { 0 }}},
{.msg = {{MAZDA_2023_SPEED, 0, 8, .frequency = 30U}, { 0 }, { 0 }}},
{.msg = {{MAZDA_2019_STEER_TORQUE, 1, 8, .frequency = 50U}, { 0 }, { 0 }}},
};
// track msgs coming from OP so that we know what CAM msgs to drop and what to forward
static void mazda_rx_hook(const CANPacket_t *to_push) {
int addr = GET_ADDR(to_push);
@@ -163,6 +177,25 @@ static void mazda_rx_hook(const CANPacket_t *to_push) {
generic_rx_checks(addr == MAZDA_2019_SPEED);
}
if (gen3) {
if (addr == MAZDA_2019_GAS) {
gas_pressed = (GET_BYTE(to_push, 4) || ((GET_BYTE(to_push, 5) & 0xC0U)));
}
if (addr == MAZDA_2023_BRAKE) {
brake_pressed = (GET_BYTE(to_push, 7) & 0x8U);
}
if (addr == MAZDA_2019_CRUISE) {
acc_main_on = true;
bool cruise_engaged = GET_BYTE(to_push, 0) & 0x30U;
bool pre_enable = GET_BYTE(to_push, 0) & 0x40U;
pcm_cruise_check((cruise_engaged || pre_enable));
}
if (addr == MAZDA_2023_SPEED) {
int speed = ( (GET_BYTE(to_push, 0) << 8) | (GET_BYTE(to_push, 1)) ) - 10000; // Front Left Wheel Speed
vehicle_moving = speed != 0;
}
generic_rx_checks(false); //TODO
}
}
if ((GET_BUS(to_push) == MAZDA_AUX)) {
@@ -171,7 +204,7 @@ static void mazda_rx_hook(const CANPacket_t *to_push) {
update_sample(&torque_driver, torque_driver_new);
}
if (addr == MAZDA_2019_STEER_TORQUE && gen2) {
if (addr == MAZDA_2019_STEER_TORQUE && (gen2 || gen3)) {
update_sample(&torque_driver, (int16_t)(GET_BYTE(to_push, 0) << 8 | GET_BYTE(to_push, 1)));
}
}
@@ -218,7 +251,7 @@ static bool mazda_tx_hook(const CANPacket_t *to_send) {
}
}
}
if (gen2 && (bus == MAZDA_AUX) && (addr == MAZDA_TI_LKAS)) {
if ((gen2 || gen3) && (bus == MAZDA_AUX) && (addr == MAZDA_TI_LKAS)) {
int desired_torque = (int16_t)((GET_BYTE(to_send, 0) << 8) | GET_BYTE(to_send, 1)); // signal is signed
if (steer_torque_cmd_checks(desired_torque, -1, MAZDA_2019_STEERING_LIMITS)) {
tx = false;
@@ -260,6 +293,7 @@ static safety_config mazda_init(uint16_t param) {
safety_config ret = BUILD_SAFETY_CFG(mazda_rx_checks, MAZDA_TX_MSGS);
gen1 = GET_FLAG(param, FLAG_GEN1);
gen2 = GET_FLAG(param, FLAG_GEN2);
gen3 = GET_FLAG(param, FLAG_GEN3);
radar_interceptor = GET_FLAG(param, FLAG_RADAR_INTERCEPTOR);
torque_interceptor = GET_FLAG(param, FLAG_TORQUE_INTERCEPTOR);
no_fsc = GET_FLAG(param, FLAG_NO_FSC);
@@ -281,6 +315,9 @@ static safety_config mazda_init(uint16_t param) {
if (gen2) {
ret = BUILD_SAFETY_CFG(mazda_2019_rx_checks, MAZDA_2019_TX_MSGS);
}
if (gen3) {
ret = BUILD_SAFETY_CFG(mazda_2023_rx_checks, MAZDA_2019_TX_MSGS);
}
return ret;
}
+7 -4
View File
@@ -244,10 +244,13 @@ class Panda:
FLAG_MAZDA_GEN1 = 1
FLAG_MAZDA_GEN2 = 2
FLAG_MAZDA_TORQUE_INTERCEPTOR = 4
FLAG_MAZDA_RADAR_INTERCEPTOR = 8
FLAG_MAZDA_NO_FSC = 16
FLAG_MAZDA_NO_MRCC = 32
FLAG_MAZDA_GEN3 = 4
FLAG_MAZDA_TORQUE_INTERCEPTOR = 8
FLAG_MAZDA_RADAR_INTERCEPTOR = 16
FLAG_MAZDA_NO_FSC = 32
FLAG_MAZDA_NO_MRCC = 64
FLAG_MAZDA_MANUAL_TRANSMISSION = 128
def __init__(self, serial: str | None = None, claim: bool = True, disable_checks: bool = True, can_speed_kbps: int = 500):
self._connect_serial = serial
+1 -1
View File
@@ -106,7 +106,7 @@ class CarController(CarControllerBase):
if self.frame % 2 == 0:
can_sends.extend(mazdacan.create_radar_command(self.packer, self.frame, CC.longActive, CS, hold))
else:
elif self.CP.flags & MazdaFlags.GEN2:
raw_acc_output = (CC.actuators.accel * 200) + 2000
if CC.longActive:
if self.params.get_bool("BlendedACC"):
+83 -3
View File
@@ -43,6 +43,8 @@ class CarState(CarStateBase):
self.update = self.update_gen1
if CP.flags & MazdaFlags.GEN2:
self.update = self.update_gen2
if CP.flags & MazdaFlags.GEN3:
self.update = self.update_gen3
def update_gen1(self, cp, cp_cam, cp_body, frogpilot_variables):
@@ -224,6 +226,63 @@ class CarState(CarStateBase):
return ret, fp_ret
def update_gen3(self, cp, cp_cam, cp_body, frogpilot_variables):
ret = car.CarState.new_message()
fp_ret = custom.FrogPilotCarState.new_message()
ret.wheelSpeeds = self.get_wheel_speeds(
cp.vl["WHEEL_SPEEDS"]["FL"],
cp.vl["WHEEL_SPEEDS"]["FR"],
cp.vl["WHEEL_SPEEDS"]["RL"],
cp.vl["WHEEL_SPEEDS"]["RR"],
)
ret.vEgoRaw = (ret.wheelSpeeds.fl + ret.wheelSpeeds.fr + ret.wheelSpeeds.rl + ret.wheelSpeeds.rr) / 4.
ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw) # Doesn't match cluster speed exactly
ret.leftBlinker, ret.rightBlinker = self.update_blinker_from_lamp(100, cp.vl["BLINK_INFO"]["LEFT_BLINK"] == 1,
cp.vl["BLINK_INFO"]["RIGHT_BLINK"] == 1)
ret.engineRpm = cp.vl["ENGINE_DATA"]["RPM"]
#self.shifting = cp_cam.vl["GEAR"]["SHIFT"]
#self.torque_converter_lock = cp_cam.vl["GEAR"]["TORQUE_CONVERTER_LOCK"]
ret.steeringAngleDeg = cp.vl["STEER"]["STEER_ANGLE"]
ret.steeringTorque = cp_body.vl["EPS_FEEDBACK"]["STEER_TORQUE_SENSOR"]
ret.gas = cp.vl["ENGINE_DATA"]["PEDAL_GAS"]
unit_conversion = CV.MPH_TO_MS if cp_body.vl["SYSTEM_SETTINGS"]["IMPERIAL_UNIT"] else CV.KPH_TO_MS
ret.steeringPressed = abs(ret.steeringTorque) > self.params.STEER_DRIVER_ALLOWANCE
if self.CP.flags & MazdaFlags.MANUAL_TRANSMISSION:
can_gear = int(cp_cam.vl["MANUAL_GEAR"]["GEAR"])
else:
can_gear = int(cp.vl["GEAR"]["GEAR"])
ret.gearShifter = self.parse_gear_shifter(self.shifter_values.get(can_gear, None))
ret.gasPressed = ret.gas > 0
ret.seatbeltUnlatched = False # Cruise will not engage if seatbelt is unlatched (handled by car)
ret.doorOpen = False # Cruise will not engage if door is open (handled by car)
ret.brakePressed = cp.vl["BRAKE_PEDAL"]["BRAKE_PEDAL_PRESSED"] == 1
ret.brake = .1
ret.steerFaultPermanent = False # TODO locate signal. Car shows light on dash if there is a fault
ret.steerFaultTemporary = False # TODO locate signal. Car shows light on dash if there is a fault
ret.standstill = ret.vEgoRaw < 0.1
ret.cruiseState.speed = cp.vl["CRUZE_STATE"]["CRZ_SPEED"] * unit_conversion
ret.cruiseState.enabled = (cp.vl["CRUZE_STATE"]["CRZ_STATE"] >= 3)
ret.cruiseState.available = (cp.vl["CRUZE_STATE"]["CRZ_STATE"] >= 2)
ret.cruiseState.standstill = ret.standstill
self.cp = cp
self.cp_cam = cp_cam
# FrogPilot CarState functions
self.lkas_previously_enabled = self.lkas_enabled
self.lkas_enabled = not self.lkas_disabled
return ret, fp_ret
@staticmethod
def get_ti_messages(CP):
messages = []
@@ -231,7 +290,7 @@ class CarState(CarStateBase):
messages += [
("TI_FEEDBACK", 50),
]
elif CP.flags & MazdaFlags.GEN2:
elif CP.flags & (MazdaFlags.GEN2 | MazdaFlags.GEN3):
messages += [
("EPS_FEEDBACK", 50),
("EPS_FEEDBACK2", 50),
@@ -244,7 +303,7 @@ class CarState(CarStateBase):
messages = [
("CRZ_BTNS", 10),
]
if not (CP.flags & MazdaFlags.GEN2):
if not (CP.flags & (MazdaFlags.GEN2 | MazdaFlags.GEN3)):
messages += [
# sig_address, frequency
("BLINK_INFO", 10),
@@ -281,6 +340,16 @@ class CarState(CarStateBase):
("STEER", 100)
]
if CP.flags & MazdaFlags.GEN3:
messages += [
("CRUZE_STATE", 10),
("GEAR", 50),
("BRAKE_PEDAL", 5),
("ENGINE_DATA", 100),
("BLINK_INFO", 10),
("WHEEL_SPEEDS", 50),
]
return CANParser(DBC[CP.carFingerprint]["pt"], messages, 0)
@staticmethod
@@ -323,8 +392,19 @@ class CarState(CarStateBase):
("GEAR", 40),
]
if CP.flags & MazdaFlags.GEN3:
if CP.flags & MazdaFlags.MANUAL_TRANSMISSION:
messages += [
("MANUAL_GEAR", 50),
]
return CANParser(DBC[CP.carFingerprint]["pt"], messages, 2)
@staticmethod
def get_body_can_parser(CP):
return CANParser(DBC[CP.carFingerprint]["pt"], CarState.get_ti_messages(CP), 1)
messages = CarState.get_ti_messages(CP)
if CP.flags & MazdaFlags.GEN3:
messages += [
("SYSTEM_SETTINGS", 2),
]
return CANParser(DBC[CP.carFingerprint]["pt"], messages, 1)
+8 -1
View File
@@ -3,7 +3,7 @@ from math import exp
from cereal import car, custom
from panda import Panda
from openpilot.common.conversions import Conversions as CV
from openpilot.selfdrive.car.mazda.values import CAR, LKAS_LIMITS, MazdaFlags, GEN1, GEN2
from openpilot.selfdrive.car.mazda.values import CAR, LKAS_LIMITS, MazdaFlags, GEN1, GEN2, GEN3
from openpilot.selfdrive.car import create_button_events, get_safety_config
from openpilot.selfdrive.car.interfaces import CarInterfaceBase, LatControlInputs, FRICTION_THRESHOLD, TorqueFromLateralAccelCallbackType
from openpilot.common.params import Params
@@ -99,6 +99,13 @@ class CarInterface(CarInterfaceBase):
ret.startingState = True
ret.steerActuatorDelay = 0.335
if candidate in GEN3:
ret.safetyConfigs[0].safetyParam |= Panda.FLAG_MAZDA_GEN3
ret.steerActuatorDelay = 0.3
ret.openpilotLongitudinalControl = False
if p.get_bool("ManualTransmission"):
ret.flags |= MazdaFlags.MANUAL_TRANSMISSION.value
ret.steerLimitTimer = 0.8
CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning)
+1 -1
View File
@@ -67,7 +67,7 @@ def create_steering_control(packer, CP, frame, apply_steer, lkas):
}
msgs.append(packer.make_can_msg("CAM_LKAS2", 1, values))
elif CP.flags & MazdaFlags.GEN2:
elif CP.flags & ( MazdaFlags.GEN2 | MazdaFlags.GEN3 ):
bus = 1
sig_name = "EPS_LKAS"
values = {
+22 -8
View File
@@ -62,16 +62,19 @@ class MazdaFlags(IntFlag):
# Gen 1 hardware: same CAN messages and same camera
GEN1 = 1
GEN2 = 2
TORQUE_INTERCEPTOR = 4
RADAR_INTERCEPTOR = 8
NO_FSC = 16
NO_MRCC = 32
MANUAL_TRANSMISSION = 64
GEN3 = 4
TORQUE_INTERCEPTOR = 8
RADAR_INTERCEPTOR = 16
NO_FSC = 32
NO_MRCC = 64
MANUAL_TRANSMISSION = 128
@dataclass
class MazdaPlatformConfig(PlatformConfig):
dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict('mazda_2017', None))
def init(self):
if self.flags & MazdaFlags.GEN3:
self.dbc_dict = dbc_dict('mazda_2023', None)
if self.flags & MazdaFlags.GEN2:
self.dbc_dict = dbc_dict('mazda_2019', None)
elif self.flags & MazdaFlags.GEN1 and self.flags & MazdaFlags.RADAR_INTERCEPTOR:
@@ -111,12 +114,12 @@ class CAR(Platforms):
flags=MazdaFlags.GEN1,
)
MAZDA_3_2019 = MazdaPlatformConfig(
[MazdaCarDocs("Mazda 3 2019-24")],
MazdaCarSpecs(mass=3000 * CV.LB_TO_KG, wheelbase=2.725, steerRatio=18.8),
[MazdaCarDocs("Mazda 3 2019-23")],
MazdaCarSpecs(mass=3000 * CV.LB_TO_KG, wheelbase=2.725, steerRatio=17.0),
flags=MazdaFlags.GEN2,
)
MAZDA_CX_30 = MazdaPlatformConfig(
[MazdaCarDocs("Mazda CX-30 2019-24")],
[MazdaCarDocs("Mazda CX-30 2019-22")],
MazdaCarSpecs(mass=3375 * CV.LB_TO_KG, wheelbase=2.814, steerRatio=15.5),
flags=MazdaFlags.GEN2,
)
@@ -125,6 +128,16 @@ class CAR(Platforms):
MazdaCarSpecs(mass=3375 * CV.LB_TO_KG, wheelbase=2.814, steerRatio=15.5),
flags=MazdaFlags.GEN2,
)
MAZDA_3_2023 = MazdaPlatformConfig(
[MazdaCarDocs("Mazda 3 2023-26")],
MazdaCarSpecs(mass=3000 * CV.LB_TO_KG, wheelbase=2.725, steerRatio=17.0),
flags=MazdaFlags.GEN3,
)
MAZDA_CX_30_2023 = MazdaPlatformConfig(
[MazdaCarDocs("Mazda CX-30 23-26")],
MazdaCarSpecs(mass=3375 * CV.LB_TO_KG, wheelbase=2.814, steerRatio=15.5),
flags=MazdaFlags.GEN3,
)
class LKAS_LIMITS:
@@ -169,3 +182,4 @@ FW_QUERY_CONFIG = FwQueryConfig(
DBC = CAR.create_dbc_map()
GEN1 = CAR.with_flags(MazdaFlags.GEN1)
GEN2 = CAR.with_flags(MazdaFlags.GEN2)
GEN3 = CAR.with_flags(MazdaFlags.GEN3)