From dd84d3ff28816a22a911bb26b435026b728676db Mon Sep 17 00:00:00 2001 From: tao_z <tzj0429@163.com> Date: Sun, 07 Aug 2022 21:42:44 +0800 Subject: [PATCH] 针对B41V修改 --- Shifter.py | 43 ++++++++++++++++++++++++------------------- 1 files changed, 24 insertions(+), 19 deletions(-) diff --git a/Shifter.py b/Shifter.py index 8fb5efa..00d08d9 100644 --- a/Shifter.py +++ b/Shifter.py @@ -5,7 +5,7 @@ import configparser import cantools -ProjectDBC = cantools.database.load_file("DBC/SX7H.dbc") +ProjectDBC = cantools.database.load_file("DBC/BJEV_B41V_20220411.dbc") class AsciiCodec(DidCodec): @@ -192,30 +192,25 @@ self.canid.phy_txId = 0x77A self.canid.phy_rxId = 0x742 self.canid.fun_rxId = 0x7df - self.canid.normalid = 0x420 - self.SA1_message = ProjectDBC.get_message_by_name('SA1') + self.canid.normalid = 0x5E0 + self.SA1_message = ProjectDBC.get_message_by_name('EGSM_1') - def FramUnpack(self, id=0x420, frame=[]): + def FramUnpack(self, id=0x5E0, frame=[]): input_signal = ProjectDBC.decode_message(id, frame) - # part_str = str(input_signal['SA1_Status_ParkButtonReq']) - # print(type(part_str)) - # if input_signal['SA1_Status_ParkButtonReq'] == 'No request': - # print('yes') - # print(SA1_Status_ParkButtonReq_dic[part_str]) self.Pbutton = SA1_Status_ParkButtonReq_dic[str( - input_signal['SA1_Status_ParkButtonReq'])] + input_signal['EGSM1_St_DrvRqPark'])] self.UnlockButton = SA1_Status_UnlockButtonReq_dic[str( - input_signal['SA1_Status_UnlockButtonReq'])] + input_signal['EGSM1_St_DrvRqUnlock'])] self.position = SA1_Status_GearShftPosReq_dic[str( - input_signal['SA1_Status_GearShftPosReq'])] + input_signal['EGSM1_St_DrvRqShft'])] def PackFrame(self, dic): data = self.SA1_message.encode({ 'SA1_Status_PRNDL': 0, - 'SA1_Status_GearShftPosReq': + 'EGSM1_St_DrvRqShft': SA1_Status_GearShftPosReq_dic[self.position], - 'SA1_Status_ParkButtonReq': + 'EGSM1_St_DrvRqPark': SA1_Status_ParkButtonReq_dic[self.Pbutton], "SA1_ShifterManualSignal": 0, @@ -227,7 +222,7 @@ 0, "SA1_Live_counter": 1, - "SA1_Status_UnlockButtonReq": + "EGSM1_St_DrvRqUnlock": SA1_Status_UnlockButtonReq_dic[self.UnlockButton], "SA1_Status_EcoShifterModeReq": 0, @@ -248,10 +243,16 @@ self.ShiftLeverPos = 'P' self.pre_ShiftLeverPos = 'P' self.max_pos = 'Shifter position Zero' - self.IC1_message = ProjectDBC.get_message_by_name('IC1') - self.TCU2_message = ProjectDBC.get_message_by_name('TCU2') - self.ABS1_message = ProjectDBC.get_message_by_name('ABS1') - self.Engine2_message = ProjectDBC.get_message_by_name('Engine2') + self.BCM1_message = ProjectDBC.get_message_by_name('BCM_1') + self.BCM_9_message = ProjectDBC.get_message_by_name('BDC_BCM_9') + self.EHC6_message = ProjectDBC.get_message_by_name('CDC_EHC_6') + self.CAPE1_message = ProjectDBC.get_message_by_name('BDC_CAPE_1') + + self.IPC1_message = ProjectDBC.get_message_by_name('CDC_IPC1') + self.CGW_1_message = ProjectDBC.get_message_by_name('CGW_1') + self.EMS_5_message = ProjectDBC.get_message_by_name('EMS_5') + self.TBOX_1_message = ProjectDBC.get_message_by_name('TBOX_1') + self.TCM_5_message = ProjectDBC.get_message_by_name('TCM_5') def pack_IC1(self, odm): self.Odm = odm @@ -292,6 +293,9 @@ reqpos = TCU2_ShiterLevel_dic['M'] self.pre_ShiftLeverPos = "P" self.max_pos = 'Shifter position Zero' + elif shift.position is SA1_Status_GearShftPosReq_dic[ + 'Shifter not initialized']: + pass else: if shift.position is not SA1_Status_GearShftPosReq_dic[ 'Shifter position Zero']: @@ -303,5 +307,6 @@ self.pre_ShiftLeverPos = [ k for k, v in TCU2_ShiterLevel_dic.items() if v == reqpos ][0] + data = self.pack_TCU2(reqpos) return data -- Gitblit v1.8.0