From 48a8b042711b81487ade6f0caa3c8fa833442e4d Mon Sep 17 00:00:00 2001 From: ReFil <31960031+ReFil@users.noreply.github.com> Date: Mon, 26 Apr 2021 22:56:26 +0100 Subject: [PATCH] Update fron arnepilot --- can/common.cc | 2 +- can/common.pxd | 4 +++- can/packer.cc | 2 +- can/parser.cc | 2 +- ocelot_can.dbc | 30 ++++++++++++++++++++++-------- ocelot_smart_roadster_pt.dbc | 20 +++----------------- 6 files changed, 31 insertions(+), 29 deletions(-) diff --git a/can/common.cc b/can/common.cc index 879b820..92f9375 100644 --- a/can/common.cc +++ b/can/common.cc @@ -198,7 +198,7 @@ unsigned int ocelot_checksum(uint64_t d, int l) { // CRC the payload, skipping over the first byte where the CRC lives. for (int i = 1; i < l; i++) { crc ^= (d >> (i*8)) & 0xFF; - crc = crc8_lut_1d[crc]; + crc = crc8_lut_1d[crc] ^ crc << 8 ; } crc = crc ^ 0xFF; //final xor diff --git a/can/common.pxd b/can/common.pxd index 5519140..9a0ff03 100644 --- a/can/common.pxd +++ b/can/common.pxd @@ -20,7 +20,9 @@ cdef extern from "common_dbc.h": VOLKSWAGEN_CHECKSUM, VOLKSWAGEN_COUNTER, SUBARU_CHECKSUM, - CHRYSLER_CHECKSUM + CHRYSLER_CHECKSUM, + OCELOT_CHECKSUM, + OCELOT_COUNTER cdef struct Signal: const char* name diff --git a/can/packer.cc b/can/packer.cc index f586c13..a724e8a 100644 --- a/can/packer.cc +++ b/can/packer.cc @@ -106,7 +106,7 @@ uint64_t CANPacker::pack(uint32_t address, const std::vector &s unsigned int chksm = chrysler_checksum(address, ReverseBytes(ret), message_lookup[address].size); ret = set_value(ret, sig, chksm); } else if (sig.type == SignalType::OCELOT_CHECKSUM) { - unsigned int chksm = ocelot_checksum(ret, message_lookup[address].size); + unsigned int chksm = ocelot_checksum(ReverseBytes(ret), message_lookup[address].size); ret = set_value(ret, sig, chksm); } else { diff --git a/can/parser.cc b/can/parser.cc index beae589..7424ae0 100644 --- a/can/parser.cc +++ b/can/parser.cc @@ -77,7 +77,7 @@ bool MessageState::parse(uint64_t sec, uint16_t ts_, uint8_t * dat) { return false; } } else if (sig.type == SignalType::OCELOT_CHECKSUM) { - if (ocelot_checksum(dat_be, size) != tmp) { + if (ocelot_checksum(dat_le, size) != tmp) { INFO("0x%X OCELOT CHECKSUM FAIL\n", address); return false; } diff --git a/ocelot_can.dbc b/ocelot_can.dbc index a0008b1..45dba55 100644 --- a/ocelot_can.dbc +++ b/ocelot_can.dbc @@ -56,8 +56,9 @@ BO_ 608 STEERING_STATUS: 5 EPAS SG_ STEERING_OK : 16|1@1+ (1,0) [0|1] "" EON BO_ 527 BRAKE_STATUS: 5 IBST - SG_ BRAKE_PEDAL_POSITION : 18|14@1+ (0.015625,-5) [-5|47] "mm" EON - SG_ IBOOSTER_BRAKE_APPLIED : 17|1@1+ (1,0) [0|1] "" EON + SG_ BRAKE_PEDAL_POSITION : 20|12@1+ (0.015625,-5) [-5|47] "mm" EON + SG_ BRAKE_APPLIED : 18|1@1+ (1,0) [0|1] "" EON + SG_ DRIVER_BRAKE_APPLIED : 17|1@1+ (1,0) [0|1] "" EON SG_ BRAKE_OK : 16|1@1+ (1,0) [0|1] "" EON SG_ STATUS : 12|4@1+ (1,0) [0|15] "" EON SG_ EXT_STATUS1 : 32|4@1+ (1,0) [0|15] "" EON @@ -65,8 +66,8 @@ BO_ 527 BRAKE_STATUS: 5 IBST SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" EON SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" EON -BO_ 526 BRAKE_COMMAND: 5 EON - SG_ BRAKE_POSITION_COMMAND : 32|8@1+ (1,0) [0|255] "" IBST +BO_ 526 BRAKE_COMMAND: 6 EON + SG_ BRAKE_POSITION_COMMAND : 32|12@1+ (0.015625,-5) [-5|47] "mm" IBST SG_ BRAKE_RELATIVE_COMMAND : 16|16@1+ (0.0078125,-252) [-252|252] "" IBST SG_ BRAKE_MODE : 12|2@1+ (1,0) [0|3] "" IBST SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" IBST @@ -95,21 +96,34 @@ BO_ 37 TOYOTA_STEERING_ANGLE_SENSOR1: 8 TOYOTASAS SG_ TOYOTA_STEER_FRACTION : 39|4@0- (0.1,0) [-0.7|0.7] "deg" EON SG_ TOYOTA_STEER_ANGLE : 3|12@0- (1.5,0) [-500|500] "deg" EON +BO_ 512 GAS_COMMAND: 8 EON + SG_ GAS_COMMAND : 8|16@1+ (0.358,-121) [0|1] "" PED + SG_ GAS_COMMAND2 : 24|16@1+ (0.236,-242) [0|1] "" PED + SG_ ENABLE : 47|1@1+ (1,0) [0|1] "" PED + SG_ COUNTER : 40|4@1+ (1,0) [0|15] "" PED + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" PED + +BO_ 513 GAS_SENSOR: 8 PED + SG_ PED_GAS : 8|16@1+ (0.358,-121) [0|1] "" EON + SG_ PED_GAS2 : 24|16@1+ (0.236,-242) [0|1] "" EON + SG_ STATE : 44|4@1+ (1,0) [0|15] "" EON + SG_ COUNTER : 40|4@1+ (1,0) [0|15] "" EON + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" EON + VAL_ 527 IBOOSTER_BRAKE_APPLIED 1 "Yes" 0 "No" ; VAL_ 527 BRAKE_OK 1 "Yes" 0 "No" ; - VAL_ 527 STATUS 7 "FAULT_COUNTER" 6 "FAULT_INVALID" 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; - VAL_ 527 EXT_STATUS1 5 "EXTFAULT1_COUNTER2" 4 "EXTFAULT1_COUNTER1" 3 "EXTFAULT1_SCE" 2 "EXTFAULT1_CHECKSUM2" 1 "EXTFAULT1_CHECKSUM1" 0 "NO_EXTFAULT" ; - VAL_ 527 EXT_STATUS2 5 "EXTFAULT2_COUNTER2" 4 "EXTFAULT2_COUNTER1" 3 "EXTFAULT2_SCE" 2 "EXTFAULT2_CHECKSUM2" 1 "EXTFAULT2_CHECKSUM1" 0 "NO_EXTFAULT" ; + VAL_ 527 STATUS 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; VAL_ 526 BRAKE_MODE 3 "Reserved" 2 "Position Control" 1 "Relative Control" 0 "Disengadged" ; VAL_ 741 STEER_MODE 3 "Reserved" 2 "Position Control" 1 "Torque Control" 0 "Disengadged" ; VAL_ 608 STATUS 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; VAL_ 608 STEERING_OK 1 "Yes" 0 "No" ; VAL_ 870 ENABLED 1 "Yes" 0 "No" ; - VAL_ 512 ENABLE 1 "Yes" 0 "No" ; VAL_ 869 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; VAL_ 869 SPEEDUP_BTN 1 "Yes" 0 "No" ; VAL_ 869 SPEEDDN_BTN 1 "Yes" 0 "No" ; VAL_ 869 CANCEL_BTN 1 "Yes" 0 "No" ; VAL_ 869 SET_BTN 1 "Yes" 0 "No" ; + + VAL_ 512 ENABLE 1 "Yes" 0 "No" ; VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/ocelot_smart_roadster_pt.dbc b/ocelot_smart_roadster_pt.dbc index 42c1c87..bfc8a9c 100644 --- a/ocelot_smart_roadster_pt.dbc +++ b/ocelot_smart_roadster_pt.dbc @@ -71,20 +71,6 @@ BO_ 194 SMARTSTEERINGANGLESENSOR: 8 SMART BO_ 784 SMARTTHROTTLEPEDAL: 8 SMART SG_ THROTTLE_POSITION : 32|16@1+ (0.00156143,0) [0|0] "%" EON -BO_ 512 GAS_COMMAND: 8 EON - SG_ GAS_COMMAND : 8|16@1+ (0.358,-121) [0|1] "" PED - SG_ GAS_COMMAND2 : 24|16@1+ (0.236,-242) [0|1] "" PED - SG_ ENABLE : 47|1@1+ (1,0) [0|1] "" PED - SG_ COUNTER : 40|4@1+ (1,0) [0|15] "" PED - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" PED - -BO_ 513 GAS_SENSOR: 8 PED - SG_ PED_GAS : 8|16@1+ (0.358,-121) [0|1] "" EON - SG_ PED_GAS2 : 24|16@1+ (0.236,-242) [0|1] "" EON - SG_ STATE : 44|4@1+ (1,0) [0|15] "" EON - SG_ COUNTER : 40|4@1+ (1,0) [0|15] "" EON - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" EON - BO_ 544 BODYCONTROL: 8 SMART SG_ RIGHT_DOOR : 0|1@1+ (1,0) [0|0] "" EON SG_ LEFT_DOOR : 7|1@1+ (1,0) [0|0] "" EON @@ -97,8 +83,8 @@ BO_ 144 ABS: 8 SMART SG_ BRAKEPEDAL : 2|1@1+ (1,0) [0|0] "" EON SG_ VEHICLESPEED : 45|6@0- (1,0) [0|0] "mph" EON -BO_ 400 GEARBOX: 8 SMART - SG_ GEARPOSITION : 0|8@1+ (1,0) [0|0] "" EON +BO_ 400 GEAR_PACKET: 8 SMART + SG_ GEAR : 0|8@1+ (1,0) [0|0] "" EON BO_ 520 SMART_ROADSTER_MESSAGE1: 8 SMART @@ -121,4 +107,4 @@ VAL_ 544 RIGHT_SIGNAL 0 "Off" 1 "On" ; VAL_ 544 SIDELIGHTS 0 "Off" 1 "On" ; VAL_ 144 ESP_STATUS 0 "On" 1 "Off" ; VAL_ 144 BRAKEPEDAL 0 "Not_pressed" 1 "Pressed" ; -VAL_ 400 GEARPOSITION 8 "N" 4 "R" 76 "D" 16 "M" ; +VAL_ 400 GEAR 8 "N" 4 "R" 76 "D" 16 "S" ;