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修改 --- widgets/ShifterTool.py | 22 +- Shifter.py | 39 ++-- USBCAN.py | 2 DBC/BJEV_B41V_20220411.dbc | 349 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 381 insertions(+), 31 deletions(-) diff --git a/DBC/BJEV_B41V_20220411.dbc b/DBC/BJEV_B41V_20220411.dbc new file mode 100644 index 0000000..3dfb036 --- /dev/null +++ b/DBC/BJEV_B41V_20220411.dbc @@ -0,0 +1,349 @@ +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_: EGSM GW EMS TCM + + +BO_ 640 EMS_5: 8 EMS + SG_ EMS5_St_EngineCranking : 44|1@0+ (1,0) [0|1] "" GW,TCM,Vector__XXX,EGSM,Vector__XXX + +BO_ 1248 TCM_5: 8 TCM + SG_ TCM5_St_ShiftLeverPos_EGSM : 54|3@0+ (1,0) [0|7] "" EGSM + SG_ TCM5_RollingCounter : 51|4@0+ (1,0) [0|15] "" GW,EMS,EGSM + SG_ TCM5_Checksum : 63|8@0+ (1,0) [0|255] "" GW,EMS,EGSM + +BO_ 1504 EGSM_1: 8 EGSM + SG_ EGSM1_St_DrvRqShft : 7|4@0+ (1,0) [0|15] "" GW,TCM + SG_ EGSM1_St_DrvRqShftInv : 3|4@0+ (1,0) [0|15] "" TCM + SG_ EGSM1_St_DrvRqUnlock : 14|2@0+ (1,0) [0|3] "" GW,TCM + SG_ EGSM1_St_DrvRqPark : 12|2@0+ (1,0) [0|3] "" GW,TCM + SG_ EGSM1_St_StayInM : 9|2@0+ (1,0) [0|3] "" GW + SG_ EGSM1_St_EShiftFault : 23|1@0+ (1,0) [0|1] "" GW,TCM + SG_ EGSM1_St_ShiftPadReqUp : 27|2@0+ (1,0) [0|3] "" TCM + SG_ EGSM1_St_ShiftPadReqDown : 25|2@0+ (1,0) [0|3] "" TCM + SG_ EGSM1_RollingCounter : 51|4@0+ (1,0) [0|15] "" TCM + SG_ EGSM1_Checksum : 63|8@0+ (1,0) [0|255] "" TCM + +BO_ 1293 CGW_1: 8 GW + SG_ CGW1_St_OTAmode : 0|1@0+ (1,0) [0|1] "" EMS,Vector__XXX,EGSM + +BO_ 1568 CDC_IPC1: 8 GW + SG_ IPC1_F_RheostatLevel : 4|2@0+ (1,0) [0|3] "" EGSM + SG_ IPC1_F_OdometerParameter : 0|1@0+ (1,0) [0|1] "" EMS,TCM,Vector__XXX,EGSM,Vector__XXX + SG_ IPC1_St_RheostatLevel : 15|3@0+ (1,0) [0|7] "" EGSM + SG_ IPC1_N_OdoMeter : 23|32@0+ (0.01,0) [0|2000000] "km" EMS,TCM,Vector__XXX,EGSM,Vector__XXX,Vector__XXX + +BO_ 1319 CDC_EHC_6: 8 GW + SG_ EHC6_N_Year : 7|7@0+ (1,2000) [2000|2127] "" TCM,EGSM,Vector__XXX,Vector__XXX + SG_ EHC6_N_Month : 0|4@0+ (1,0) [0|12] "" TCM,EGSM,Vector__XXX,Vector__XXX + SG_ EHC6_N_Day : 12|5@0+ (1,0) [0|31] "" TCM,EGSM,Vector__XXX,Vector__XXX + SG_ EHC6_N_Hour : 23|5@0+ (1,0) [0|24] "h" TCM,EGSM,Vector__XXX,Vector__XXX + SG_ EHC6_N_Minute : 31|6@0+ (1,0) [0|60] "M" TCM,EGSM,Vector__XXX,Vector__XXX + SG_ EHC6_N_Second : 25|6@0+ (1,0) [0|60] "S" TCM,EGSM,Vector__XXX,Vector__XXX + +BO_ 1184 BCM_1: 8 GW + SG_ BCM1_Cmd_PositionLamp : 15|1@0+ (1,0) [0|1] "" EGSM + +BO_ 1383 BDC_BCM_9: 8 GW + SG_ BCM9_St_OTAmode : 44|1@0+ (1,0) [0|1] "" EMS,Vector__XXX,EGSM + +BO_ 1392 BDC_CAPE_1: 8 GW + SG_ CAPE1_F_PowerMode : 7|2@0+ (1,0) [0|2] "" EMS,TCM,Vector__XXX,EGSM,Vector__XXX + SG_ CAPE1_St_PowerMode : 5|3@0+ (1,0) [0|7] "" EMS,TCM,Vector__XXX,EGSM,Vector__XXX + SG_ CAPE1_RollingCounter : 55|8@0+ (1,0) [0|255] "" EMS,TCM,EGSM + SG_ CAPE1_CRC : 63|8@0+ (1,0) [0|255] "" EMS,TCM,EGSM + +BO_ 1321 TBOX_1: 8 GW + SG_ TBOX1_St_OTAmode : 35|1@0+ (1,0) [0|1] "" EMS,Vector__XXX,EGSM + + +CM_ "Version:V0.1,Date:2022/4/8,Author:ANGUANGSHENG,Review:,Approval:,Description:(EGSM)1.����; + "; + +CM_ SG_ 1504 EGSM1_St_DrvRqShft "��ʻԱ����λ���źż������������ź�"; +CM_ SG_ 1504 EGSM1_St_DrvRqShftInv "��ʻԱ����λ���źż������������ź���������"; +CM_ SG_ 1504 EGSM1_St_DrvRqUnlock "���������ź�"; +CM_ SG_ 1504 EGSM1_St_DrvRqPark "P�������ź�"; +CM_ SG_ 1504 EGSM1_St_StayInM "EGSM��M��λ�þ�����ʾ�źŷ���IPC �����������ּ���������ʾ��ʻ�߽������˻ָ�������λ�á�"; +CM_ SG_ 1504 EGSM1_St_EShiftFault "����ϵͳ������ʾ"; +CM_ SG_ 1504 EGSM1_St_ShiftPadReqUp "������Ƭ������Ԥ�����ܣ�"; +CM_ SG_ 1504 EGSM1_St_ShiftPadReqDown "������Ƭ������Ԥ�����ܣ�"; +CM_ SG_ 1504 EGSM1_RollingCounter "RollingCounter����"; +CM_ SG_ 1504 EGSM1_Checksum "ChecksumУ����"; +CM_ SG_ 1568 IPC1_F_RheostatLevel "��������ź�"; +CM_ SG_ 1568 IPC1_St_RheostatLevel "��������ź�"; +CM_ SG_ 1568 IPC1_N_OdoMeter "E=N*0.01"; + + +BA_DEF_ BO_ "NmMessage" ENUM "No","Yes"; +BA_DEF_ BO_ "DiagState" ENUM "No","Yes"; +BA_DEF_ BO_ "DiagRequest" ENUM "No","Yes"; +BA_DEF_ BO_ "DiagResponse" ENUM "No","Yes"; +BA_DEF_ BO_ "GenMsgSendType" ENUM "cyclic","NoMsgSendType","IfActive","Event","CA","CE"; +BA_DEF_ BO_ "GenMsgCycleTime" INT 0 0; +BA_DEF_ SG_ "GenSigSendType" ENUM "cyclic","OnChange","OnWrite","IfActive","OnChangeWithRepetition","OnWriteWithRepetition","IfActiveWithRepetition","NoSigSendType","OnChangeAndIfActive", "OnChangeAndIfActiveWithRepetition","CA","CE","Event"; +BA_DEF_ SG_ "GenSigStartValue" INT 0 0; +BA_DEF_ SG_ "GenSigInactiveValue" INT 0 0; +BA_DEF_ BO_ "GenMsgCycleTimeFast" INT 0 0; +BA_DEF_ BO_ "GenMsgNrOfRepetition" INT 0 0; +BA_DEF_ BO_ "GenMsgDelayTime" INT 0 0; +BA_DEF_ "DBName" STRING ; +BA_DEF_ "BusBaudate" INT 0 10000; +BA_DEF_ BU_ "NodeLayerModules" STRING ; +BA_DEF_ SG_ "GenSigTimeoutValue" INT 0 1000000000; +BA_DEF_ BO_ "GenMsgCycleTimeActive" INT 0 0; +BA_DEF_ BU_ "ILUsed" ENUM "No","Yes"; +BA_DEF_ BU_ "DiagStationAddress" HEX 0 255; +BA_DEF_ BU_ "NmNode" ENUM "Not","Yes"; +BA_DEF_ BU_ "NmStationAddress" HEX 0 65535; +BA_DEF_ BU_ "NmCAN" INT 0 2; +BA_DEF_ "Manufacturer" STRING ; +BA_DEF_ "NmType" STRING ; +BA_DEF_ "NmBaseAddress" HEX 0 2047; +BA_DEF_ "NmMessageCount" INT 0 255; +BA_DEF_ BO_ "_Cdb_Sc_CTm_FAW_v3_0" INT 0 0; +BA_DEF_ BO_ "_Cdb_Sc_CTm_FAW_v2_3" INT 0 0; +BA_DEF_ BO_ "_Cdb_Sc_CTm_FAW_v3_1" INT 0 0; +BA_DEF_ BO_ "_Cdb_Sc_CTm_FAW_v2_2" INT 0 0; +BA_DEF_ BO_ "_Cdb_Sc_CTm_FAW_v2_1" INT 0 0; +BA_DEF_ BO_ "GenMsgILSupport" ENUM "No","Yes"; +BA_DEF_ BO_ "GenMsgStartDelayTime" INT 0 65535; +BA_DEF_ "BusType" STRING ; +BA_DEF_ SG_ "sigDespEng" STRING; +BA_DEF_ SG_ "sigSecLevel" STRING; +BA_DEF_ SG_ "sigConfig" STRING; +BA_DEF_ SG_ "sigExplanation" STRING; + + +BA_DEF_DEF_ "NmMessage" "No"; +BA_DEF_DEF_ "DiagState" "No"; +BA_DEF_DEF_ "DiagRequest" "No"; +BA_DEF_DEF_ "DiagResponse" "No"; +BA_DEF_DEF_ "GenMsgSendType" "cyclic"; +BA_DEF_DEF_ "GenMsgCycleTime" 0; +BA_DEF_DEF_ "GenSigSendType" "cyclic"; +BA_DEF_DEF_ "GenSigStartValue" 0; +BA_DEF_DEF_ "GenSigInactiveValue" 0; +BA_DEF_DEF_ "GenMsgCycleTimeFast" 0; +BA_DEF_DEF_ "GenMsgNrOfRepetition" 0; +BA_DEF_DEF_ "GenMsgDelayTime" 0; +BA_DEF_DEF_ "DBName" ""; +BA_DEF_DEF_ "BusBaudate" 500; +BA_DEF_DEF_ "NodeLayerModules" "CANoeILNLVector.dll"; +BA_DEF_DEF_ "GenSigTimeoutValue" 0; +BA_DEF_DEF_ "GenMsgCycleTimeActive" 0; +BA_DEF_DEF_ "ILUsed" "No"; +BA_DEF_DEF_ "DiagStationAddress" 0; +BA_DEF_DEF_ "NmNode" "Not"; +BA_DEF_DEF_ "NmStationAddress" 0; +BA_DEF_DEF_ "NmCAN" 0; +BA_DEF_DEF_ "Manufacturer" ""; +BA_DEF_DEF_ "NmType" ""; +BA_DEF_DEF_ "NmBaseAddress" 1024; +BA_DEF_DEF_ "NmMessageCount" 128; +BA_DEF_DEF_ "_Cdb_Sc_CTm_FAW_v3_0" 0; +BA_DEF_DEF_ "_Cdb_Sc_CTm_FAW_v2_3" 0; +BA_DEF_DEF_ "_Cdb_Sc_CTm_FAW_v3_1" 0; +BA_DEF_DEF_ "_Cdb_Sc_CTm_FAW_v2_2" 0; +BA_DEF_DEF_ "_Cdb_Sc_CTm_FAW_v2_1" 0; +BA_DEF_DEF_ "GenMsgILSupport" "No"; +BA_DEF_DEF_ "GenMsgStartDelayTime" 0; +BA_DEF_DEF_ "BusType" "CAN"; +BA_DEF_DEF_ "sigDespEng" "" ; +BA_DEF_DEF_ "sigSecLevel" "QM" ; +BA_DEF_DEF_ "sigConfig" "" ; +BA_DEF_DEF_ "sigExplanation" "" ; +BA_ "DBName" "BJEV_B41V(EP)_PBUS_Matrix_CAN_V1.0_20220411"; +BA_ "BusBaudate" 500; +BA_ "GenMsgCycleTime" BO_ 640 10; +BA_ "sigDespEng" SG_ 640 EMS5_St_EngineCranking "whenthestarterpullstheenginearound��itcomesfromthevariableCoEng_st"; +BA_ "sigSecLevel" SG_ 640 EMS5_St_EngineCranking ""; +BA_ "sigConfig" SG_ 640 EMS5_St_EngineCranking ""; +BA_ "sigExplanation" SG_ 640 EMS5_St_EngineCranking ""; +BA_ "GenMsgCycleTime" BO_ 1248 20; +BA_ "GenSigStartValue" SG_ 1248 TCM5_St_ShiftLeverPos_EGSM 7; +BA_ "sigDespEng" SG_ 1248 TCM5_St_ShiftLeverPos_EGSM "Actuationofdisplay:Transmissionposition,Driverinformation,Transmissiondata,etc.InvalidValue(Hex)��Чֵ:7"; +BA_ "sigSecLevel" SG_ 1248 TCM5_St_ShiftLeverPos_EGSM ""; +BA_ "sigConfig" SG_ 1248 TCM5_St_ShiftLeverPos_EGSM ""; +BA_ "sigExplanation" SG_ 1248 TCM5_St_ShiftLeverPos_EGSM ""; +BA_ "sigDespEng" SG_ 1248 TCM5_RollingCounter "MessagecounterforeachmessagetransmittedThetransmittershallupdatethevalueoftheMessageCountersignaleverytimeaframeistransmitted(evenifnootherdataintheframehaschangedvalue).Thecountervalueshallbeupdatedinthesequence0,1,2,3......15,0,1,2,3......15,etc.Uponstartup,theinitialvalueoftheMessageCountersignalshallbe0.N=E"; +BA_ "sigSecLevel" SG_ 1248 TCM5_RollingCounter ""; +BA_ "sigConfig" SG_ 1248 TCM5_RollingCounter ""; +BA_ "sigExplanation" SG_ 1248 TCM5_RollingCounter ""; +BA_ "sigDespEng" SG_ 1248 TCM5_Checksum "ChecksumoftheTCM5statusChecksum=(byte0+byte1+��+byte6��andFF"; +BA_ "sigSecLevel" SG_ 1248 TCM5_Checksum ""; +BA_ "sigConfig" SG_ 1248 TCM5_Checksum ""; +BA_ "sigExplanation" SG_ 1248 TCM5_Checksum ""; +BA_ "GenMsgCycleTime" BO_ 1504 10; +BA_ "GenSigStartValue" SG_ 1504 EGSM1_St_DrvRqShft 14; +BA_ "sigDespEng" SG_ 1504 EGSM1_St_DrvRqShft "Driverrequestedgearshiftposition"; +BA_ "sigSecLevel" SG_ 1504 EGSM1_St_DrvRqShft ""; +BA_ "sigConfig" SG_ 1504 EGSM1_St_DrvRqShft ""; +BA_ "sigExplanation" SG_ 1504 EGSM1_St_DrvRqShft "��TCM���ݵ���λ����Ϣ�Լ�˫�������������ϡ�"; +BA_ "GenSigStartValue" SG_ 1504 EGSM1_St_DrvRqShftInv 1; +BA_ "sigDespEng" SG_ 1504 EGSM1_St_DrvRqShftInv "Driverrequestedgearshiftpositioninverse"; +BA_ "sigSecLevel" SG_ 1504 EGSM1_St_DrvRqShftInv ""; +BA_ "sigConfig" SG_ 1504 EGSM1_St_DrvRqShftInv ""; +BA_ "sigExplanation" SG_ 1504 EGSM1_St_DrvRqShftInv "��EGSM1_St_DRV_RQ_SHFT�źţ��γ��������룬�ź���EGSM1_St_DRV_RQ_SHFT����ͬ�����������ܰ�ȫ�ȼ���"; +BA_ "sigDespEng" SG_ 1504 EGSM1_St_DrvRqUnlock "DriverRequestUnlockButton"; +BA_ "sigSecLevel" SG_ 1504 EGSM1_St_DrvRqUnlock ""; +BA_ "sigConfig" SG_ 1504 EGSM1_St_DrvRqUnlock ""; +BA_ "sigExplanation" SG_ 1504 EGSM1_St_DrvRqUnlock "��TCM���ݽ��������źš�"; +BA_ "sigDespEng" SG_ 1504 EGSM1_St_DrvRqPark "DriverRequestParkButton"; +BA_ "sigSecLevel" SG_ 1504 EGSM1_St_DrvRqPark ""; +BA_ "sigConfig" SG_ 1504 EGSM1_St_DrvRqPark ""; +BA_ "sigExplanation" SG_ 1504 EGSM1_St_DrvRqPark "��TCM����P�����źš�"; +BA_ "sigDespEng" SG_ 1504 EGSM1_St_StayInM "MpositionwaringforIPC.ThisisasignalforEGSMInMwhenTCUisnotinD"; +BA_ "sigSecLevel" SG_ 1504 EGSM1_St_StayInM ""; +BA_ "sigConfig" SG_ 1504 EGSM1_St_StayInM ""; +BA_ "sigExplanation" SG_ 1504 EGSM1_St_StayInM "1���ϵ�״̬��TCU��P,R,N��������������M��M+��M-λ�ã�2���µ�״̬��������M��M+��M-λ��;�������������֮һEGSM����ʾ�źŷ���IPC�����������ּ���������ʾ��ʻ�߽������˻ָ�������λ�á�"; +BA_ "sigDespEng" SG_ 1504 EGSM1_St_EShiftFault "thissignalindicateE-shiftfaultwhichrepresentE-shiftcannotreflecttherealdriverdemandbecauseofanyreason."; +BA_ "sigSecLevel" SG_ 1504 EGSM1_St_EShiftFault ""; +BA_ "sigConfig" SG_ 1504 EGSM1_St_EShiftFault ""; +BA_ "sigExplanation" SG_ 1504 EGSM1_St_EShiftFault "����ϵͳ������ʾ"; +BA_ "sigDespEng" SG_ 1504 EGSM1_St_ShiftPadReqUp "ATShiftPadTippressed,andrequestUpshift."; +BA_ "sigSecLevel" SG_ 1504 EGSM1_St_ShiftPadReqUp ""; +BA_ "sigConfig" SG_ 1504 EGSM1_St_ShiftPadReqUp ""; +BA_ "sigExplanation" SG_ 1504 EGSM1_St_ShiftPadReqUp "������Ƭ������Ԥ�����ܣ�"; +BA_ "sigDespEng" SG_ 1504 EGSM1_St_ShiftPadReqDown "ATShiftPadTippressed,andrequestDownshift."; +BA_ "sigSecLevel" SG_ 1504 EGSM1_St_ShiftPadReqDown ""; +BA_ "sigConfig" SG_ 1504 EGSM1_St_ShiftPadReqDown ""; +BA_ "sigExplanation" SG_ 1504 EGSM1_St_ShiftPadReqDown "������Ƭ������Ԥ�����ܣ�"; +BA_ "sigDespEng" SG_ 1504 EGSM1_RollingCounter "MessagecounterforeachmessagetransmittedThetransmittershallupdatethevalueoftheMessageCountersignaleverytimeaframeistransmitted(evenifnootherdataintheframehaschangedvalue).Thecountervalueshallbeupdatedinthesequence0,1,2,3......15,0,1,2,3......15,etc.Uponstartup,theinitialvalueoftheMessageCountersignalshallbe0.N=E"; +BA_ "sigSecLevel" SG_ 1504 EGSM1_RollingCounter ""; +BA_ "sigConfig" SG_ 1504 EGSM1_RollingCounter ""; +BA_ "sigExplanation" SG_ 1504 EGSM1_RollingCounter ""; +BA_ "sigDespEng" SG_ 1504 EGSM1_Checksum "ChecksumoftheEGSM1statusChecksum=(byte0+byte1+��+byte6��andFF"; +BA_ "sigSecLevel" SG_ 1504 EGSM1_Checksum ""; +BA_ "sigConfig" SG_ 1504 EGSM1_Checksum ""; +BA_ "sigExplanation" SG_ 1504 EGSM1_Checksum ""; +BA_ "GenMsgCycleTime" BO_ 1293 100; +BA_ "sigDespEng" SG_ 1293 CGW1_St_OTAmode "CGW����ڵ����OTAģʽ"; +BA_ "sigSecLevel" SG_ 1293 CGW1_St_OTAmode ""; +BA_ "sigConfig" SG_ 1293 CGW1_St_OTAmode ""; +BA_ "sigExplanation" SG_ 1293 CGW1_St_OTAmode ""; +BA_ "GenMsgCycleTime" BO_ 1568 100; +BA_ "sigDespEng" SG_ 1568 IPC1_F_RheostatLevel "ThevaildindicationofRheostatLevel"; +BA_ "sigSecLevel" SG_ 1568 IPC1_F_RheostatLevel ""; +BA_ "sigConfig" SG_ 1568 IPC1_F_RheostatLevel ""; +BA_ "sigExplanation" SG_ 1568 IPC1_F_RheostatLevel ""; +BA_ "sigDespEng" SG_ 1568 IPC1_F_OdometerParameter "Thevaildindicationofodometer��odometerresetandodometeroffsetinEEROM"; +BA_ "sigSecLevel" SG_ 1568 IPC1_F_OdometerParameter ""; +BA_ "sigConfig" SG_ 1568 IPC1_F_OdometerParameter ""; +BA_ "sigExplanation" SG_ 1568 IPC1_F_OdometerParameter ""; +BA_ "sigDespEng" SG_ 1568 IPC1_St_RheostatLevel "ThevalueofRheostatLevel"; +BA_ "sigSecLevel" SG_ 1568 IPC1_St_RheostatLevel ""; +BA_ "sigConfig" SG_ 1568 IPC1_St_RheostatLevel ""; +BA_ "sigExplanation" SG_ 1568 IPC1_St_RheostatLevel ""; +BA_ "sigDespEng" SG_ 1568 IPC1_N_OdoMeter "Thevalueofodometer"; +BA_ "sigSecLevel" SG_ 1568 IPC1_N_OdoMeter ""; +BA_ "sigConfig" SG_ 1568 IPC1_N_OdoMeter ""; +BA_ "sigExplanation" SG_ 1568 IPC1_N_OdoMeter ""; +BA_ "GenMsgCycleTime" BO_ 1319 1000; +BA_ "sigDespEng" SG_ 1319 EHC6_N_Year "year"; +BA_ "sigSecLevel" SG_ 1319 EHC6_N_Year ""; +BA_ "sigConfig" SG_ 1319 EHC6_N_Year ""; +BA_ "sigExplanation" SG_ 1319 EHC6_N_Year ""; +BA_ "sigDespEng" SG_ 1319 EHC6_N_Month "Month"; +BA_ "sigSecLevel" SG_ 1319 EHC6_N_Month ""; +BA_ "sigConfig" SG_ 1319 EHC6_N_Month ""; +BA_ "sigExplanation" SG_ 1319 EHC6_N_Month ""; +BA_ "sigDespEng" SG_ 1319 EHC6_N_Day "Day"; +BA_ "sigSecLevel" SG_ 1319 EHC6_N_Day ""; +BA_ "sigConfig" SG_ 1319 EHC6_N_Day ""; +BA_ "sigExplanation" SG_ 1319 EHC6_N_Day ""; +BA_ "sigDespEng" SG_ 1319 EHC6_N_Hour "Hour"; +BA_ "sigSecLevel" SG_ 1319 EHC6_N_Hour ""; +BA_ "sigConfig" SG_ 1319 EHC6_N_Hour ""; +BA_ "sigExplanation" SG_ 1319 EHC6_N_Hour ""; +BA_ "sigDespEng" SG_ 1319 EHC6_N_Minute "Minute"; +BA_ "sigSecLevel" SG_ 1319 EHC6_N_Minute ""; +BA_ "sigConfig" SG_ 1319 EHC6_N_Minute ""; +BA_ "sigExplanation" SG_ 1319 EHC6_N_Minute ""; +BA_ "sigDespEng" SG_ 1319 EHC6_N_Second "Second"; +BA_ "sigSecLevel" SG_ 1319 EHC6_N_Second ""; +BA_ "sigConfig" SG_ 1319 EHC6_N_Second ""; +BA_ "sigExplanation" SG_ 1319 EHC6_N_Second ""; +BA_ "GenMsgCycleTime" BO_ 1184 50; +BA_ "sigDespEng" SG_ 1184 BCM1_Cmd_PositionLamp "TheCommandofPositionLamp,BCMjudgeallstationsthatneedlightthepositonlamponandsendthiscommandinCANbus.LightthepositionlamponintheIPC"; +BA_ "sigSecLevel" SG_ 1184 BCM1_Cmd_PositionLamp ""; +BA_ "sigConfig" SG_ 1184 BCM1_Cmd_PositionLamp ""; +BA_ "sigExplanation" SG_ 1184 BCM1_Cmd_PositionLamp ""; +BA_ "GenMsgCycleTime" BO_ 1383 100; +BA_ "sigDespEng" SG_ 1383 BCM9_St_OTAmode "OTAmodeidicator"; +BA_ "sigSecLevel" SG_ 1383 BCM9_St_OTAmode ""; +BA_ "sigConfig" SG_ 1383 BCM9_St_OTAmode ""; +BA_ "sigExplanation" SG_ 1383 BCM9_St_OTAmode ""; +BA_ "GenMsgCycleTime" BO_ 1392 50; +BA_ "sigDespEng" SG_ 1392 CAPE1_F_PowerMode "VehiclepowermodevalidityThissignalindicatesifpowermodesignalisvalidornot"; +BA_ "sigSecLevel" SG_ 1392 CAPE1_F_PowerMode ""; +BA_ "sigConfig" SG_ 1392 CAPE1_F_PowerMode ""; +BA_ "sigExplanation" SG_ 1392 CAPE1_F_PowerMode ""; +BA_ "sigDespEng" SG_ 1392 CAPE1_St_PowerMode "VehiclepowermodeThissignalindicatestheinnerpowermodeofPDM"; +BA_ "sigSecLevel" SG_ 1392 CAPE1_St_PowerMode ""; +BA_ "sigConfig" SG_ 1392 CAPE1_St_PowerMode ""; +BA_ "sigExplanation" SG_ 1392 CAPE1_St_PowerMode ""; +BA_ "sigDespEng" SG_ 1392 CAPE1_RollingCounter "Thecountervalueshallbeupdatedinthesequence0,1,2,3......255,0,1,2,3......255,etc.Uponstartup,theinitialvalueoftheMessageCountersignalshallbe0.��E=N��"; +BA_ "sigSecLevel" SG_ 1392 CAPE1_RollingCounter ""; +BA_ "sigConfig" SG_ 1392 CAPE1_RollingCounter ""; +BA_ "sigExplanation" SG_ 1392 CAPE1_RollingCounter ""; +BA_ "sigDespEng" SG_ 1392 CAPE1_CRC "CRC8"; +BA_ "sigSecLevel" SG_ 1392 CAPE1_CRC ""; +BA_ "sigConfig" SG_ 1392 CAPE1_CRC ""; +BA_ "sigExplanation" SG_ 1392 CAPE1_CRC ""; +BA_ "GenMsgCycleTime" BO_ 1321 100; +BA_ "sigDespEng" SG_ 1321 TBOX1_St_OTAmode "TBOX����ڵ����OTAģʽ��Ŀ��Ϊ��OTAģʽ�����У���Ҫ�����û��ɲ����Ĺ��ܣ���������벻��ȫ״̬��ͬʱ�����ܺ�."; +BA_ "sigSecLevel" SG_ 1321 TBOX1_St_OTAmode ""; +BA_ "sigConfig" SG_ 1321 TBOX1_St_OTAmode ""; +BA_ "sigExplanation" SG_ 1321 TBOX1_St_OTAmode ""; +VAL_ 1504 EGSM1_St_DrvRqShft 15 "Signal not available��double fault shift sensor��" 14 "Shifter not initialized" 13 "Reserved" 12 "Reserved" 11 "Reserved" 10 "Reserved" 9 "Reserved" 8 "Reserved" 7 "L_Backward 1" 6 "L_Forward 1" 5 "L_Zero" 4 "Backward 2" 3 "Backward 1" 2 "Forward 1" 1 "Forward 2" 0 "Zero" ; +VAL_ 1504 EGSM1_St_DrvRqShftInv 15 "Zero" 14 "Forward 2" 13 "Forward 1" 12 "Backward 1" 11 "Backward 2" 10 "L_Zero" 9 "L_Forward 1" 8 "L_Backward 1" 1 "Shifter not initialized" 0 "Signal not available��double fault shift sensor��" ; +VAL_ 1504 EGSM1_St_DrvRqUnlock 3 "reserved" 2 "reserved" 1 "Driver request unlock button" 0 "No request" ; +VAL_ 1504 EGSM1_St_DrvRqPark 3 "reserved" 2 "Park button fault" 1 "driver request park button" 0 "no request" ; +VAL_ 1504 EGSM1_St_StayInM 3 "Reserved" 2 "Display ��Please move the shift lever to Auto Lane�� and always ring" 1 "Display ��Please move the shift lever to Auto Lane�� and only ring twice" 0 "No request" ; +VAL_ 1504 EGSM1_St_EShiftFault 1 "E-shift fault" 0 "E-shift Normal" ; +VAL_ 1504 EGSM1_St_ShiftPadReqUp 3 "Fault" 2 "Reserved" 1 "Active - Up Shift" 0 "Inactive - No request" ; +VAL_ 1504 EGSM1_St_ShiftPadReqDown 3 "Fault" 2 "Reserved" 1 "Active - Down Shift" 0 "Inactive - No request" ; +VAL_ 640 EMS5_St_EngineCranking 1 "Active" 0 "Inactive" ; +VAL_ 1248 TCM5_St_ShiftLeverPos_EGSM 7 "Invalid value" 6 "Blank" 5 "S(RESERVED)" 4 "M" 3 "D" 2 "N" 1 "R" 0 "P" ; +VAL_ 1293 CGW1_St_OTAmode 1 "in OTA mode" 0 "not in OTA mode" ; +VAL_ 1568 IPC1_F_RheostatLevel 3 "Value unreliable" 2 "Value above upper limit" 1 "Value below lower limit" 0 "Value OK" ; +VAL_ 1568 IPC1_F_OdometerParameter 1 "Value unreliable" 0 "Value OK" ; +VAL_ 1568 IPC1_St_RheostatLevel 7 "Reserved" 6 "Reserved" 5 "level6" 4 "level5" 3 "level4" 2 "level3" 1 "level2" 0 "level1" ; +VAL_ 1184 BCM1_Cmd_PositionLamp 1 "ON" 0 "OFF" ; +VAL_ 1383 BCM9_St_OTAmode 1 "In OTA mode" 0 "Not in OTA mode" ; +VAL_ 1392 CAPE1_F_PowerMode 2 "Valid" 1 "Invalid" 0 "Not available" ; +VAL_ 1392 CAPE1_St_PowerMode 5 "CRANK OFF(RESERVE)" 4 "CRANK" 3 "CRANK PENDING(RESERVE)" 2 "RUN" 1 "ACC" 0 "OFF" ; +VAL_ 1321 TBOX1_St_OTAmode 1 "in OTA mode" 0 "not in OTA mode" ; diff --git a/Shifter.py b/Shifter.py index 48472d0..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 diff --git a/USBCAN.py b/USBCAN.py index 42ee2d2..45bfe07 100644 --- a/USBCAN.py +++ b/USBCAN.py @@ -423,7 +423,7 @@ def Receive(self, len=10, timeout=None): raw_message = (VCI_CAN_OBJ * len)() - timeout = -1 if timeout is None else c_int(timeout * 1000) + timeout = -1 if timeout is None else c_int(timeout) msg = list() rtn = USBCAN_DLL.VCI_Receive(self.device, self.device_index, self.channel, diff --git a/widgets/ShifterTool.py b/widgets/ShifterTool.py index d357388..0fb5bd0 100644 --- a/widgets/ShifterTool.py +++ b/widgets/ShifterTool.py @@ -346,7 +346,7 @@ output_key_temp & 0xFF) # output_key_temp = ((((temp_key >> 4) ^ temp_key) # << 3) ^ temp_key) & 0xFFFFFFFF - elif level == 0x09: + elif level == 0x11: output_key_temp = 0x70237577 output_key = struct.pack('BBBB', (output_key_temp >> 24) & 0xFF, (output_key_temp >> 16) & 0xFF, @@ -551,7 +551,7 @@ self.needdisconnect.value = 0 self._isOpen.value = 0 else: - msg, num = self._usbcan.Receive(len=1) + msg, num = self._usbcan.Receive(len=10, timeout=10) if not num == 0: for i in range(num): if msg[i].arbitration_id == self.shifter.canid.phy_txId: @@ -606,7 +606,7 @@ if self._isOpen.value == 0: if self._usbcan is None: self.update_HardwareDevice() - can_filters = [{'can_id': 0x420, 'can_mask': 0xFFFFFFFF}] + can_filters = [{'can_id': 0x5E0, 'can_mask': 0xFFFFFFFF}] bitrate = list( TIMING_DICT.keys())[self.devicedescription.baudrate] @@ -721,14 +721,14 @@ for i in range(_dataSize): receiveNum += 1 msg = self.msgQueue.get() - if msg.arbitration_id == 0x420: - self.shifter.FramUnpack(msg.arbitration_id, msg.data) - resp_data = self.Vehicle.ShiftLogic(self.shifter) - self.send_VehiclePosition(resp_data) + # if msg.arbitration_id == 0x420: + # self.shifter.FramUnpack(msg.arbitration_id, msg.data) + # resp_data = self.Vehicle.ShiftLogic(self.shifter) + # self.send_VehiclePosition(resp_data) formateddata.append(self._formatMsgData( receiveNum, msg, True)) # return a data list self._insertDataSmooth(data=formateddata, datasize=_dataSize) - self.dispShiftstatus() + # self.dispShiftstatus() def _insertDataSmooth(self, data, datasize): # row = 6-datasize @@ -786,7 +786,7 @@ "background-color:rgb(255, 85, 127)") def SecurityUnlockLevel_2(self): - data = self.udsclient.unlock_security_access(9) + data = self.udsclient.unlock_security_access(0x11) if data.positive: self.UI.pushButton_32.setStyleSheet( "background-color:rgb(255, 85, 127)") @@ -1006,7 +1006,7 @@ response = self.udsclient.change_session(3) if response.positive: self.disp_string('>>> 解锁安全访问') - response = self.udsclient.unlock_security_access(9) + response = self.udsclient.unlock_security_access(0x11) if response.positive: # 检查编程条件 @@ -1041,7 +1041,7 @@ if response.positive: # 安全访问 self.disp_string('>>> 安全访问') - response = self.udsclient.unlock_security_access(9) + response = self.udsclient.unlock_security_access(0x11) # print(response) if response.positive: self.disp_string('>>> 请求下载驱动文件') -- Gitblit v1.8.0