feat: generate parser code
This commit is contained in:
parent
04db35effb
commit
6444378882
|
@ -38,7 +38,7 @@ sp.encode_message(msg_id, {"ACCAccReqValHSC2": -5.1})
|
|||
"""
|
||||
|
||||
import logging
|
||||
from ._dbcc import DbcParser, version
|
||||
from ._dbcc import DbcParser, GenHelper, version
|
||||
|
||||
|
||||
__author__ = ['"donkey" <anjingyu_ws@foxmail.com>']
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "dbcc/dbc_iterator.h"
|
||||
#include "dbcc/message.h"
|
||||
#include "dbcc/signal.h"
|
||||
#include "dbcc/helper/gen_helper.h"
|
||||
#include "dbcc/version.h"
|
||||
|
||||
using namespace pybind11;
|
||||
|
@ -52,6 +53,12 @@ PYBIND11_MODULE(_dbcc, m)
|
|||
ss << "<dbcc.Signal name: " << s.Name() << ">";
|
||||
return ss.str();
|
||||
})
|
||||
.def("dbc_str",
|
||||
[](ad::dbcc::Signal& sig) {
|
||||
std::stringstream ss;
|
||||
ss << sig;
|
||||
return ss.str();
|
||||
})
|
||||
.def("encode",
|
||||
[](ad::dbcc::Signal& sig, double value, bytearray& ba) {
|
||||
Py_buffer buffer;
|
||||
|
@ -127,6 +134,12 @@ PYBIND11_MODULE(_dbcc, m)
|
|||
<< ", " << std::dec << s.Id() << ">";
|
||||
return ss.str();
|
||||
})
|
||||
.def("dbc_str",
|
||||
[](ad::dbcc::Message& m) {
|
||||
std::stringstream ss;
|
||||
ss << m;
|
||||
return ss.str();
|
||||
})
|
||||
.def_property_readonly("name", &ad::dbcc::Message::Name)
|
||||
.def_property_readonly("id", &ad::dbcc::Message::Id)
|
||||
.def_property_readonly("dlc", &ad::dbcc::Message::Dlc)
|
||||
|
@ -149,4 +162,27 @@ PYBIND11_MODULE(_dbcc, m)
|
|||
}
|
||||
return s[i];
|
||||
});
|
||||
class_<ad::dbcc::helper::GenHelper>(m, "GenHelper")
|
||||
.def(init<const std::string&, const std::string&>())
|
||||
.def("gen_all", [](ad::dbcc::helper::GenHelper &gen_helper) {
|
||||
return gen_helper.GenAll();
|
||||
})
|
||||
.def("gen_msg_def", [](ad::dbcc::helper::GenHelper &gen_helper, const std::string &msg, int indent_level) {
|
||||
return gen_helper.GenMessageDef(msg, indent_level);
|
||||
})
|
||||
.def("gen_msg_unpack_decl", [](ad::dbcc::helper::GenHelper &gen_helper, const std::string &msg, int indent_level) {
|
||||
return gen_helper.GenMessageUnpackDecl(msg, indent_level);
|
||||
})
|
||||
.def("gen_msg_unpack_def", [](ad::dbcc::helper::GenHelper &gen_helper, const std::string &msg, int indent_level) {
|
||||
return gen_helper.GenMessageUnpackDef(msg, indent_level);
|
||||
})
|
||||
.def("gen_msg_pack_decl", [](ad::dbcc::helper::GenHelper &gen_helper, const std::string &msg, int indent_level) {
|
||||
return gen_helper.GenMessagePackDecl(msg, indent_level);
|
||||
})
|
||||
.def("gen_msg_pack_def", [](ad::dbcc::helper::GenHelper &gen_helper, const std::string &msg, int indent_level) {
|
||||
return gen_helper.GenMessagePackDef(msg, indent_level);
|
||||
})
|
||||
.def("gen_macros", [](ad::dbcc::helper::GenHelper &gen_helper) {
|
||||
return ad::dbcc::helper::GenHelper::GenMacros();
|
||||
});
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ public:
|
|||
std::string GenMessagePackDecl(const std::string &msg, int indent_level);
|
||||
std::string GenMessagePackDef(const std::string &msg, int indent_level);
|
||||
|
||||
static std::string GenMacros(int indent_level = 0);
|
||||
static std::string GenMessageDef(const ad::dbcc::Message &msg, const ad::dbcc::helper::NameSignalVector &sigs,
|
||||
int indent_level);
|
||||
|
||||
|
|
|
@ -272,6 +272,20 @@ std::string GenHelper::GenMessagePackDef(const std::string &msg, int indent_leve
|
|||
return impl_->GenMessagePackDef(msg, indent_level);
|
||||
}
|
||||
|
||||
std::string GenHelper::GenMacros(int indent_level)
|
||||
{
|
||||
std::stringstream ss;
|
||||
const std::string indent = GenerateIndent(indent_level);
|
||||
|
||||
ss << indent << "#define PACK_LEFT_SHIFT(value,shift,mask) (uint8_t)((uint8_t)(value << shift) & mask)\n";
|
||||
ss << indent << "#define UNPACK_LEFT_SHIFT(_type,value,shift,mask) (_type)((_type)(value & mask) << shift)\n\n";
|
||||
|
||||
ss << indent << "#define PACK_RIGHT_SHIFT(value,shift,mask) (uint8_t)((uint8_t)(value >> shift) & mask)\n";
|
||||
ss << indent << "#define UNPACK_RIGHT_SHIFT(_type,value,shift,mask) (_type)((_type)(value & mask) >> shift)\n";
|
||||
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
/*
|
||||
struct <msg.Name()>_<msg.Id()>
|
||||
{
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,638 @@
|
|||
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_: AD VCU
|
||||
VAL_TABLE_ Status_Yawrate_Z1 2 "Signal failure" 1 "Sensor not available" 0 "Signal in specification" ;
|
||||
VAL_TABLE_ Parallel_torque_or_speed_or_Acc 2 "Acc_Control" 1 "Speed_Control" 0 "Torque_Control" ;
|
||||
VAL_TABLE_ Mode_Control 1 "Value" 0 "Invalue" ;
|
||||
VAL_TABLE_ VCU_EPS_Direction 1 "Right" 0 "Left" ;
|
||||
VAL_TABLE_ EPS_Direction 255 "Right" 0 "Left" ;
|
||||
VAL_TABLE_ iECU_Power_Control 1 "Speed_Control" 0 "Torque_Control" ;
|
||||
VAL_TABLE_ iECU_Flag 1 "Valid" 0 "Invalid" ;
|
||||
VAL_TABLE_ iECU_Left_Turn_Light 1 "Turn On" 0 "Turn Off" ;
|
||||
VAL_TABLE_ iECU_HeadLight 1 "Turn On" 0 "Turn Off" ;
|
||||
VAL_TABLE_ iECU_Right_Turn_Light 1 "Turn On" 0 "Turn Off" ;
|
||||
VAL_TABLE_ iECU_Gear 3 "R" 2 "N" 1 "D" 0 "P" ;
|
||||
VAL_TABLE_ MCU_Motor_Error_Grade_Table 3 "Break Down" 2 "Serious Fault" 1 "Slight Fault" 0 "Normal" ;
|
||||
VAL_TABLE_ Energy_Recovery_State_Table 1 "有能量回收" 0 "无能量回收" ;
|
||||
VAL_TABLE_ Shift_Table 3 "Reserved" 2 "后退" 1 "前进" 0 "空档" ;
|
||||
VAL_TABLE_ DriveMode_Table 3 "VCU速度控制" 2 "VCU扭矩控制" 1 "Emergency Stop 急停,0转速" 0 "禁止运行,0扭矩" ;
|
||||
VAL_TABLE_ VCU_Motor_Request_Valid_Table_ 1 "Valid" 0 "Invalid" ;
|
||||
VAL_TABLE_ for_release 3 "ERROR" 2 "Press Down" 1 "Pull Up
|
||||
|
||||
" 0 "Release" ;
|
||||
VAL_TABLE_ to_no_fault 1 "Fault" 0 "No Fault" ;
|
||||
VAL_TABLE_ for_unknow 3 "Reserved" 2 "Released" 1 "Parked" 0 "Unknow" ;
|
||||
VAL_TABLE_ to_valid 1 "Invalid" 0 "Valid " ;
|
||||
VAL_TABLE_ for_no_request 3 "Reserved" 2 "LockBrakeRquest
|
||||
|
||||
" 1 "ReleaseBrakeRequest" 0 "NoRequest" ;
|
||||
|
||||
|
||||
BO_ 689 BMS_2B1h: 8 VCU
|
||||
SG_ BMS_HVBatLowestTemCellNum : 32|8@1+ (1,0) [0|250] "" AD
|
||||
SG_ BMS_HVBatLowestTem : 0|8@1+ (1,-40) [-40|125] "℃" AD
|
||||
SG_ BMS_HVBatHighestTemCellNum : 40|8@1+ (1,0) [0|250] "" AD
|
||||
SG_ BMS_HVBatHighestTem : 8|8@1+ (1,-40) [-40|125] "℃" AD
|
||||
|
||||
BO_ 673 BMS_2A1h: 8 VCU
|
||||
SG_ BMS_HVBatCellVolDiff : 48|16@1+ (1,0) [0|65535] "" Vector__XXX
|
||||
SG_ BMS_HVBatHighestVolCellNum : 40|8@1+ (1,0) [0|250] "" AD
|
||||
SG_ BMS_HVBatLowestVolCellNum : 32|8@1+ (1,0) [0|250] "" AD
|
||||
SG_ BMS_HVBatHighestCellVol : 16|16@1+ (1,0) [0|5000] "mV" AD
|
||||
SG_ BMS_HVBatLowestCellVol : 0|16@1+ (1,0) [0|5000] "mV" AD
|
||||
|
||||
BO_ 160 BMS_A0h: 8 VCU
|
||||
SG_ BMS_HVDisplaySOH : 56|8@1+ (1,0) [0|100] "%" AD
|
||||
SG_ BMS_Sys_Flt : 48|8@1+ (1,0) [0|255] "" AD
|
||||
SG_ BMS_Charge_StsCc : 44|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ BMS_Sys_Sts : 40|3@1+ (1,0) [0|7] "" AD
|
||||
SG_ BMS_HVBatSOC : 32|8@1+ (0.4,0) [0|100] "%" AD
|
||||
SG_ BMS_HVBatCrnt : 0|16@1+ (0.1,-1000) [-1000|1000] "A" AD
|
||||
SG_ BMS_HVBatVol : 16|16@1+ (0.1,0) [0|1000] "V" AD
|
||||
|
||||
BO_ 782 VCU_Vehicle_Error_Status: 8 VCU
|
||||
SG_ VCU_EBSActinWhenEPBMF : 11|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_EPBActinWhenEBSMF : 12|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_PwrCtrl_Fault : 24|3@1+ (1,0) [0|7] "" Vector__XXX
|
||||
SG_ Error_Code : 0|10@1+ (1,0) [0|999] "" AD
|
||||
|
||||
BO_ 323 DBS_Status2: 8 VCU
|
||||
SG_ DBS_WarringCode : 24|16@1+ (1,0) [0|65535] "" AD
|
||||
SG_ DBS_CheckSum2 : 56|8@1+ (1,0) [0|255] "" AD
|
||||
SG_ DBS_Fault_Code : 0|24@1+ (1,0) [0|16777215] "N/A" AD
|
||||
SG_ DBS_RollingCounter2 : 48|4@1+ (1,0) [0|15] "" AD
|
||||
|
||||
BO_ 322 DBS_Status: 8 VCU
|
||||
SG_ DBS_EstopFlag : 54|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ DBS_PedaiFlag : 55|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ BrakePressureReqACK : 16|8@1+ (1,0) [0|1] "" AD
|
||||
SG_ DBS_Work_Mode : 8|8@1+ (1,0) [0|2] "" AD
|
||||
SG_ DBS_RollingCounter : 48|4@1+ (1,0) [0|15] "" AD
|
||||
SG_ DBS_Ref_Iq : 40|8@1+ (0.5,-20) [-20|107.5] "A" AD
|
||||
SG_ DBS_Park_Warning : 6|2@1+ (1,0) [0|1] "" AD
|
||||
SG_ DBS_PeadalOpening : 32|8@1+ (1,0) [0|100] "%" AD
|
||||
SG_ DBS_CheckSum : 56|8@1+ (1,0) [0|255] "" AD
|
||||
SG_ DBS_HP_pressure : 24|8@1+ (0.1,0) [0|10] "Mpa" AD
|
||||
SG_ DBS_System_Status : 0|2@1+ (1,0) [0|3] "N/A" AD
|
||||
|
||||
BO_ 340 VCU_DBS_Req: 8 VCU
|
||||
SG_ VCU_DBS_Work_Mode : 8|8@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_ABS_Active : 24|8@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_DBS_Pressure_Request : 16|8@1+ (0.1,0) [0|10] "Mpa" AD
|
||||
SG_ VCU_DBS_Request_Flag : 0|8@1+ (1,0) [0|1] "N/A" AD
|
||||
|
||||
BO_ 778 VCU_Vehicle_HVBat_Status: 8 VCU
|
||||
SG_ Veh_SOH : 0|8@1+ (1,0) [0|100] "%" AD
|
||||
SG_ Vehicle_Soc : 48|8@1+ (1,0) [0|100] "%" AD
|
||||
SG_ Vehicle_HVBat_MsgCntr : 60|4@1+ (1,0) [0|15] "" AD
|
||||
SG_ High_Voltage_Battery_Voltage : 24|16@1+ (0.1,0) [0|1000] "V" AD
|
||||
SG_ High_Voltage_Battery_MaxTem : 40|8@1+ (1,-40) [-40|210] "℃" AD
|
||||
SG_ High_Voltage_Battery_Current : 8|16@1+ (0.1,-1000) [-1000|1000] "A" AD
|
||||
|
||||
BO_ 771 VCU_Vehicle_Status_1: 8 VCU
|
||||
SG_ Vehicle_Range : 8|10@1+ (1,0) [0|1023] "Km" AD
|
||||
SG_ Drive_Mode_State : 4|4@1+ (1,0) [0|15] "" AD
|
||||
SG_ EPB_Status : 3|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Accelerator_Pedal_Status : 40|8@1+ (1,0) [0|100] "%" AD
|
||||
SG_ Brake_Pedal_Status : 32|8@1+ (1,0) [0|100] "%" AD
|
||||
SG_ Vehicle_Status_1_MsgCntr : 60|4@1+ (1,0) [0|15] "" AD
|
||||
SG_ Vehicle_Gear : 0|2@1+ (1,0) [0|3] "N/A" AD
|
||||
|
||||
BO_ 772 VCU_Vehicle_Status_2: 8 VCU
|
||||
SG_ Vehicle_Status_2_MsgCntr : 60|4@1+ (1,0) [0|15] "" AD
|
||||
SG_ Vehicle_Steering_Angle : 32|16@1+ (0.1,-35) [-35|35] "deg" AD
|
||||
SG_ Vehicle_Brake_Pressure : 16|16@1+ (0.01,0) [0|10] "Mpa" AD
|
||||
SG_ Vehicle_Speed : 0|16@1+ (0.1,-80) [-80|80] "km/h" AD
|
||||
|
||||
BO_ 769 VCU_Vehicle_Diagnosis: 8 VCU
|
||||
SG_ Horn_2_State : 43|1@1+ (1,0) [0|1] "" Vector__XXX
|
||||
SG_ VCU_VehRdy : 37|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Oil_pot_State : 4|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Power_Button_State : 2|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ EPB_Button_State : 3|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ EPB_Diagnosis : 14|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Move_Switch : 47|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ LowBeam_State : 33|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Reversing_Lights_State : 34|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Tire_Sensor_State : 41|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Brake_Light_State : 42|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Vehicle_Fault_Grade : 16|2@1+ (1,0) [0|3] "" AD
|
||||
SG_ EPS_State : 10|1@1+ (1,0) [0|1] "N/A" AD
|
||||
SG_ Vehicle_Diagnosis_MsgCntr : 60|4@1+ (1,0) [0|15] "" AD
|
||||
SG_ HighBeam_State : 15|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Right_Turn_Light_State : 48|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Left_Turn_Light_State : 32|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ BMS_State : 9|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ Emergency_Button_State : 0|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ DBS_State : 7|1@1+ (1,0) [0|1] "N/A" AD
|
||||
SG_ AD_State : 6|1@1+ (1,0) [0|1] "N/A" AD
|
||||
SG_ Motor_State : 1|1@1+ (1,0) [0|1] "N/A" AD
|
||||
|
||||
BO_ 399 EPS_Status: 8 VCU
|
||||
SG_ EPS_Fault_Code : 60|4@1+ (1,0) [0|15] "" AD
|
||||
SG_ EPS_Current : 40|8@1+ (1,-128) [-128|127] "A" AD
|
||||
SG_ EPS_Fault_Grade : 56|4@1+ (1,0) [0|255] "" AD
|
||||
SG_ EPS_Temperature : 48|8@1+ (1,-128) [-128|127] "℃" AD
|
||||
SG_ EPS_Angle_Spd : 24|16@1+ (1,0) [50|800] "N/A" AD
|
||||
SG_ EPS_Calibration_Status : 5|1@1+ (1,0) [0|1] "N/A" AD
|
||||
SG_ EPS_StrAngle_Act : 8|16@1+ (1,-500) [-500|500] "deg" AD
|
||||
SG_ EPS_Fault : 6|1@1+ (1,0) [0|1] "Nm" AD
|
||||
SG_ EPS_Work_Mode_Status : 7|1@1+ (1,0) [0|1] "N/A" AD
|
||||
|
||||
BO_ 788 VCU_EPS_Req: 8 VCU
|
||||
SG_ VCU_Request_EPS_Angle_Speed : 24|16@1+ (1,0) [50|800] "deg/s" AD
|
||||
SG_ VCU_Request_EPS_Angle_Calibrate : 5|1@1+ (1,0) [0|1] "N/A" AD
|
||||
SG_ VCU_Req_EPS_Target_Angle : 8|16@1+ (1,-500) [-500|500] "deg" AD
|
||||
SG_ VCU_EPS_CtrlEnable : 7|1@1+ (1,0) [0|1] "N/A" AD
|
||||
|
||||
BO_ 267 Remote_Control_Shake: 8 VCU
|
||||
SG_ Remote_X1 : 48|16@1+ (1,-450) [-450|450] "N/A" AD
|
||||
SG_ Remote_Y1 : 32|16@1+ (1,-450) [-450|450] "N/A" AD
|
||||
SG_ Remote_Y2 : 16|16@1+ (1,-450) [-450|450] "N/A" AD
|
||||
SG_ Remote_X2 : 0|16@1+ (1,-450) [-450|450] "N/A" AD
|
||||
|
||||
BO_ 266 Remote_Control_IO: 8 VCU
|
||||
SG_ Remote_A : 16|8@1+ (1,0) [0|2] "N/A" AD
|
||||
SG_ Remote_D : 40|8@1+ (1,0) [0|2] "N/A" AD
|
||||
SG_ Remote_C : 32|8@1+ (1,0) [0|2] "N/A" AD
|
||||
SG_ Remote_B : 24|8@1+ (1,0) [0|2] "N/A" AD
|
||||
SG_ Remote_F : 8|8@1+ (1,0) [0|2] "N/A" AD
|
||||
SG_ Remote_E : 0|8@1+ (1,0) [0|2] "N/A" AD
|
||||
|
||||
BO_ 886 EPB_Status: 8 VCU
|
||||
SG_ EPB_MANUAL_PARKING_KEY : 24|8@1+ (1,0) [0|0] "" AD
|
||||
SG_ EPB_FINAL_STATES_R : 8|8@1+ (1,0) [0|0] "" AD
|
||||
SG_ EPB_FINAL_STATES_L : 0|8@1+ (1,0) [0|0] "" AD
|
||||
SG_ EPB_FAULT : 16|8@1+ (1,0) [0|0] "" AD
|
||||
|
||||
BO_ 785 VCU_EPB_Req: 8 VCU
|
||||
SG_ VCU_EPB_Parking_Request_R : 0|8@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_EPB_Parking_Request_L : 8|8@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_EPB_Parking_Request_ALL : 16|8@1+ (1,0) [0|0] "" AD
|
||||
SG_ VCU_EPB_Parking_Flag_R : 24|8@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_EPB_Parking_Flag_L : 32|8@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_EPB_Parking_Flag_ALL : 40|8@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_EPB_Clamping_force_R : 48|8@1+ (100,0) [5000|15000] "" AD
|
||||
SG_ VCU_EPB_Clamping_force_L : 56|8@1+ (100,0) [5000|15000] "" AD
|
||||
|
||||
BO_ 16 MCU_DrvMotSt: 8 VCU
|
||||
SG_ Motor_ActIdc : 36|12@1+ (1,0) [0|1000] "A" AD
|
||||
SG_ Motor_ActSpeed : 2|18@1+ (1,-10000) [-10000|10000] "rpm" AD
|
||||
SG_ Motor_ActGear : 0|2@1+ (1,0) [0|0] "" AD
|
||||
SG_ Motor_ActTorque : 20|16@1+ (0.1,-1000) [-1000|5553.5] "Nm" AD
|
||||
SG_ Motor_FalutCode : 56|8@1+ (1,0) [0|255] "" AD
|
||||
SG_ Motor_Temp : 48|8@1+ (1,-50) [-50|205] "C" AD
|
||||
|
||||
BO_ 352 VCU_MCU_Req: 8 VCU
|
||||
SG_ VCU_SoftReset : 5|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_ActiveHVReleaseReq : 4|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_MotNegSpdLmt : 46|6@1+ (150,-9000) [-9000|0] "rpm" AD
|
||||
SG_ VCU_MotNegTrqLmt : 58|6@1+ (5,-315) [-315|0] "N.m" AD
|
||||
SG_ VCU_ClampingBrakeReq : 3|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_VehHVReady : 0|1@1+ (1,0) [0|1] "" AD
|
||||
SG_ VCU_ModeReq : 1|2@1+ (1,0) [0|3] "" AD
|
||||
SG_ VCU_TargetSpdReq : 24|16@1+ (1,-7000) [-7000|8000] "rpm" AD
|
||||
SG_ VCU_MotPosSpdLmt : 40|6@1+ (150,0) [0|8000] "rpm" AD
|
||||
SG_ VCU_MotPosTrqLmt : 52|6@1+ (5,0) [0|315] "N.m" AD
|
||||
SG_ VCU_TargetTqReq : 8|16@1+ (0.1,-1000) [-1000|1000] "N.m" AD
|
||||
|
||||
BO_ 1287 AD_Setup_Control: 8 AD
|
||||
SG_ Couter507 : 4|4@1+ (1,0) [0|15] "" Vector__XXX
|
||||
SG_ AD_flgVirtualFence : 56|1@1+ (1,0) [0|1] "" Vector__XXX
|
||||
SG_ AD_Clear_TRIP : 8|1@1+ (1,0) [0|1] "" VCU
|
||||
SG_ CAN_Sign_tran_State : 16|1@1+ (1,0) [0|1] "" VCU
|
||||
SG_ AD_GrVehSig : 40|16@1+ (0.01,-327.68) [-327.68|327.67] "°" VCU
|
||||
|
||||
BO_ 1286 AD_Control_Body: 8 AD
|
||||
SG_ Couter506 : 4|4@1+ (1,0) [0|15] "" Vector__XXX
|
||||
SG_ AD_flgEmeStpRCS : 32|1@1+ (1,0) [0|1] "" Vector__XXX
|
||||
SG_ AD_Horn_2_Control : 16|1@1+ (1,0) [0|1] "" Vector__XXX
|
||||
SG_ AD_Body_Valid : 0|4@1+ (1,0) [0|15] "N/A" VCU
|
||||
SG_ AD_Low_Beam : 11|1@1+ (1,0) [0|1] "N/A" VCU
|
||||
SG_ AD_Reversing_Lights : 10|1@1+ (1,0) [0|1] "" VCU
|
||||
SG_ AD_Double_Flash_Light : 9|1@1+ (1,0) [0|1] "" VCU
|
||||
SG_ AD_Brake_Light : 8|1@1+ (1,0) [0|1] "N/A" VCU
|
||||
SG_ AD_High_Beam : 15|1@1+ (1,0) [0|1] "N/A" VCU
|
||||
SG_ AD_Right_Turn_Light : 13|1@1+ (1,0) [0|1] "N/A" VCU
|
||||
SG_ AD_Left_Turn_Light : 12|1@1+ (1,0) [0|1] "N/A" VCU
|
||||
|
||||
BO_ 1284 AD_Control_Accelerate: 8 AD
|
||||
SG_ Couter504 : 4|4@1+ (1,0) [0|15] "" Vector__XXX
|
||||
SG_ AD_Speed_Req : 48|16@1+ (0.1,0) [0|80] "km/h" VCU
|
||||
SG_ AD_Accelerate_Gear : 24|8@1+ (1,0) [0|3] "N/A" VCU
|
||||
SG_ AD_Accelerate_Valid : 0|4@1+ (1,0) [0|15] "N/A" VCU
|
||||
|
||||
BO_ 1283 AD_Control_Brake: 8 AD
|
||||
SG_ Couter503 : 4|4@1+ (1,0) [0|15] "" Vector__XXX
|
||||
SG_ AD_BrakePressure_Req : 8|8@1+ (1,0) [0|100] "%" VCU
|
||||
SG_ AD_DBS_Valid : 0|4@1+ (1,0) [0|15] "N/A" VCU
|
||||
|
||||
BO_ 1282 AD_Control_Steering: 8 AD
|
||||
SG_ Couter502 : 4|4@1+ (1,0) [0|15] "" Vector__XXX
|
||||
SG_ AD_Steering_Speed_Cmd : 8|8@1+ (0.1,3.5) [3.5|29] "" VCU
|
||||
SG_ AD_Steering_Angle_Cmd : 32|16@1+ (0.1,-30) [-30|30] "deg" VCU
|
||||
SG_ AD_Steering_Valid : 0|4@1+ (1,0) [0|15] "N/A" VCU
|
||||
|
||||
|
||||
|
||||
CM_ BO_ 689 "本消息由VCU转发自子部件";
|
||||
CM_ SG_ 689 BMS_HVBatLowestTemCellNum "High Voltage Battery Lowest Temperature Cell Number
|
||||
有效值范围 1~250
|
||||
0xFE:异常 0xFF:无效";
|
||||
CM_ SG_ 689 BMS_HVBatLowestTem "High Voltage Battery Lowest Temperature";
|
||||
CM_ SG_ 689 BMS_HVBatHighestTemCellNum "High Voltage Battery highest Temperature Cell Number
|
||||
有效值范围 1~250
|
||||
0xFE:异常 0xFF:无效";
|
||||
CM_ SG_ 689 BMS_HVBatHighestTem "High Voltage Battery highest Temperature";
|
||||
CM_ BO_ 673 "本消息由VCU转发自子部件";
|
||||
CM_ SG_ 673 BMS_HVBatCellVolDiff "High Voltage Battery Cell Voltage Difference";
|
||||
CM_ SG_ 673 BMS_HVBatHighestVolCellNum "0x0-0xFF:Cell Number";
|
||||
CM_ SG_ 673 BMS_HVBatLowestVolCellNum "0x0-0xFF:Cell Number";
|
||||
CM_ SG_ 673 BMS_HVBatHighestCellVol "High Voltage Battery highest Cell Voltage";
|
||||
CM_ SG_ 673 BMS_HVBatLowestCellVol "High Voltage Battery Lowest Cell Voltage";
|
||||
CM_ BO_ 160 "本消息由VCU转发自子部件";
|
||||
CM_ SG_ 160 BMS_HVDisplaySOH "显示SOH";
|
||||
CM_ SG_ 160 BMS_Sys_Flt "故障代码 ";
|
||||
CM_ SG_ 160 BMS_Charge_StsCc "慢充连接状态
|
||||
0x00: connect
|
||||
0x01: disconect";
|
||||
CM_ SG_ 160 BMS_Sys_Sts "0x0:Normal 正常
|
||||
0x1:Level 1 Fault 一级故障(告警)
|
||||
0x2:Level 2 Fault 二级故障(限功率)
|
||||
0x3:Level 3 Fault 三级故障(限功率为0,主动停机)
|
||||
";
|
||||
CM_ SG_ 160 BMS_HVBatSOC "High Voltage Battery State Of Charge
|
||||
高压电池SOC状态";
|
||||
CM_ SG_ 160 BMS_HVBatCrnt "High Voltage Battery Current
|
||||
高压电池当前电流";
|
||||
CM_ BO_ 782 "VCU车辆故障反馈";
|
||||
CM_ SG_ 782 VCU_EBSActinWhenEPBMF "EPB故障,EBS介入标志位";
|
||||
CM_ SG_ 782 VCU_EPBActinWhenEBSMF "EBS故障,EPB介入标志位";
|
||||
CM_ SG_ 782 VCU_PwrCtrl_Fault "0x00:电源管理无故障
|
||||
0x01:下电条件未满足
|
||||
0x02:重启条件未满足,表现为有限重启";
|
||||
CM_ SG_ 782 Error_Code "故障序号 故障类型
|
||||
0-9 驱动系统故障
|
||||
10-19 制动系统故障
|
||||
20-29 转向系统故障
|
||||
30-39 电池管理系统故障
|
||||
40-49 底盘DC-DC故障
|
||||
50-59 自动驾驶DC-DC故障
|
||||
60-69 充电机故障
|
||||
70-79 胎压监测故障
|
||||
80-89 遥控器故障、轮速传感器故障
|
||||
90-99 备用(自动驾驶系统)
|
||||
100-300 BMS具体故障代码
|
||||
999 挪车模式提示
|
||||
";
|
||||
CM_ BO_ 323 "本消息由VCU转发自子部件";
|
||||
CM_ SG_ 323 DBS_WarringCode "警告类型。
|
||||
第1bit:急停按键闭合警告;
|
||||
第2bit:驻车时间过长,超1min;
|
||||
第3bit:CAN0中断警告;
|
||||
第4bit:CAN1中断警告;
|
||||
第5bit:点火线断开警告;";
|
||||
CM_ SG_ 323 DBS_CheckSum2 "CheckSum校验和,Checksum = byte0 XOR byte1 XOR byte2 XOR ····· XOR byte6";
|
||||
CM_ SG_ 323 DBS_Fault_Code "故障类型。
|
||||
第1bit:过载保护;
|
||||
第2bit:过温保护;
|
||||
第3bit:过流保护;
|
||||
第4bit:电源欠压故障;
|
||||
第5bit:电源过压故障;
|
||||
第6bit:压力不足;
|
||||
第7bit:电机故障;
|
||||
第8bit:通讯故障;
|
||||
第9bit:电流采样故障;
|
||||
第10bit:驱动故障;
|
||||
第11bit:磁编故障;
|
||||
第12bit:压力传感器故障;
|
||||
第13bit:踏板位置传感器故障;
|
||||
第14bit:其他故障;";
|
||||
CM_ SG_ 323 DBS_RollingCounter2 "从0到15循环计数,如果通信中断,则重新从0开始计数";
|
||||
CM_ BO_ 322 "本消息由VCU转发自子部件";
|
||||
CM_ SG_ 322 DBS_EstopFlag "急停标志位";
|
||||
CM_ SG_ 322 DBS_PedaiFlag "踏板插入标志位:
|
||||
0:踏板未插入
|
||||
1:踏板已插入";
|
||||
CM_ SG_ 322 BrakePressureReqACK "制动压力请求应答,DBS执行完成应答有效
|
||||
0x0:Not ACK
|
||||
0x1: ACK ";
|
||||
CM_ SG_ 322 DBS_Work_Mode "工作模式(0:线控液压控制,1:排气模式,2:踏板模式)
|
||||
0x0:CAN control
|
||||
0x1:Exhaust Mode
|
||||
0x2:Pedal Mode (踏板模式为0-5V电信号输入,对应0-8MPa压力反馈,有电压输入时,优先进入该模式) ";
|
||||
CM_ SG_ 322 DBS_RollingCounter "从0到15循环计数,如果通信中断,则重新从0开始计数";
|
||||
CM_ SG_ 322 DBS_Ref_Iq "实际电流";
|
||||
CM_ SG_ 322 DBS_Park_Warning "驻车时间警告信号。0:正常工作;1:驻车时间超过1分钟,发出警告,建议EPB驻车请求。";
|
||||
CM_ SG_ 322 DBS_PeadalOpening "踏板开合度(0%—100%)";
|
||||
CM_ SG_ 322 DBS_CheckSum "CheckSum校验和,Checksum = byte0 XOR byte1 XOR byte2 XOR ····· XOR byte6";
|
||||
CM_ SG_ 322 DBS_HP_pressure "制动系统压力反馈";
|
||||
CM_ SG_ 322 DBS_System_Status "系统故障状态
|
||||
0:System No Fault
|
||||
1:System Waring
|
||||
2:System Fault";
|
||||
CM_ BO_ 340 "本消息由VCU转发自VCU请求";
|
||||
CM_ SG_ 340 VCU_DBS_Work_Mode "排气模式(0:线控模式,1:排气模式)";
|
||||
CM_ SG_ 340 VCU_ABS_Active "ABS工作标志位
|
||||
0:不工作 ;1:工作";
|
||||
CM_ SG_ 340 VCU_DBS_Pressure_Request "VCU发送给DBS的制动压力请求(0-8Mpa)";
|
||||
CM_ SG_ 340 VCU_DBS_Request_Flag "1表示有效
|
||||
0表示无效";
|
||||
CM_ BO_ 778 "车辆高压电池状态";
|
||||
CM_ SG_ 778 Veh_SOH "0:unKnown,1:充电,2:能量回收,3:正常放电";
|
||||
CM_ SG_ 778 Vehicle_Soc "车辆剩余电量%";
|
||||
CM_ SG_ 778 Vehicle_HVBat_MsgCntr "心跳周期0-15";
|
||||
CM_ SG_ 778 High_Voltage_Battery_Voltage "High Voltage Battery Voltage
|
||||
高压电池当前电压";
|
||||
CM_ SG_ 778 High_Voltage_Battery_MaxTem "高压电池最高实时温度";
|
||||
CM_ SG_ 778 High_Voltage_Battery_Current "High Voltage Battery Current
|
||||
高压电池当前电流,正为放电,负为充电";
|
||||
CM_ BO_ 771 "VCU车辆状态反馈";
|
||||
CM_ SG_ 771 Vehicle_Range "车辆剩余里程";
|
||||
CM_ SG_ 771 Drive_Mode_State "各个模式需要配合模式开关来确认
|
||||
|
||||
1表示AD模式,优先级第三
|
||||
|
||||
3表示故障模式优先级最高禁止运行
|
||||
4表示人工模式
|
||||
优先级第二";
|
||||
CM_ SG_ 771 EPB_Status "0表示释放,1表示加紧";
|
||||
CM_ SG_ 771 Accelerator_Pedal_Status "油门踏板位移量反馈0-100%";
|
||||
CM_ SG_ 771 Brake_Pedal_Status "刹车踏板位移量反馈(0-100%)";
|
||||
CM_ SG_ 771 Vehicle_Status_1_MsgCntr "心跳周期0-15";
|
||||
CM_ SG_ 771 Vehicle_Gear "车辆挡位状态
|
||||
0:P挡
|
||||
1:D挡
|
||||
2:N挡
|
||||
3:R挡";
|
||||
CM_ BO_ 772 "VCU车辆状态反馈";
|
||||
CM_ SG_ 772 Vehicle_Status_2_MsgCntr "心跳周期0-15";
|
||||
CM_ SG_ 772 Vehicle_Steering_Angle "车辆轮端转角(左正右负),转向角速度(暂定)";
|
||||
CM_ SG_ 772 Vehicle_Brake_Pressure "车辆制动管路压力";
|
||||
CM_ SG_ 772 Vehicle_Speed "车辆速度km/h(负为倒车)";
|
||||
CM_ BO_ 769 "VCU车辆状态反馈";
|
||||
CM_ SG_ 769 Horn_2_State "0表示车载大喇叭关,1表示车载大喇叭开";
|
||||
CM_ SG_ 769 Oil_pot_State "制动油液信号
|
||||
0油壶传感器油位正常
|
||||
1不正常";
|
||||
CM_ SG_ 769 Power_Button_State "电源开关
|
||||
0:未按下
|
||||
1:按下";
|
||||
CM_ SG_ 769 EPB_Button_State "EPB驻车开关
|
||||
0:未按下
|
||||
1:按下";
|
||||
CM_ SG_ 769 EPB_Diagnosis "1表示有故障,0表示无故障";
|
||||
CM_ SG_ 769 Move_Switch "挪车开关0表示未按下,1表示按下
|
||||
按下时,底盘不会自动给制动(急停和前后触碰依然有效),仅在遥控模式起效";
|
||||
CM_ SG_ 769 LowBeam_State "0表示小灯关,1表示小灯开";
|
||||
CM_ SG_ 769 Reversing_Lights_State "倒车灯 0表示关 1表示开";
|
||||
CM_ SG_ 769 Tire_Sensor_State "0表示胎压传感器控制盒信号正常
|
||||
1表示胎压传感器控制盒信号丢失";
|
||||
CM_ SG_ 769 Brake_Light_State "0表示制动灯关,1表示制动灯开";
|
||||
CM_ SG_ 769 Vehicle_Fault_Grade "整车故障等级0、1、2、3级故障
|
||||
0级为无故障
|
||||
1级故障 不影响车辆行驶
|
||||
2级故障 速度环限制车速最高5km/h,扭矩环不做限制
|
||||
3级为最高级故障,车辆禁止行驶
|
||||
";
|
||||
CM_ SG_ 769 EPS_State "1表示有故障,0表示无故障";
|
||||
CM_ SG_ 769 Vehicle_Diagnosis_MsgCntr "心跳周期0-15";
|
||||
CM_ SG_ 769 HighBeam_State "0表示大灯关,1表示大灯开";
|
||||
CM_ SG_ 769 Right_Turn_Light_State "0表示右转灯关,1表示右转灯开";
|
||||
CM_ SG_ 769 Left_Turn_Light_State "0表示左转灯关,1表示左转灯开";
|
||||
CM_ SG_ 769 BMS_State "0表示正常,1表示有故障";
|
||||
CM_ SG_ 769 Emergency_Button_State "0表示急停按钮未按下,1表示急停按钮按下";
|
||||
CM_ SG_ 769 DBS_State "1表示有故障,0表示无故障";
|
||||
CM_ SG_ 769 AD_State "0表示接收到AD信号,1表示未接收到AD信号";
|
||||
CM_ SG_ 769 Motor_State "1表示有故障,0表示无故障";
|
||||
CM_ BO_ 399 "本消息由VCU转发自子部件";
|
||||
CM_ SG_ 399 EPS_Fault_Code "0000:无故障
|
||||
0001:输入过压
|
||||
0010:输入欠压
|
||||
0011:控制器过温
|
||||
0100:扭矩传感器故障
|
||||
0101:角度传感察故障
|
||||
0110:控制器内部故障
|
||||
0111:通讯故障
|
||||
1000:角度中位未标定
|
||||
1001:电机及驱动故障
|
||||
|
||||
";
|
||||
CM_ SG_ 399 EPS_Current "当前电流";
|
||||
CM_ SG_ 399 EPS_Fault_Grade "BIT0=1 一级故障
|
||||
BIT1=1 二级故障
|
||||
BIT2=1 三级故障
|
||||
BIT3=1 通讯故障";
|
||||
CM_ SG_ 399 EPS_Temperature "EPS ECU温度";
|
||||
CM_ SG_ 399 EPS_Angle_Spd "EPS角速度反馈
|
||||
";
|
||||
CM_ SG_ 399 EPS_Calibration_Status "1 EPS中位未标定,0 EPS中位已标定";
|
||||
CM_ SG_ 399 EPS_StrAngle_Act "EPS当前角度值";
|
||||
CM_ SG_ 399 EPS_Fault "1 ECU检测到故障,0 ECU未检测到故障";
|
||||
CM_ SG_ 399 EPS_Work_Mode_Status "EPS 1工作模式,0停止模式";
|
||||
CM_ BO_ 788 "本消息由VCU转发自VCU请求";
|
||||
CM_ SG_ 788 VCU_Request_EPS_Angle_Speed "转向角速度";
|
||||
CM_ SG_ 788 VCU_Request_EPS_Angle_Calibrate "不需要对中时,此字节发 0x00 即可";
|
||||
CM_ SG_ 788 VCU_Req_EPS_Target_Angle "请求角度";
|
||||
CM_ SG_ 788 VCU_EPS_CtrlEnable "
|
||||
EPS控制使能,1工作,0停止";
|
||||
CM_ BO_ 267 "本消息由VCU转发自子部件";
|
||||
CM_ BO_ 266 "本消息由VCU转发自子部件";
|
||||
CM_ BO_ 886 "本消息由VCU转发自子部件";
|
||||
CM_ SG_ 886 EPB_MANUAL_PARKING_KEY "按钮状态: 0 Netural,1 释放, 2 锁紧, 3 未接入(未接入手动开关时仍可以can控制),4 开关故障";
|
||||
CM_ SG_ 886 EPB_FINAL_STATES_R "EPB反馈状态: 0x0:Released;0x1:Applied;0x2:Releasing; 0x3:Applying;0x4:unknown;";
|
||||
CM_ SG_ 886 EPB_FINAL_STATES_L "EPB反馈状态: 0x0:Released;0x1:Applied;0x2:Releasing;0x3:Applying;0x4:unknown;";
|
||||
CM_ SG_ 886 EPB_FAULT "EPB故障码: 第1bit:右卡钳故障;第2bit:左卡钳故障; 第3bit:ECU故障; 第4bit:通讯故障(收到VCU请求后,VCU请求中断为通讯故障);第5bit:未知状态";
|
||||
CM_ BO_ 785 "本消息由VCU转发自VCU请求";
|
||||
CM_ SG_ 785 VCU_EPB_Parking_Request_R "VCU请求EPB右卡钳:1 释放, 2 锁紧,3 保留上一状态值";
|
||||
CM_ SG_ 785 VCU_EPB_Parking_Request_L "VCU请求EPB左卡钳:1 释放, 2 锁紧,3 保留上一状态值";
|
||||
CM_ SG_ 785 VCU_EPB_Parking_Request_ALL "VCU请求EPB左右卡钳同时工作:1 释放, 2 锁紧,3 保留上一状态值";
|
||||
CM_ SG_ 785 VCU_EPB_Parking_Flag_R "EPB使能,1有效 0无效";
|
||||
CM_ SG_ 785 VCU_EPB_Parking_Flag_L "EPB使能,1有效 0无效";
|
||||
CM_ SG_ 785 VCU_EPB_Parking_Flag_ALL "EPB使能,1有效 0无效";
|
||||
CM_ SG_ 785 VCU_EPB_Clamping_force_R "右卡钳夹紧力请求0N-15000N";
|
||||
CM_ SG_ 785 VCU_EPB_Clamping_force_L "左卡钳夹紧力请求0N-15000N";
|
||||
CM_ BO_ 16 "本消息由VCU转发自子部件";
|
||||
CM_ SG_ 16 Motor_ActIdc "电机三相电流";
|
||||
CM_ SG_ 16 Motor_ActSpeed "电机转速";
|
||||
CM_ SG_ 16 Motor_ActGear "MCU内部实际响应的档位: 0x00:N档 0x01:前进D档 0x10:后退R档 0x11:预留";
|
||||
CM_ SG_ 16 Motor_ActTorque "电机反馈扭矩";
|
||||
CM_ SG_ 16 Motor_FalutCode "故障码详见故障列表";
|
||||
CM_ SG_ 16 Motor_Temp "电机温度";
|
||||
CM_ BO_ 352 "本消息由VCU转发自VCU请求";
|
||||
CM_ SG_ 352 VCU_ActiveHVReleaseReq "0x00:无请求
|
||||
0x01:主动泄压";
|
||||
CM_ SG_ 352 VCU_MotNegSpdLmt "合普扭矩模式下电机负转速都不应超过此限速";
|
||||
CM_ SG_ 352 VCU_MotNegTrqLmt "合普速度模式下电机负扭矩都不应超过此限值";
|
||||
CM_ SG_ 352 VCU_ClampingBrakeReq "电机抱闸请求
|
||||
0:松抱闸
|
||||
1:抱闸";
|
||||
CM_ SG_ 352 VCU_VehHVReady "电机状态:0:进入待机状态 1:可进入运行状态";
|
||||
CM_ SG_ 352 VCU_ModeReq "电机模式请求:0x0:零扭矩模式 0x1:零速度模式 0x2:扭矩环模式 0x3:速度环模式 ";
|
||||
CM_ SG_ 352 VCU_TargetSpdReq "转速请求:请求的转速,正转速为正转,负转速为反转
|
||||
";
|
||||
CM_ SG_ 352 VCU_MotPosSpdLmt "合普扭矩模式下电机正转速都不应超过此限速";
|
||||
CM_ SG_ 352 VCU_MotPosTrqLmt "合普速度模式下电机正扭矩都不应超过此限值";
|
||||
CM_ SG_ 352 VCU_TargetTqReq "扭矩请求:请求的扭矩,正扭矩为正转,负扭矩为反转 ,当电机旋转方向与扭矩值正负符号一致时为电机做功状态,反之则为发电状态";
|
||||
CM_ BO_ 1287 "解除急停和Bumper,清除小计里程";
|
||||
CM_ SG_ 1287 Couter507 "ID507的心跳计数
|
||||
|
||||
";
|
||||
CM_ SG_ 1287 AD_flgVirtualFence "0:无
|
||||
1:超限,进入电子栅栏模式";
|
||||
CM_ SG_ 1287 AD_Clear_TRIP "0无效,1清除小里程
|
||||
";
|
||||
CM_ SG_ 1287 CAN_Sign_tran_State "转发信号开启标志
|
||||
0:转发
|
||||
1:不转发";
|
||||
CM_ SG_ 1287 AD_GrVehSig "ADU反馈的车辆坡度状态";
|
||||
CM_ BO_ 1286 "AD模式下body请求
|
||||
由AD节点发送,由VCU节点接收";
|
||||
CM_ SG_ 1286 Couter506 "ID506的心跳计数
|
||||
|
||||
";
|
||||
CM_ SG_ 1286 AD_flgEmeStpRCS "0:无
|
||||
1:车辆远程急停使能";
|
||||
CM_ SG_ 1286 AD_Horn_2_Control "0x00:车载大喇叭关
|
||||
0x01:车载大喇叭开";
|
||||
CM_ SG_ 1286 AD_Body_Valid "0表示无效,1表示车身部件可控";
|
||||
CM_ SG_ 1286 AD_Low_Beam "0表示小灯关闭
|
||||
1表示小灯开启";
|
||||
CM_ SG_ 1286 AD_Reversing_Lights "倒车灯控制(AD模式下无任何关联,只由该接口控制)
|
||||
0关
|
||||
1开";
|
||||
CM_ SG_ 1286 AD_Double_Flash_Light "双闪控制
|
||||
0关
|
||||
1开";
|
||||
CM_ SG_ 1286 AD_Brake_Light "AD模式下,制动灯只由该信号控制,除了按下急停(和遥控器给制动),无任何其他关联
|
||||
0制动灯关
|
||||
1制动灯开
|
||||
";
|
||||
CM_ SG_ 1286 AD_High_Beam "0表示大灯关闭
|
||||
1表示大灯开启";
|
||||
CM_ SG_ 1286 AD_Right_Turn_Light "0表示右转灯关闭
|
||||
1表示右转灯开启";
|
||||
CM_ SG_ 1286 AD_Left_Turn_Light "0表示左转灯关闭
|
||||
1表示左转灯开启";
|
||||
CM_ BO_ 1284 "AD驱动请求
|
||||
由AD节点发送,由VCU节点接收";
|
||||
CM_ SG_ 1284 Couter504 "ID504的心跳计数
|
||||
";
|
||||
CM_ SG_ 1284 AD_Speed_Req "车辆请求车速(km/h)";
|
||||
CM_ SG_ 1284 AD_Accelerate_Gear "0:P驻车档 1:D前进档 2:N空档 3:R后退档
|
||||
";
|
||||
CM_ SG_ 1284 AD_Accelerate_Valid "0表示无效,1表示进入自动驾驶";
|
||||
CM_ BO_ 1283 "AD制动请求
|
||||
由AD节点发送,由VCU节点接收";
|
||||
CM_ SG_ 1283 Couter503 "ID503的心跳计数
|
||||
|
||||
";
|
||||
CM_ SG_ 1283 AD_BrakePressure_Req "制动踏板(0~100%),对应0-10Mpa压力请求
|
||||
|
||||
";
|
||||
CM_ SG_ 1283 AD_DBS_Valid "0表示无效,1表示制动可控";
|
||||
CM_ BO_ 1282 "AD转向请求
|
||||
由AD节点发送,由VCU节点接收";
|
||||
CM_ SG_ 1282 Couter502 "ID502的心跳计数
|
||||
|
||||
";
|
||||
CM_ SG_ 1282 AD_Steering_Speed_Cmd "轮端转向角速度控制";
|
||||
CM_ SG_ 1282 AD_Steering_Angle_Cmd "AD模式下,-35到+35度 转角请求(左正右负)";
|
||||
CM_ SG_ 1282 AD_Steering_Valid "0表示无效,1表示转向可控";
|
||||
BA_DEF_ SG_ "GenSigSendType" ENUM "Cyclic","OnWrite","OnWriteWithRepetition","OnChange","OnChangeWithRepetition","IfActive","IfActiveWithRepetition","NoSigSendType";
|
||||
BA_DEF_ SG_ "GenSigInactiveValue" INT 0 0;
|
||||
BA_DEF_ BO_ "GenMsgCycleTime" INT 0 0;
|
||||
BA_DEF_ BO_ "GenMsgSendType" ENUM "Cyclic","not_used","not_used","not_used","not_used","Cyclic","not_used","IfActive","NoMsgSendType";
|
||||
BA_DEF_ BU_ "NmStationAddress" HEX 0 0;
|
||||
BA_DEF_ "DBName" STRING ;
|
||||
BA_DEF_ "BusType" STRING ;
|
||||
BA_DEF_DEF_ "GenSigSendType" "Cyclic";
|
||||
BA_DEF_DEF_ "GenSigInactiveValue" 0;
|
||||
BA_DEF_DEF_ "GenMsgCycleTime" 0;
|
||||
BA_DEF_DEF_ "GenMsgSendType" "NoMsgSendType";
|
||||
BA_DEF_DEF_ "NmStationAddress" 0;
|
||||
BA_DEF_DEF_ "DBName" "";
|
||||
BA_DEF_DEF_ "BusType" "CAN";
|
||||
BA_ "DBName" "G402_CAN2V2";
|
||||
BA_ "GenMsgSendType" BO_ 689 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 689 50;
|
||||
BA_ "GenMsgSendType" BO_ 673 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 673 50;
|
||||
BA_ "GenMsgSendType" BO_ 160 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 160 50;
|
||||
BA_ "GenMsgSendType" BO_ 782 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 782 500;
|
||||
BA_ "GenMsgCycleTime" BO_ 323 50;
|
||||
BA_ "GenMsgSendType" BO_ 323 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 322 50;
|
||||
BA_ "GenMsgSendType" BO_ 322 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 340 20;
|
||||
BA_ "GenMsgSendType" BO_ 340 0;
|
||||
BA_ "GenMsgSendType" BO_ 778 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 778 20;
|
||||
BA_ "GenMsgSendType" BO_ 771 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 771 20;
|
||||
BA_ "GenMsgSendType" BO_ 772 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 772 10;
|
||||
BA_ "GenMsgSendType" BO_ 769 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 769 20;
|
||||
BA_ "GenMsgSendType" BO_ 399 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 399 50;
|
||||
BA_ "GenMsgSendType" BO_ 788 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 788 20;
|
||||
BA_ "GenMsgSendType" BO_ 267 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 267 50;
|
||||
BA_ "GenMsgSendType" BO_ 266 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 266 50;
|
||||
BA_ "GenMsgCycleTime" BO_ 886 50;
|
||||
BA_ "GenMsgSendType" BO_ 886 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 785 20;
|
||||
BA_ "GenMsgSendType" BO_ 785 0;
|
||||
BA_ "GenMsgSendType" BO_ 16 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 16 50;
|
||||
BA_ "GenMsgSendType" BO_ 352 0;
|
||||
BA_ "GenMsgCycleTime" BO_ 352 20;
|
||||
BA_ "GenMsgCycleTime" BO_ 1287 20;
|
||||
BA_ "GenMsgCycleTime" BO_ 1286 20;
|
||||
BA_ "GenMsgCycleTime" BO_ 1284 20;
|
||||
BA_ "GenMsgCycleTime" BO_ 1283 20;
|
||||
BA_ "GenMsgCycleTime" BO_ 1282 20;
|
||||
BA_ "GenSigInactiveValue" SG_ 323 DBS_Fault_Code 10;
|
||||
BA_ "GenSigInactiveValue" SG_ 322 DBS_HP_pressure 10;
|
||||
BA_ "GenSigInactiveValue" SG_ 322 DBS_System_Status 10;
|
||||
BA_ "GenSigInactiveValue" SG_ 340 VCU_DBS_Pressure_Request 20;
|
||||
BA_ "GenSigInactiveValue" SG_ 340 VCU_DBS_Request_Flag 20;
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
{
|
||||
"control": {
|
||||
"AD_Setup_Control": {
|
||||
"Couter507": "",
|
||||
"AD_flgVirtualFence": "",
|
||||
"AD_Clear_TRIP": "",
|
||||
"CAN_Sign_tran_State": "",
|
||||
"AD_GrVehSig": ""
|
||||
},
|
||||
"AD_Control_Body": {
|
||||
"Couter506": "",
|
||||
"AD_flgEmeStpRCS": "",
|
||||
"AD_Horn_2_Control": "",
|
||||
"AD_Body_Valid": "",
|
||||
"AD_Low_Beam": "",
|
||||
"AD_Reversing_Lights": "",
|
||||
"AD_Double_Flash_Light": "",
|
||||
"AD_Brake_Light": "",
|
||||
"AD_High_Beam": "",
|
||||
"AD_Right_Turn_Light": "",
|
||||
"AD_Left_Turn_Light": ""
|
||||
},
|
||||
"AD_Control_Accelerate": {
|
||||
"Couter504": "",
|
||||
"AD_Speed_Req": "",
|
||||
"AD_Accelerate_Gear": "",
|
||||
"AD_Accelerate_Valid": ""
|
||||
},
|
||||
"AD_Control_Brake": {
|
||||
"Couter503": "",
|
||||
"AD_BrakePressure_Req": "",
|
||||
"AD_DBS_Valid": ""
|
||||
},
|
||||
"AD_Control_Steering": {
|
||||
"Couter502": "",
|
||||
"AD_Steering_Speed_Cmd": "",
|
||||
"AD_Steering_Angle_Cmd": "",
|
||||
"AD_Steering_Valid": ""
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"VCU_Vehicle_Error_Status": {
|
||||
"VCU_EBSActinWhenEPBMF": "",
|
||||
"VCU_EPBActinWhenEBSMF": "",
|
||||
"VCU_PwrCtrl_Fault": "",
|
||||
"Error_Code": ""
|
||||
},
|
||||
"VCU_Vehicle_HVBat_Status": {
|
||||
"Veh_SOH": "",
|
||||
"Vehicle_Soc": "",
|
||||
"Vehicle_HVBat_MsgCntr": "",
|
||||
"High_Voltage_Battery_Voltage": "",
|
||||
"High_Voltage_Battery_MaxTem": "",
|
||||
"High_Voltage_Battery_Current": ""
|
||||
},
|
||||
"VCU_Vehicle_Status_1": {
|
||||
"Vehicle_Range": "",
|
||||
"Drive_Mode_State": "",
|
||||
"EPB_Status": "",
|
||||
"Accelerator_Pedal_Status": "",
|
||||
"Brake_Pedal_Status": "",
|
||||
"Vehicle_Status_1_MsgCntr": "",
|
||||
"Vehicle_Gear": ""
|
||||
},
|
||||
"VCU_Vehicle_Status_2": {
|
||||
"Vehicle_Status_2_MsgCntr": "",
|
||||
"Vehicle_Steering_Angle": "",
|
||||
"Vehicle_Brake_Pressure": "",
|
||||
"Vehicle_Speed": ""
|
||||
},
|
||||
"VCU_Vehicle_Diagnosis": {
|
||||
"Horn_2_State": "",
|
||||
"VCU_VehRdy": "",
|
||||
"Oil_pot_State": "",
|
||||
"Power_Button_State": "",
|
||||
"EPB_Button_State": "",
|
||||
"EPB_Diagnosis": "",
|
||||
"Move_Switch": "",
|
||||
"LowBeam_State": "",
|
||||
"Reversing_Lights_State": "",
|
||||
"Tire_Sensor_State": "",
|
||||
"Brake_Light_State": "",
|
||||
"Vehicle_Fault_Grade": "",
|
||||
"EPS_State": "",
|
||||
"Vehicle_Diagnosis_MsgCntr": "",
|
||||
"HighBeam_State": "",
|
||||
"Right_Turn_Light_State": "",
|
||||
"Left_Turn_Light_State": "",
|
||||
"BMS_State": "",
|
||||
"Emergency_Button_State": "",
|
||||
"DBS_State": "",
|
||||
"AD_State": "",
|
||||
"Motor_State": ""
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
VERSION "HSCAN2"
|
||||
|
||||
|
||||
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_: FDR GW Diagnostics SCSABS EHBS EPB EPS Tester
|
||||
|
||||
BO_ 1130 GW_HSC2_BCM_FrP04: 8 GW
|
||||
SG_ BntOpenStsHSC2 : 47|2@0+ (1,0) [0|3] "" FDR
|
||||
SG_ DipdBeamLghtOnHSC2 : 13|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ DircnIndLampSwStsHSC2 : 3|2@0+ (1,0) [0|3] "" FDR
|
||||
SG_ DrvrDoorOpenStsHSC2 : 1|2@0+ (1,0) [0|3] "" FDR
|
||||
SG_ DspMeasSysHSC2 : 44|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ FrtFogLghtOnHSC2 : 14|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ FrtPsngDoorOpenStsHSC2 : 43|2@0+ (1,0) [0|3] "" FDR
|
||||
SG_ FrtWiperParkPosAHSC2 : 52|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ FrtWshrPumpAHSC2 : 55|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ KeyDetIndxHSC2 : 51|3@0+ (1,0) [0|7] "" FDR
|
||||
SG_ LDircnIndLghtFHSC2 : 10|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ LDircnIOHSC2 : 11|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ LdspcOpenStsHSC2 : 7|2@0+ (1,0) [0|3] "" FDR
|
||||
SG_ MainBeamLghtOnHSC2 : 15|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ RDircnIndLghtFHSC2 : 48|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ RDircnIOHSC2 : 9|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ RLDoorOpenStsHSC2 : 41|2@0+ (1,0) [0|3] "" FDR
|
||||
SG_ RRDoorOpenStsHSC2 : 5|2@0+ (1,0) [0|3] "" FDR
|
||||
SG_ RrFogLghtOnHSC2 : 8|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ VehSideLghtStsHSC2 : 57|2@0+ (1,0) [0|3] "" FDR
|
||||
|
||||
BO_ 540 GW_HSC2_BCM_FrP06: 8 GW
|
||||
SG_ ClstrDspdVehSpdHSC2 : 55|8@0+ (1,0) [0|254] "km/h" FDR
|
||||
SG_ FrtWiperSwStsHSC2 : 47|2@0+ (1,0) [0|3] "" FDR
|
||||
|
||||
BO_ 498 GW_HSC2_BCM_FrP07: 2 GW
|
||||
SG_ SysBPMHSC2 : 5|2@0+ (1,0) [0|3] "" FDR
|
||||
SG_ SysBPMEnbdHSC2 : 6|1@0+ (1,0) [0|1] "" FDR
|
||||
|
||||
BO_ 1285 EPS_1: 3 GW
|
||||
SG_ EPS_EPSFailSts : 0|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ EPS_0x505_MessageCounter : 15|4@0+ (1,0) [0|15] "" FDR
|
||||
SG_ EPS_0x505_Checksum : 23|8@0+ (1,0) [0|255] "" FDR
|
||||
|
||||
BO_ 796 ABM_1: 4 GW
|
||||
SG_ ABM_DrvSeatbeltBuckleStatus : 0|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ ABM_0x31C_MessageCounter : 15|4@0+ (1,0) [0|15] "" FDR
|
||||
SG_ ABM_0x31C_Checksum : 23|8@0+ (1,0) [0|255] "" FDR
|
||||
|
||||
BO_ 404 GW_HSC2_ECM_FrP04: 8 GW
|
||||
SG_ TrEstdGearHSC2 : 3|4@0+ (1,0) [0|15] "" FDR
|
||||
SG_ TrEstdGearVHSC2 : 4|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ TrShftLvrPosV_h1HSC2 : 28|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ TrShftLvrPos_h1HSC2 : 27|4@0+ (1,0) [0|15] "" FDR
|
||||
|
||||
BO_ 251 GW_HSC2_ECM_FrP27: 8 GW
|
||||
SG_ AccelOvrdHSC2 : 19|1@0+ (1,0) [0|1] "" FDR
|
||||
SG_ PtACCToqReqRespHSC2 : 4|3@0+ (1,0) [0|7] "" FDR
|
||||
SG_ PtACCToqReqRespPVHSC2 : 43|4@0+ (1,0) [0|15] "" FDR
|
||||
SG_ PtADASAlvRCHSC2 : 47|4@0+ (1,0) [0|15] "" FDR
|
||||
|
||||
BO_ 578 RADAR_HSC2_FrP00: 8 FDR
|
||||
SG_ ACCAccReqStsHSC2 : 29|2@0+ (1,0) [0|3] "" GW,SCSABS
|
||||
SG_ ACCAccReqValHSC2 : 2|11@0- (0.005,-7.22) [-7.22|3.015] "" SCSABS
|
||||
SG_ ACCAccReqValTolMaxHSC2 : 22|7@0+ (0.025,0) [0|3.175] "" SCSABS
|
||||
SG_ ACCAccReqValTolMinHSC2 : 54|7@0+ (0.025,0) [0|3.175] "" SCSABS
|
||||
SG_ ACCGoReqHSC2 : 30|1@0+ (1,0) [0|1] "" SCSABS
|
||||
SG_ ACCMinBrkReqStsHSC2 : 7|1@0+ (1,0) [0|1] "" SCSABS
|
||||
SG_ ACCReqBrkPrfrdHSC2 : 23|1@0+ (1,0) [0|1] "" SCSABS
|
||||
SG_ ACCSdslReq_RadarHSC2 : 55|1@0+ (1,0) [0|1] "" SCSABS
|
||||
SG_ ACCSysAlvRlngCtr_SCSHSC2 : 6|4@0+ (1,0) [0|15] "" SCSABS
|
||||
SG_ ACCSysChksm_SCSHSC2 : 63|8@0+ (1,0) [0|255] "" SCSABS
|
||||
SG_ ACCSysFltSts_SCSHSC2 : 42|3@0+ (1,0) [0|7] "" SCSABS
|
||||
SG_ ACCSysSts_RadarHSC2 : 45|3@0+ (1,0) [0|7] "" GW,SCSABS
|
||||
SG_ ChACCShtdwnMdHSC2 : 47|2@0+ (1,0) [0|3] "" SCSABS
|
||||
|
||||
BO_ 580 RADAR_HSC2_FrP01: 8 FDR
|
||||
SG_ ACCAccReqValGrdMaxHSC2 : 14|7@0+ (0.1,0) [0|12.7] "" SCSABS
|
||||
SG_ ACCAccReqValGrdMinHSC2 : 54|7@0+ (0.1,-12.7) [-12.7|3.7998E-007] "" SCSABS
|
||||
SG_ ACCAEBBrkJerkLvlReq_RadarHSC2 : 20|3@0+ (1,0) [0|7] "" SCSABS
|
||||
SG_ AEBAlvRlngCtr_SCSHSC2 : 35|4@0+ (1,0) [0|15] "" SCSABS
|
||||
SG_ AEBChksm_SCSHSC2 : 63|8@0+ (1,0) [0|255] "" SCSABS
|
||||
SG_ AEBDclReqStsHSC2 : 25|2@0+ (1,0) [0|3] "" GW,SCSABS
|
||||
SG_ AEBDclReqValHSC2 : 7|8@0+ (0.1,-12.7) [-12.7|12.8] "m/s^2" SCSABS
|
||||
SG_ AEBHydBrkAstLvlReqHSC2 : 31|3@0+ (1,0) [0|7] "" SCSABS
|
||||
SG_ AEBPedtrnSysFltStsHSC2 : 38|3@0+ (1,0) [0|7] "" GW
|
||||
SG_ AEBPedtrnSysStsHSC2 : 28|3@0+ (1,0) [0|7] "" GW
|
||||
SG_ AEBPrflReqHSC2 : 15|1@0+ (1,0) [0|1] "" SCSABS
|
||||
SG_ AEBSysFltSts_RadarHSC2 : 47|3@0+ (1,0) [0|7] "" GW,SCSABS
|
||||
SG_ AEBSysSts_RadarHSC2 : 23|3@0+ (1,0) [0|7] "" GW,SCSABS
|
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
import json
|
||||
from collections import OrderedDict
|
||||
|
||||
import dbcc
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
gh = dbcc.GenHelper(sys.argv[1], sys.argv[2])
|
||||
|
||||
msgs = json.loads(open(sys.argv[2]).read(), object_pairs_hook=OrderedDict)
|
||||
|
||||
with open("gen_all.c", 'w+') as f:
|
||||
f.write(gh.gen_all())
|
||||
|
||||
with open("parser.h", 'w+') as f:
|
||||
f.write("#pragma once\n\n")
|
||||
f.write("#include <stdint.h> /**< uint8_t uint16_t */\n")
|
||||
f.write("#include <stddef.h> /**< size_t */\n\n")
|
||||
|
||||
f.write("#if defined(__cplusplus)\n")
|
||||
f.write("extern \"C\" {\n")
|
||||
f.write("#endif /* __cplusplus */\n\n")
|
||||
|
||||
for k, _ in msgs['feedback'].items():
|
||||
f.write(gh.gen_msg_def(k, 0))
|
||||
f.write("\n")
|
||||
|
||||
for k, _ in msgs['control'].items():
|
||||
f.write(gh.gen_msg_def(k, 0))
|
||||
f.write("\n")
|
||||
|
||||
for k, _ in msgs['feedback'].items():
|
||||
f.write(gh.gen_msg_unpack_decl(k, 0))
|
||||
f.write("\n")
|
||||
|
||||
for k, _ in msgs['control'].items():
|
||||
f.write(gh.gen_msg_pack_decl(k, 0))
|
||||
f.write("\n")
|
||||
|
||||
f.write("#if defined(__cplusplus)\n")
|
||||
f.write("}\n")
|
||||
f.write("#endif /* __cplusplus */\n\n")
|
||||
|
||||
with open("parser.c", 'w+') as f:
|
||||
f.write("#include \"parser.h\"\n\n")
|
||||
f.write(gh.gen_macros())
|
||||
f.write("\n")
|
||||
|
||||
for k, _ in msgs['feedback'].items():
|
||||
f.write(gh.gen_msg_unpack_def(k, 0))
|
||||
f.write("\n")
|
||||
|
||||
for k, _ in msgs['control'].items():
|
||||
f.write(gh.gen_msg_pack_def(k, 0))
|
||||
f.write("\n")
|
||||
|
|
@ -58,7 +58,8 @@ function main()
|
|||
fi
|
||||
fi
|
||||
|
||||
/usr/bin/python3 "./test.py" "$@"
|
||||
/usr/bin/python3 "./parse_test.py" "$PROJ_DIR/test-data/parse_test.dbc"
|
||||
/usr/bin/python3 "./gen_test.py" "$PROJ_DIR/test-data/gen_test.dbc" "$PROJ_DIR/test-data/gen_test.json"
|
||||
# python "./test.py" "$@"
|
||||
popd >/dev/null 2>&1 || exit
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
# PyCanStudio
|
||||
|
||||
## Build
|
||||
|
||||
``` bash
|
||||
sudo apt install python3-full -y
|
||||
/usr/bin/python3 -m venv ./venv
|
||||
|
||||
./venv/bin/python3 -m pip install <dbcc.whl>
|
||||
```
|
||||
|
|
@ -22,6 +22,7 @@ import os
|
|||
import json
|
||||
import platform
|
||||
from collections import OrderedDict
|
||||
import traceback
|
||||
|
||||
import tkinter as tk
|
||||
import tkinter.filedialog
|
||||
|
@ -34,11 +35,12 @@ from ttkwidgets import CheckboxTreeview, DebugWindow
|
|||
|
||||
from .status_bar import StatusBar
|
||||
from .tabs.info_view import InfoView
|
||||
from .tabs.text_view import CodeText
|
||||
# from .tabs.text_view import CodeText
|
||||
from .tabs.code_view import CodeEditor
|
||||
from .util import change_encode
|
||||
|
||||
import dbcc
|
||||
from dbcc import *
|
||||
from dbcc import GenHelper
|
||||
|
||||
__all__ = ['App']
|
||||
__version__ = ".".join(map(lambda x: str(x), [1, 0, 1]))
|
||||
|
@ -239,6 +241,10 @@ class App(ttk.Window):
|
|||
else:
|
||||
json_obj = OrderedDict()
|
||||
|
||||
# XXX(donkey): Patch, append the required KEY
|
||||
if 'control' not in json_obj:
|
||||
json_obj['control'] = {}
|
||||
|
||||
result = OrderedDict()
|
||||
for idd in checked:
|
||||
msgid, sig = idd.split('.')
|
||||
|
@ -260,6 +266,38 @@ class App(ttk.Window):
|
|||
message=
|
||||
f"Generate Feedback signals successfully",
|
||||
title="Successfully")
|
||||
|
||||
# Generate code for feedback signals
|
||||
gh = GenHelper(self.__dbc_file_path, json_desc_path)
|
||||
all_lines = []
|
||||
all_lines.append("// parser.h")
|
||||
all_lines.append("#pragma once\n")
|
||||
all_lines.append("#include <stdint.h> /**< uint8_t uint16_t */")
|
||||
all_lines.append("#include <stddef.h> /**< size_t */\n")
|
||||
|
||||
all_lines.append("#if defined(__cplusplus)")
|
||||
all_lines.append("extern \"C\" {")
|
||||
all_lines.append("#endif /* __cplusplus */\n")
|
||||
|
||||
for k, _ in json_obj['feedback'].items():
|
||||
all_lines.append(gh.gen_msg_def(k, 0))
|
||||
|
||||
for k, _ in json_obj['feedback'].items():
|
||||
all_lines.append(gh.gen_msg_unpack_decl(k, 0))
|
||||
|
||||
all_lines.append("#if defined(__cplusplus)")
|
||||
all_lines.append("}")
|
||||
all_lines.append("#endif /* __cplusplus */\n\n")
|
||||
|
||||
all_lines.append("// parser.c")
|
||||
|
||||
all_lines.append("#include \"parser.h\"\n")
|
||||
all_lines.append(gh.gen_macros())
|
||||
|
||||
for k, _ in json_obj['feedback'].items():
|
||||
all_lines.append(gh.gen_msg_unpack_def(k, 0))
|
||||
|
||||
self.__text_view.set_content('\n'.join(all_lines))
|
||||
except Exception as e:
|
||||
ttk.dialogs.Messagebox.show_error(
|
||||
message=f"{str(e)}, Failed to generate Feedback signals",
|
||||
|
@ -285,6 +323,10 @@ class App(ttk.Window):
|
|||
else:
|
||||
json_obj = OrderedDict()
|
||||
|
||||
# XXX(donkey): Patch, append the required KEY
|
||||
if 'feedback' not in json_obj:
|
||||
json_obj['feedback'] = {}
|
||||
|
||||
result = OrderedDict()
|
||||
for idd in checked:
|
||||
msgid, sig = idd.split('.')
|
||||
|
@ -306,7 +348,40 @@ class App(ttk.Window):
|
|||
message=
|
||||
f"Generate Control signals successfully",
|
||||
title="Successfully")
|
||||
|
||||
# Generate code for control signals
|
||||
gh = GenHelper(self.__dbc_file_path, json_desc_path)
|
||||
all_lines = []
|
||||
all_lines.append("// parser.h")
|
||||
all_lines.append("#pragma once\n")
|
||||
all_lines.append("#include <stdint.h> /**< uint8_t uint16_t */")
|
||||
all_lines.append("#include <stddef.h> /**< size_t */\n")
|
||||
|
||||
all_lines.append("#if defined(__cplusplus)")
|
||||
all_lines.append("extern \"C\" {")
|
||||
all_lines.append("#endif /* __cplusplus */\n")
|
||||
|
||||
for k, _ in json_obj['control'].items():
|
||||
all_lines.append(gh.gen_msg_def(k, 0))
|
||||
|
||||
for k, _ in json_obj['control'].items():
|
||||
all_lines.append(gh.gen_msg_pack_decl(k, 0))
|
||||
|
||||
all_lines.append("#if defined(__cplusplus)")
|
||||
all_lines.append("}")
|
||||
all_lines.append("#endif /* __cplusplus */\n\n")
|
||||
|
||||
all_lines.append("// parser.c")
|
||||
|
||||
all_lines.append("#include \"parser.h\"\n")
|
||||
all_lines.append(gh.gen_macros())
|
||||
|
||||
for k, _ in json_obj['control'].items():
|
||||
all_lines.append(gh.gen_msg_pack_def(k, 0))
|
||||
|
||||
self.__text_view.set_content('\n'.join(all_lines))
|
||||
except Exception as e:
|
||||
traceback.print_exc()
|
||||
ttk.dialogs.Messagebox.show_error(
|
||||
message=f"{str(e)}, Failed to generate Control signals",
|
||||
title="Failed to generate Control signals")
|
||||
|
@ -393,9 +468,8 @@ class App(ttk.Window):
|
|||
self.__note_book = ttk.Notebook(self.rframe)
|
||||
self.__info_view = InfoView(self.__note_book, border=0)
|
||||
self.__note_book.add(self.__info_view, text="Layout")
|
||||
self.__text_view = CodeText(self.__note_book, border=0)
|
||||
self.__text_view = CodeEditor(self.__note_book, border=0)
|
||||
self.__note_book.add(self.__text_view, text="Code")
|
||||
self.__text_view.update()
|
||||
|
||||
self.__note_book.pack(expand=True, fill=BOTH)
|
||||
|
||||
|
|
|
@ -722,13 +722,3 @@ class CodeText(ttk.Frame):
|
|||
def set_content(self, content: str):
|
||||
self.__code_block.content = content
|
||||
|
||||
def update(self, msg=None, sig=None):
|
||||
if msg is None and sig is None:
|
||||
self.__code_block.config = ""
|
||||
|
||||
if msg:
|
||||
# Generate message encode/decode code snippets
|
||||
self.__code_block.config = ""
|
||||
else:
|
||||
# Generate signal encode/decode code snippets
|
||||
self.__code_block.config = ""
|
||||
|
|
Loading…
Reference in New Issue