diff --git a/bobbycar-serial.h b/bobbycar-serial.h index 58a904a..9ae5a20 100644 --- a/bobbycar-serial.h +++ b/bobbycar-serial.h @@ -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);