used const var to represent motor number

This commit is contained in:
Ruixiang Du
2020-06-02 12:01:57 +08:00
parent 97836c71ca
commit 0006a1cd62
4 changed files with 6 additions and 4 deletions

View File

@@ -33,7 +33,8 @@ struct HunterState
uint8_t set_zero_steering = 0; uint8_t set_zero_steering = 0;
// motor state // motor state
MotorState motor_states[3]; static constexpr uint8_t motor_num = 3;
MotorState motor_states[motor_num];
// motion state // motion state
double linear_velocity = 0; double linear_velocity = 0;

View File

@@ -229,7 +229,7 @@ void HunterBase::UpdateHunterState(const HunterMessage &status_msg,
// std::cout << "motor 1 driver feedback received" << std::endl; // std::cout << "motor 1 driver feedback received" << std::endl;
const MotorDriverStatusMessage &msg = const MotorDriverStatusMessage &msg =
status_msg.body.motor_driver_status_msg; status_msg.body.motor_driver_status_msg;
for (int i = 0; i < 4; ++i) { for (int i = 0; i < HunterState::motor_num; ++i) {
state.motor_states[status_msg.body.motor_driver_status_msg.motor_id] state.motor_states[status_msg.body.motor_driver_status_msg.motor_id]
.current = .current =
(static_cast<uint16_t>(msg.data.status.current.low_byte) | (static_cast<uint16_t>(msg.data.status.current.low_byte) |

View File

@@ -45,7 +45,8 @@ struct ScoutState
double battery_voltage = 0.0; double battery_voltage = 0.0;
// motor state // motor state
MotorState motor_states[4]; static constexpr uint8_t motor_num = 4;
MotorState motor_states[motor_num];
// light state // light state
bool light_control_enabled = false; bool light_control_enabled = false;

View File

@@ -325,7 +325,7 @@ void ScoutBase::UpdateScoutState(const ScoutMessage &status_msg, ScoutState &sta
{ {
// std::cout << "motor 1 driver feedback received" << std::endl; // std::cout << "motor 1 driver feedback received" << std::endl;
const MotorDriverStatusMessage &msg = status_msg.body.motor_driver_status_msg; const MotorDriverStatusMessage &msg = status_msg.body.motor_driver_status_msg;
for (int i = 0; i < 4; ++i) for (int i = 0; i < ScoutState::motor_num; ++i)
{ {
state.motor_states[status_msg.body.motor_driver_status_msg.motor_id].current = (static_cast<uint16_t>(msg.data.status.current.low_byte) | static_cast<uint16_t>(msg.data.status.current.high_byte) << 8) / 10.0; state.motor_states[status_msg.body.motor_driver_status_msg.motor_id].current = (static_cast<uint16_t>(msg.data.status.current.low_byte) | static_cast<uint16_t>(msg.data.status.current.high_byte) << 8) / 10.0;
state.motor_states[status_msg.body.motor_driver_status_msg.motor_id].rpm = static_cast<int16_t>(static_cast<uint16_t>(msg.data.status.rpm.low_byte) | static_cast<uint16_t>(msg.data.status.rpm.high_byte) << 8); state.motor_states[status_msg.body.motor_driver_status_msg.motor_id].rpm = static_cast<int16_t>(static_cast<uint16_t>(msg.data.status.rpm.low_byte) | static_cast<uint16_t>(msg.data.status.rpm.high_byte) << 8);