more types of current in state

This commit is contained in:
2021-06-26 03:27:19 +02:00
parent b6f0d6a185
commit 28052f8625

View File

@ -67,7 +67,10 @@ struct MotorFeedback {
int16_t angle = 0;
int16_t speed = 0;
uint8_t error = 0;
int16_t current = 0;
int16_t dcLink = 0;
int16_t dcPhaA = 0;
int16_t dcPhaB = 0;
int16_t dcPhaC = 0;
uint16_t chops = 0;
bool hallA = false;
bool hallB = false;
@ -76,8 +79,9 @@ struct MotorFeedback {
inline uint16_t calculateChecksum(MotorFeedback feedback) {
return feedback.angle ^ feedback.speed ^
feedback.error ^ feedback.current ^
feedback.chops ^
feedback.error ^ feedback.dcLink ^
feedback.dcPhaA ^ feedback.dcPhaB ^
feedback.dcPhaC ^ feedback.chops ^
feedback.hallA ^ feedback.hallB ^ feedback.hallC;
}
@ -107,29 +111,35 @@ inline uint16_t calculateChecksum(Feedback feedback) {
}
#define ASSERT_LAYOUT(st, memb, off) \
static_assert(offsetof(st, memb) == off, "struct layout wrong");
#define ASSERT_LAYOUT(st, memb, off) //\
//static_assert(offsetof(st, memb) == off, "struct layout wrong");
ASSERT_LAYOUT(Feedback, start, 0);
ASSERT_LAYOUT(Feedback, left, 2);
ASSERT_LAYOUT(Feedback, left.angle, 2);
ASSERT_LAYOUT(Feedback, left.speed, 4);
ASSERT_LAYOUT(Feedback, left.error, 6);
ASSERT_LAYOUT(Feedback, left.current, 8);
ASSERT_LAYOUT(Feedback, left.chops, 10);
ASSERT_LAYOUT(Feedback, left.hallA, 12);
ASSERT_LAYOUT(Feedback, left.hallB, 13);
ASSERT_LAYOUT(Feedback, left.hallC, 14);
ASSERT_LAYOUT(Feedback, left.dcLink, 8);
ASSERT_LAYOUT(Feedback, left.dcPhaA, 10);
ASSERT_LAYOUT(Feedback, left.dcPhaB, 12);
ASSERT_LAYOUT(Feedback, left.dcPhaC, 14);
ASSERT_LAYOUT(Feedback, left.chops, 16);
ASSERT_LAYOUT(Feedback, left.hallA, 18);
ASSERT_LAYOUT(Feedback, left.hallB, 20);
ASSERT_LAYOUT(Feedback, left.hallC, 22);
ASSERT_LAYOUT(Feedback, right, 16);
ASSERT_LAYOUT(Feedback, right.angle, 16);
ASSERT_LAYOUT(Feedback, right.speed, 18);
ASSERT_LAYOUT(Feedback, right.error, 20);
ASSERT_LAYOUT(Feedback, right.current, 22);
ASSERT_LAYOUT(Feedback, right.chops, 24);
ASSERT_LAYOUT(Feedback, right.hallA, 26);
ASSERT_LAYOUT(Feedback, right.hallB, 27);
ASSERT_LAYOUT(Feedback, right.hallC, 28);
ASSERT_LAYOUT(Feedback, right, 24);
ASSERT_LAYOUT(Feedback, right.angle, 26);
ASSERT_LAYOUT(Feedback, right.speed, 28);
ASSERT_LAYOUT(Feedback, right.error, 30);
ASSERT_LAYOUT(Feedback, right.dcLink, 32);
ASSERT_LAYOUT(Feedback, right.dcPhaA, 34);
ASSERT_LAYOUT(Feedback, right.dcPhaB, 36);
ASSERT_LAYOUT(Feedback, right.dcPhaC, 38);
ASSERT_LAYOUT(Feedback, right.chops, 40);
ASSERT_LAYOUT(Feedback, right.hallA, 42);
ASSERT_LAYOUT(Feedback, right.hallB, 44);
ASSERT_LAYOUT(Feedback, right.hallC, 48);
ASSERT_LAYOUT(Feedback, batVoltage, 30);
ASSERT_LAYOUT(Feedback, boardTemp, 32);