未验证 提交 2602397c 编写于 作者: C Chao Ma 提交者: GitHub

canbus: add the new battery soc protocol in chassis for vehicle dev_kit (#12866)

上级 fa7e766e
......@@ -124,6 +124,8 @@ message Chassis {
// replace this [id 23]
optional apollo.common.VehicleID vehicle_id = 33;
optional int32 battery_soc = 34;
}
message ChassisGPS {
......
......@@ -220,7 +220,7 @@ message Vcu_report_505 {
// [m/s] [0|65.535]
optional double speed = 6;
// [%] [0|100]
optional int32 battary_soc = 7;
optional int32 battery_soc = 7;
}
message Steering_report_502 {
......
......@@ -184,8 +184,11 @@ Chassis DevkitController::chassis() {
chassis_detail.devkit().vcu_report_505().has_speed()) {
chassis_.set_speed_mps(
static_cast<float>(chassis_detail.devkit().vcu_report_505().speed()));
chassis_.set_battery_soc(
chassis_detail.devkit().vcu_report_505().battery_soc());
} else {
chassis_.set_speed_mps(0);
chassis_.set_battery_soc(0);
}
// 7 no odometer
// chassis_.set_odometer_m(0);
......@@ -480,10 +483,6 @@ bool DevkitController::CheckChassisError() {
devkit.steering_report_502().steer_flt1()) {
return true;
}
if (Steering_report_502::STEER_FLT2_STEER_SYSTEM_COMUNICATION_FAULT ==
devkit.steering_report_502().steer_flt2()) {
return true;
}
}
// drive fault
if (devkit.has_throttle_report_500()) {
......@@ -491,10 +490,6 @@ bool DevkitController::CheckChassisError() {
devkit.throttle_report_500().throttle_flt1()) {
return true;
}
if (Throttle_report_500::THROTTLE_FLT2_DRIVE_SYSTEM_COMUNICATION_FAULT ==
devkit.throttle_report_500().throttle_flt2()) {
return true;
}
}
// brake fault
if (devkit.has_brake_report_501()) {
......@@ -502,25 +497,8 @@ bool DevkitController::CheckChassisError() {
devkit.brake_report_501().brake_flt1()) {
return true;
}
if (Brake_report_501::BRAKE_FLT2_BRAKE_SYSTEM_COMUNICATION_FAULT ==
devkit.brake_report_501().brake_flt2()) {
return true;
}
}
// gear fault
if (devkit.has_gear_report_503()) {
if (Gear_report_503::GEAR_FLT_FAULT ==
devkit.gear_report_503().gear_flt()) {
return true;
}
}
// park fault
if (devkit.has_park_report_504()) {
if (Park_report_504::PARK_FLT_FAULT ==
devkit.park_report_504().park_flt()) {
return true;
}
}
return false;
}
......
......@@ -31,8 +31,8 @@ const int32_t Vcureport505::ID = 0x505;
void Vcureport505::Parse(const std::uint8_t* bytes, int32_t length,
ChassisDetail* chassis) const {
chassis->mutable_devkit()->mutable_vcu_report_505()->set_battary_soc(
battary_soc(bytes, length));
chassis->mutable_devkit()->mutable_vcu_report_505()->set_battery_soc(
battery_soc(bytes, length));
chassis->mutable_devkit()->mutable_vcu_report_505()->set_vehicle_mode_state(
vehicle_mode_state(bytes, length));
chassis->mutable_devkit()->mutable_vcu_report_505()->set_frontcrash_state(
......@@ -47,10 +47,10 @@ void Vcureport505::Parse(const std::uint8_t* bytes, int32_t length,
speed(bytes, length));
}
// config detail: {'name': 'battary_soc', 'offset': 0.0, 'precision': 1.0,
// config detail: {'name': 'battery_soc', 'offset': 0.0, 'precision': 1.0,
// 'len': 8, 'is_signed_var': False, 'physical_range': '[0|100]', 'bit': 47,
// 'type': 'int', 'order': 'motorola', 'physical_unit': '%'}
int Vcureport505::battary_soc(const std::uint8_t* bytes, int32_t length) const {
int Vcureport505::battery_soc(const std::uint8_t* bytes, int32_t length) const {
Byte t0(bytes + 5);
int32_t x = t0.get_byte(0, 8);
......
......@@ -32,10 +32,10 @@ class Vcureport505 : public ::apollo::drivers::canbus::ProtocolData<
ChassisDetail* chassis) const override;
private:
// config detail: {'name': 'Battary_Soc', 'offset': 0.0, 'precision': 1.0,
// config detail: {'name': 'Battery_Soc', 'offset': 0.0, 'precision': 1.0,
// 'len': 8, 'is_signed_var': False, 'physical_range': '[0|100]', 'bit': 47,
// 'type': 'int', 'order': 'motorola', 'physical_unit': '%'}
int battary_soc(const std::uint8_t* bytes, const int32_t length) const;
int battery_soc(const std::uint8_t* bytes, const int32_t length) const;
// config detail: {'name': 'Vehicle_Mode_State', 'enum': {0:
// 'VEHICLE_MODE_STATE_MANUAL_REMOTE_MODE', 1: 'VEHICLE_MODE_STATE_AUTO_MODE',
......
......@@ -42,7 +42,7 @@ TEST_F(Vcureport505Test, General) {
EXPECT_EQ(data[6], 0b00000100);
EXPECT_EQ(data[7], 0b00000101);
EXPECT_EQ(cd.devkit().vcu_report_505().battary_soc(), 3);
EXPECT_EQ(cd.devkit().vcu_report_505().battery_soc(), 3);
EXPECT_EQ(cd.devkit().vcu_report_505().vehicle_mode_state(), 1);
EXPECT_EQ(cd.devkit().vcu_report_505().frontcrash_state(), 1);
EXPECT_EQ(cd.devkit().vcu_report_505().backcrash_state(), 0);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册