diff --git a/chrysler_ram_dt_generated.dbc b/chrysler_ram_dt_generated.dbc index 8e0b7c2..75204b8 100644 --- a/chrysler_ram_dt_generated.dbc +++ b/chrysler_ram_dt_generated.dbc @@ -1,7 +1,7 @@ CM_ "AUTOGENERATED FILE, DO NOT EDIT"; -CM_ "Imported file _stellantis_common_ram.dbc starts here"; +CM_ "Imported file _stellantis_common_ram_dt_generated.dbc starts here"; CM_ "Generated from _stellantis_common.dbc" BO_ 35 STEERING: 8 XXX diff --git a/chrysler_ram_hd_generated.dbc b/chrysler_ram_hd_generated.dbc new file mode 100644 index 0000000..1b2824d --- /dev/null +++ b/chrysler_ram_hd_generated.dbc @@ -0,0 +1,130 @@ +CM_ "AUTOGENERATED FILE, DO NOT EDIT"; + + +CM_ "Imported file _stellantis_common_ram_dt_generated.dbc starts here"; +CM_ "Generated from _stellantis_common.dbc" + +BO_ 35 STEERING: 8 XXX + SG_ STEERING_ANGLE : 5|14@0+ (0.5,-2048) [-2048|2047] "deg" XXX + SG_ STEERING_RATE : 21|14@0+ (0.5,-2048) [-2048|2047] "deg/s" XXX + SG_ STEERING_ANGLE_HP : 48|4@1+ (0.1,-0.4) [-0.4|0.4] "deg" XXX + SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 121 ESP_8: 8 XXX + SG_ BRK_PRESSURE : 3|12@0+ (1,0) [0|1] "" XXX + SG_ BRAKE_PEDAL : 19|12@0+ (1,0) [0|1] "" XXX + SG_ Vehicle_Speed : 39|16@0+ (0.0078125,0) [0|511.984375] "km/h" XXX + SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 131 ESP_1: 8 XXX + SG_ Brake_Pedal_State : 2|2@1+ (1,0) [0|0] "" XXX + SG_ Vehicle_Speed : 33|10@0+ (0.5,0) [0|511] "km/h" XXX + SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + SG_ BRAKE_PRESSED_ACC : 6|1@0+ (1,0) [0|3] "" XXX + +BO_ 139 ESP_6: 8 XXX + SG_ WHEEL_SPEED_FL : 5|14@0+ (0.5,0) [0|8191] "rpm" XXX + SG_ WHEEL_SPEED_FR : 21|14@0+ (0.5,0) [0|8191] "rpm" XXX + SG_ WHEEL_SPEED_RL : 37|14@0+ (0.5,0) [0|8191] "rpm" XXX + SG_ WHEEL_SPEED_RR : 53|14@0+ (0.5,0) [0|8191] "rpm" XXX + +BO_ 464 ORC_1: 8 XXX + SG_ SEATBELT_DRIVER_UNLATCHED : 13|1@0+ (1,0) [0|1] "" XXX + +BO_ 153 DAS_3: 8 XXX + SG_ ENGINE_TORQUE_REQUEST : 4|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX + SG_ ENGINE_TORQUE_REQUEST_MAX : 7|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_STANDSTILL : 5|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_AVAILABLE : 20|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_ACTIVE : 21|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_FAULTED : 47|1@0+ (1,0) [0|1] "" XXX + SG_ BRAKE_MAYBE : 18|11@0+ (1,0) [0|255] "" XXX + SG_ BRAKE_BOOL_1 : 36|1@0+ (1,0) [0|3] "" XXX + SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 232 DAS_4: 8 XXX + SG_ ACC_SET_SPEED_KPH : 15|8@0+ (1,0) [0|3] "km/h" XXX + SG_ ACC_SET_SPEED_MPH : 23|8@0+ (1,0) [0|3] "mph" XXX + SG_ ACC_DISTANCE_CONFIG_1 : 1|2@0+ (1,0) [0|3] "" XXX + SG_ ACC_DISTANCE_CONFIG_2 : 41|2@0+ (1,0) [0|3] "" XXX + SG_ SPEED_DIGITAL : 63|8@0+ (1,0) [0|255] "mph" XXX + SG_ ACC_STATE : 38|3@0+ (1,0) [0|7] "" XXX + +BO_ 49 EPS_2: 8 XXX + SG_ LKAS_STATE : 23|4@0+ (1,0) [0|15] "" XXX + SG_ COLUMN_TORQUE : 2|11@0+ (1,-1024) [-1024|1023] "" XXX + SG_ TORQUE_OVERLAY_STATUS : 6|4@0+ (1,0) [0|15] "" XXX + SG_ EPS_TORQUE_MOTOR_RAW : 19|12@0+ (1,-2048) [-2048|2047] "" XXX + SG_ EPS_TORQUE_MOTOR : 34|11@0+ (1,-1024) [-1024|1023] "" XXX + SG_ AUTO_PARK_HAS_CONTROL_2 : 51|1@0+ (1,0) [0|1] "" XXX + SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 157 ECM_5: 8 XXX + SG_ Accelerator_Position : 0|8@1+ (0.4,0) [0|100] "%" XXX + SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 177 CRUISE_BUTTONS: 3 XXX + SG_ ACC_Cancel : 0|1@1+ (1,0) [0|0] "" XXX + SG_ ACC_Distance_Dec : 1|1@1+ (1,0) [0|0] "" XXX + SG_ ACC_Accel : 2|1@1+ (1,0) [0|0] "" XXX + SG_ ACC_Decel : 3|1@1+ (1,0) [0|0] "" XXX + SG_ ACC_Resume : 4|1@0+ (1,0) [0|1] "" XXX + SG_ Cruise_OnOff : 6|1@1+ (1,0) [0|0] "" XXX + SG_ ACC_OnOff : 7|1@1+ (1,0) [0|0] "" XXX + SG_ ACC_Distance_Inc : 8|1@1+ (1,0) [0|0] "" XXX + SG_ COUNTER : 15|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 23|8@0+ (1,0) [0|255] "" XXX + +BO_ 250 DAS_6: 8 XXX + SG_ LKAS_ICON_COLOR : 1|2@0+ (1,0) [0|3] "" XXX + SG_ LKAS_LANE_LINES : 19|4@0+ (1,0) [0|1] "" XXX + SG_ LKAS_ALERTS : 27|4@0+ (1,0) [0|1] "" XXX + SG_ CAR_MODEL : 15|8@0+ (1,0) [0|255] "" XXX + SG_ AUTO_HIGH_BEAM_ON : 47|1@1+ (1,0) [0|0] "" XXX + +BO_ 720 BSM_1: 6 XXX + SG_ RIGHT_STATUS : 5|1@0+ (1,0) [0|1] "" XXX + SG_ LEFT_STATUS : 2|1@0+ (1,0) [0|1] "" XXX + +BO_ 792 STEERING_LEVERS: 8 XXX + SG_ TURN_SIGNALS : 0|2@1+ (1,0) [0|3] "" XXX + SG_ HIGH_BEAM_PRESSED : 2|1@0+ (1,0) [0|3] "" XXX + +BO_ 657 BCM_1: 8 XXX + SG_ DOOR_OPEN_FL : 17|1@0+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_FR : 18|1@0+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_RL : 19|1@0+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_RR : 20|1@0+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_TRUNK : 22|1@0+ (1,0) [0|1] "" XXX + SG_ TURN_LIGHT_LEFT : 31|1@0+ (1,0) [0|1] "" XXX + SG_ TURN_LIGHT_RIGHT : 30|1@0+ (1,0) [0|1] "" XXX + SG_ HIGH_BEAM_DISPLAY : 58|1@0+ (1,0) [0|1] "" XXX + +CM_ SG_ 258 STEERING_ANGLE_HP "Steering angle high precision"; +CM_ SG_ 678 LKAS_ICON_COLOR "3 is yellow, 2 is green, 1 is white, 0 is null"; +CM_ SG_ 678 LKAS_LANE_LINES "0x01 transparent lines, 0x02 left white, 0x03 right white, 0x04 left yellow with car on top, 0x05 left yellow with car on top, 0x06 both white, 0x07 left yellow, 0x08 left yellow right white, 0x09 right yellow, 0x0a right yellow left white, 0x0b left yellow with car on top right white, 0x0c right yellow with car on top left white, (0x00, 0x0d, 0x0e, 0x0f) null"; +CM_ SG_ 678 LKAS_ALERTS "(0x01, 0x02) lane sense off, (0x03, 0x04, 0x06) place hands on steering wheel, 0x07 lane departure detected + place hands on steering wheel, (0x08, 0x09) lane sense unavailable + clean front windshield, 0x0b lane sense and auto high beam unavailable + clean front windshield, 0x0c lane sense unavailable + service required, (0x00, 0x05, 0x0a, 0x0d, 0x0e, 0x0f) null"; + +CM_ "chrysler_ram_hd.dbc starts here"; + +BO_ 545 EPS_3: 8 XXX + SG_ DASM_FAULT : 34|1@0+ (1,0) [0|1] "" XXX + SG_ Activation_Status : 48|3@1+ (1,0) [0|1] "" XXX + SG_ Driver_Override : 35|1@0+ (1,0) [0|1] "" XXX + SG_ Hands_on_Wheel : 51|1@0+ (1,0) [0|1] "" XXX + SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 630 LKAS_COMMAND: 8 XXX + SG_ STEERING_TORQUE : 10|11@0+ (1,-1024) [0|1] "" XXX + SG_ LKAS_CONTROL_BIT : 24|3@1+ (1,0) [0|1] "" XXX + SG_ DASM_FAULT : 51|1@0+ (1,0) [0|1] "" XXX + SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + diff --git a/generator/chrysler/.gitignore b/generator/chrysler/.gitignore index 1b8f36e..46fc4e0 100644 --- a/generator/chrysler/.gitignore +++ b/generator/chrysler/.gitignore @@ -1 +1 @@ -_stellantis_common_ram.dbc +_*generated.dbc diff --git a/generator/chrysler/_stellantis_common_ram.py b/generator/chrysler/_stellantis_common_ram.py index d38831e..d5e8172 100755 --- a/generator/chrysler/_stellantis_common_ram.py +++ b/generator/chrysler/_stellantis_common_ram.py @@ -1,42 +1,47 @@ #!/usr/bin/env python3 import os -from pathlib import Path -CHRYSLER_TO_RAM_ADDR = { - 258: 35, - 284: 121, - 320: 131, - 344: 139, - 464: 464, - 500: 153, - 501: 232, - 544: 49, - 571: 177, - 559: 157, - 678: 250, - 720: 720, - 792: 792, - 820: 657, +chrysler_to_ram = { + "_stellantis_common_ram_dt_generated.dbc": { + 258: 35, + 284: 121, + 320: 131, + 344: 139, + 464: 464, + 500: 153, + 501: 232, + 544: 49, + 571: 177, + 559: 157, + 678: 250, + 720: 720, + 792: 792, + 820: 657, + }, + "_stellantis_common_ram_hd_generated.dbc": { + 571: 570, + 678: 629, + }, } if __name__ == "__main__": src = '_stellantis_common.dbc' - out = Path(__file__).stem + '.dbc' chrysler_path = os.path.dirname(os.path.realpath(__file__)) - with open(os.path.join(chrysler_path, src)) as in_f, open(os.path.join(chrysler_path, out), 'w') as out_f: - out_f.write(f'CM_ "Generated from {src}"\n\n') + for out, addr_lookup in chrysler_to_ram.items(): + with open(os.path.join(chrysler_path, src)) as in_f, open(os.path.join(chrysler_path, out), 'w') as out_f: + out_f.write(f'CM_ "Generated from {src}"\n\n') - wrote_addrs = set() - for line in in_f.readlines(): - if line.startswith('BO_'): - sl = line.split(' ') - addr = int(sl[1]) - wrote_addrs.add(addr) + wrote_addrs = set() + for line in in_f.readlines(): + if line.startswith('BO_'): + sl = line.split(' ') + addr = int(sl[1]) + wrote_addrs.add(addr) - sl[1] = str(CHRYSLER_TO_RAM_ADDR.get(addr, addr)) - line = ' '.join(sl) - out_f.write(line) + sl[1] = str(addr_lookup.get(addr, addr)) + line = ' '.join(sl) + out_f.write(line) - missing_addrs = set(CHRYSLER_TO_RAM_ADDR.keys()) - wrote_addrs - assert len(missing_addrs) == 0, f"Missing addrs from {src}: {missing_addrs}" + missing_addrs = set(addr_lookup.keys()) - wrote_addrs + assert len(missing_addrs) == 0, f"Missing addrs from {src}: {missing_addrs}" diff --git a/generator/chrysler/chrysler_ram_dt.dbc b/generator/chrysler/chrysler_ram_dt.dbc index 0eebaa7..66f99d8 100644 --- a/generator/chrysler/chrysler_ram_dt.dbc +++ b/generator/chrysler/chrysler_ram_dt.dbc @@ -1,4 +1,4 @@ -CM_ "IMPORT _stellantis_common_ram.dbc"; +CM_ "IMPORT _stellantis_common_ram_dt_generated.dbc"; BO_ 37 PCM_1: 8 XXX SG_ ENGINE_RPM : 7|16@0+ (1,0) [0|1] "" XXX diff --git a/generator/chrysler/chrysler_ram_hd.dbc b/generator/chrysler/chrysler_ram_hd.dbc new file mode 100644 index 0000000..315e227 --- /dev/null +++ b/generator/chrysler/chrysler_ram_hd.dbc @@ -0,0 +1,17 @@ +CM_ "IMPORT _stellantis_common_ram_dt_generated.dbc"; + +BO_ 545 EPS_3: 8 XXX + SG_ DASM_FAULT : 34|1@0+ (1,0) [0|1] "" XXX + SG_ Activation_Status : 48|3@1+ (1,0) [0|1] "" XXX + SG_ Driver_Override : 35|1@0+ (1,0) [0|1] "" XXX + SG_ Hands_on_Wheel : 51|1@0+ (1,0) [0|1] "" XXX + SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 630 LKAS_COMMAND: 8 XXX + SG_ STEERING_TORQUE : 10|11@0+ (1,-1024) [0|1] "" XXX + SG_ LKAS_CONTROL_BIT : 24|3@1+ (1,0) [0|1] "" XXX + SG_ DASM_FAULT : 51|1@0+ (1,0) [0|1] "" XXX + SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX +