template compile time magic
This commit is contained in:
430
bobbycar-can.h
430
bobbycar-can.h
@@ -2,279 +2,197 @@
|
|||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
enum { // vv
|
namespace bobbycar {
|
||||||
DeviceTypeMotorController = 0b00000000000
|
namespace can {
|
||||||
};
|
template<bool isBack, bool isRight>
|
||||||
|
class MotorController
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
enum { // vvv
|
||||||
|
DeviceTypeMotorController = 0b00000000000
|
||||||
|
};
|
||||||
|
|
||||||
enum { // ..vv
|
enum { // ...v
|
||||||
MotorControllerRec = 0b00000000000,
|
MotorControllerCommand = 0b00000000000,
|
||||||
MotorControllerSend = 0b00010000000,
|
MotorControllerFeedback = 0b00010000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum { // ....vvvvv
|
enum { // .........v
|
||||||
MotorControllerDcLink = 0b00000000000,
|
MotorControllerFront = 0b00000000000,
|
||||||
MotorControllerSpeed = 0b00000000100,
|
MotorControllerBack = 0b00000000010,
|
||||||
MotorControllerError = 0b00000001000,
|
};
|
||||||
MotorControllerAngle = 0b00000001100,
|
|
||||||
MotorControllerDcPhaA = 0b00000010000,
|
|
||||||
MotorControllerDcPhaB = 0b00000010100,
|
|
||||||
MotorControllerDcPhaC = 0b00000011000,
|
|
||||||
MotorControllerChops = 0b00000011100,
|
|
||||||
MotorControllerHall = 0b00000100000,
|
|
||||||
MotorControllerVoltage = 0b00000100100,
|
|
||||||
MotorControllerTemp = 0b00000101000
|
|
||||||
};
|
|
||||||
|
|
||||||
enum { // ....vvvvv
|
enum { // ..........v
|
||||||
MotorControllerEnable = 0b00000000000,
|
MotorControllerLeft = 0b00000000000,
|
||||||
MotorControllerInpTgt = 0b00000000100,
|
MotorControllerRight = 0b00000000001,
|
||||||
MotorControllerCtrlTyp = 0b00000001000,
|
};
|
||||||
MotorControllerCtrlMod = 0b00000001100,
|
|
||||||
MotorControllerIMotMax = 0b00000010000,
|
|
||||||
MotorControllerIDcMax = 0b00000010100,
|
|
||||||
MotorControllerNMotMax = 0b00000011000,
|
|
||||||
MotorControllerFieldWeakMax=0b00000011100,
|
|
||||||
MotorControllerPhaseAdvMax =0b00000100000,
|
|
||||||
MotorControllerBuzzerFreq = 0b00000100100,
|
|
||||||
MotorControllerBuzzerPattern=0b00000101000,
|
|
||||||
MotorControllerLed = 0b00000101100,
|
|
||||||
MotorControllerPoweroff = 0b00000110000
|
|
||||||
};
|
|
||||||
|
|
||||||
enum { // .........v
|
enum {
|
||||||
MotorControllerFront = 0b00000000000,
|
MotorControllerMask =
|
||||||
MotorControllerBack = 0b00000000010,
|
DeviceTypeMotorController |
|
||||||
};
|
(isBack ? MotorControllerBack : MotorControllerFront) |
|
||||||
|
(isRight ? MotorControllerRight : MotorControllerLeft)
|
||||||
|
};
|
||||||
|
|
||||||
enum { // ..........v
|
public:
|
||||||
MotorControllerLeft = 0b00000000000,
|
MotorController() = delete;
|
||||||
MotorControllerRight = 0b00000000001,
|
~MotorController() = delete;
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
class Command {
|
||||||
MotorControllerFrontLeftDcLink = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcLink | MotorControllerFront | MotorControllerLeft,
|
private:
|
||||||
MotorControllerFrontRightDcLink = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcLink | MotorControllerFront | MotorControllerRight,
|
enum {
|
||||||
MotorControllerBackLeftDcLink = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcLink | MotorControllerBack | MotorControllerLeft,
|
MotorControllerCommandMask = MotorControllerMask | MotorControllerCommand
|
||||||
MotorControllerBackRightDcLink = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcLink | MotorControllerBack | MotorControllerRight,
|
};
|
||||||
|
|
||||||
MotorControllerFrontLeftSpeed = DeviceTypeMotorController | MotorControllerSend | MotorControllerSpeed | MotorControllerFront | MotorControllerLeft,
|
public:
|
||||||
MotorControllerFrontRightSpeed = DeviceTypeMotorController | MotorControllerSend | MotorControllerSpeed | MotorControllerFront | MotorControllerRight,
|
Command() = delete;
|
||||||
MotorControllerBackLeftSpeed = DeviceTypeMotorController | MotorControllerSend | MotorControllerSpeed | MotorControllerBack | MotorControllerLeft,
|
~Command() = delete;
|
||||||
MotorControllerBackRightSpeed = DeviceTypeMotorController | MotorControllerSend | MotorControllerSpeed | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftError = DeviceTypeMotorController | MotorControllerSend | MotorControllerError | MotorControllerFront | MotorControllerLeft,
|
enum { // ....vvvvv
|
||||||
MotorControllerFrontRightError = DeviceTypeMotorController | MotorControllerSend | MotorControllerError | MotorControllerFront | MotorControllerRight,
|
Enable = 0b00000000000 | MotorControllerCommandMask,
|
||||||
MotorControllerBackLeftError = DeviceTypeMotorController | MotorControllerSend | MotorControllerError | MotorControllerBack | MotorControllerLeft,
|
InpTgt = 0b00000000100 | MotorControllerCommandMask,
|
||||||
MotorControllerBackRightError = DeviceTypeMotorController | MotorControllerSend | MotorControllerError | MotorControllerBack | MotorControllerRight,
|
CtrlTyp = 0b00000001000 | MotorControllerCommandMask,
|
||||||
|
CtrlMod = 0b00000001100 | MotorControllerCommandMask,
|
||||||
|
IMotMax = 0b00000010000 | MotorControllerCommandMask,
|
||||||
|
IDcMax = 0b00000010100 | MotorControllerCommandMask,
|
||||||
|
NMotMax = 0b00000011000 | MotorControllerCommandMask,
|
||||||
|
FieldWeakMax = 0b00000011100 | MotorControllerCommandMask,
|
||||||
|
PhaseAdvMax = 0b00000100000 | MotorControllerCommandMask,
|
||||||
|
BuzzerFreq = 0b00000100100 | MotorControllerCommandMask,
|
||||||
|
BuzzerPattern = 0b00000101000 | MotorControllerCommandMask,
|
||||||
|
Led = 0b00000101100 | MotorControllerCommandMask,
|
||||||
|
Poweroff = 0b00000110000 | MotorControllerCommandMask
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
MotorControllerFrontLeftAngle = DeviceTypeMotorController | MotorControllerSend | MotorControllerAngle | MotorControllerFront | MotorControllerLeft,
|
class Feedback {
|
||||||
MotorControllerFrontRightAngle = DeviceTypeMotorController | MotorControllerSend | MotorControllerAngle | MotorControllerFront | MotorControllerRight,
|
private:
|
||||||
MotorControllerBackLeftAngle = DeviceTypeMotorController | MotorControllerSend | MotorControllerAngle | MotorControllerBack | MotorControllerLeft,
|
enum {
|
||||||
MotorControllerBackRightAngle = DeviceTypeMotorController | MotorControllerSend | MotorControllerAngle | MotorControllerBack | MotorControllerRight,
|
MotorControllerFeedbackMask = MotorControllerMask | MotorControllerFeedback
|
||||||
|
};
|
||||||
|
|
||||||
MotorControllerFrontLeftDcPhaA = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaA | MotorControllerFront | MotorControllerLeft,
|
public:
|
||||||
MotorControllerFrontRightDcPhaA = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaA | MotorControllerFront | MotorControllerRight,
|
Feedback() = delete;
|
||||||
MotorControllerBackLeftDcPhaA = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaA | MotorControllerBack | MotorControllerLeft,
|
~Feedback() = delete;
|
||||||
MotorControllerBackRightDcPhaA = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaA | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftDcPhaB = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaB | MotorControllerFront | MotorControllerLeft,
|
enum { // ....vvvvv
|
||||||
MotorControllerFrontRightDcPhaB = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaB | MotorControllerFront | MotorControllerRight,
|
DcLink = 0b00000000000 | MotorControllerFeedbackMask,
|
||||||
MotorControllerBackLeftDcPhaB = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaB | MotorControllerBack | MotorControllerLeft,
|
Speed = 0b00000000100 | MotorControllerFeedbackMask,
|
||||||
MotorControllerBackRightDcPhaB = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaB | MotorControllerBack | MotorControllerRight,
|
Error = 0b00000001000 | MotorControllerFeedbackMask,
|
||||||
|
Angle = 0b00000001100 | MotorControllerFeedbackMask,
|
||||||
MotorControllerFrontLeftDcPhaC = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaC | MotorControllerFront | MotorControllerLeft,
|
DcPhaA = 0b00000010000 | MotorControllerFeedbackMask,
|
||||||
MotorControllerFrontRightDcPhaC = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaC | MotorControllerFront | MotorControllerRight,
|
DcPhaB = 0b00000010100 | MotorControllerFeedbackMask,
|
||||||
MotorControllerBackLeftDcPhaC = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaC | MotorControllerBack | MotorControllerLeft,
|
DcPhaC = 0b00000011000 | MotorControllerFeedbackMask,
|
||||||
MotorControllerBackRightDcPhaC = DeviceTypeMotorController | MotorControllerSend | MotorControllerDcPhaC | MotorControllerBack | MotorControllerRight,
|
Chops = 0b00000011100 | MotorControllerFeedbackMask,
|
||||||
|
Hall = 0b00000100000 | MotorControllerFeedbackMask,
|
||||||
MotorControllerFrontLeftChops = DeviceTypeMotorController | MotorControllerSend | MotorControllerChops | MotorControllerFront | MotorControllerLeft,
|
Voltage = 0b00000100100 | MotorControllerFeedbackMask,
|
||||||
MotorControllerFrontRightChops = DeviceTypeMotorController | MotorControllerSend | MotorControllerChops | MotorControllerFront | MotorControllerRight,
|
Temp = 0b00000101000 | MotorControllerFeedbackMask
|
||||||
MotorControllerBackLeftChops = DeviceTypeMotorController | MotorControllerSend | MotorControllerChops | MotorControllerBack | MotorControllerLeft,
|
};
|
||||||
MotorControllerBackRightChops = DeviceTypeMotorController | MotorControllerSend | MotorControllerChops | MotorControllerBack | MotorControllerRight,
|
};
|
||||||
|
|
||||||
MotorControllerFrontLeftHall = DeviceTypeMotorController | MotorControllerSend | MotorControllerHall | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightHall = DeviceTypeMotorController | MotorControllerSend | MotorControllerHall | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftHall = DeviceTypeMotorController | MotorControllerSend | MotorControllerHall | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightHall = DeviceTypeMotorController | MotorControllerSend | MotorControllerHall | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftVoltage = DeviceTypeMotorController | MotorControllerSend | MotorControllerVoltage | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightVoltage = DeviceTypeMotorController | MotorControllerSend | MotorControllerVoltage | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftVoltage = DeviceTypeMotorController | MotorControllerSend | MotorControllerVoltage | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightVoltage = DeviceTypeMotorController | MotorControllerSend | MotorControllerVoltage | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftTemp = DeviceTypeMotorController | MotorControllerSend | MotorControllerTemp | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightTemp = DeviceTypeMotorController | MotorControllerSend | MotorControllerTemp | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftTemp = DeviceTypeMotorController | MotorControllerSend | MotorControllerTemp | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightTemp = DeviceTypeMotorController | MotorControllerSend | MotorControllerTemp | MotorControllerBack | MotorControllerRight,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
|
||||||
MotorControllerFrontLeftEnable = DeviceTypeMotorController | MotorControllerRec | MotorControllerEnable | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightEnable = DeviceTypeMotorController | MotorControllerRec | MotorControllerEnable | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftEnable = DeviceTypeMotorController | MotorControllerRec | MotorControllerEnable | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightEnable = DeviceTypeMotorController | MotorControllerRec | MotorControllerEnable | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftInpTgt = DeviceTypeMotorController | MotorControllerRec | MotorControllerInpTgt | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightInpTgt = DeviceTypeMotorController | MotorControllerRec | MotorControllerInpTgt | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftInpTgt = DeviceTypeMotorController | MotorControllerRec | MotorControllerInpTgt | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightInpTgt = DeviceTypeMotorController | MotorControllerRec | MotorControllerInpTgt | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftCtrlTyp = DeviceTypeMotorController | MotorControllerRec | MotorControllerCtrlTyp | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightCtrlTyp = DeviceTypeMotorController | MotorControllerRec | MotorControllerCtrlTyp | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftCtrlTyp = DeviceTypeMotorController | MotorControllerRec | MotorControllerCtrlTyp | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightCtrlTyp = DeviceTypeMotorController | MotorControllerRec | MotorControllerCtrlTyp | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftCtrlMod = DeviceTypeMotorController | MotorControllerRec | MotorControllerCtrlMod | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightCtrlMod = DeviceTypeMotorController | MotorControllerRec | MotorControllerCtrlMod | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftCtrlMod = DeviceTypeMotorController | MotorControllerRec | MotorControllerCtrlMod | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightCtrlMod = DeviceTypeMotorController | MotorControllerRec | MotorControllerCtrlMod | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftIMotMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerIMotMax | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightIMotMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerIMotMax | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftIMotMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerIMotMax | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightIMotMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerIMotMax | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftIDcMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerIDcMax | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightIDcMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerIDcMax | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftIDcMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerIDcMax | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightIDcMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerIDcMax | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftNMotMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerNMotMax | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightNMotMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerNMotMax | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftNMotMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerNMotMax | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightNMotMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerNMotMax | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftFieldWeakMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerFieldWeakMax | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightFieldWeakMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerFieldWeakMax | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftFieldWeakMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerFieldWeakMax | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightFieldWeakMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerFieldWeakMax | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftPhaseAdvMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerPhaseAdvMax | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightPhaseAdvMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerPhaseAdvMax | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftPhaseAdvMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerPhaseAdvMax | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightPhaseAdvMax = DeviceTypeMotorController | MotorControllerRec | MotorControllerPhaseAdvMax | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftBuzzerFreq = DeviceTypeMotorController | MotorControllerRec | MotorControllerBuzzerFreq | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightBuzzerFreq = DeviceTypeMotorController | MotorControllerRec | MotorControllerBuzzerFreq | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftBuzzerFreq = DeviceTypeMotorController | MotorControllerRec | MotorControllerBuzzerFreq | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightBuzzerFreq = DeviceTypeMotorController | MotorControllerRec | MotorControllerBuzzerFreq | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftBuzzerPattern = DeviceTypeMotorController | MotorControllerRec | MotorControllerBuzzerPattern | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightBuzzerPattern = DeviceTypeMotorController | MotorControllerRec | MotorControllerBuzzerPattern | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftBuzzerPattern = DeviceTypeMotorController | MotorControllerRec | MotorControllerBuzzerPattern | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightBuzzerPattern = DeviceTypeMotorController | MotorControllerRec | MotorControllerBuzzerPattern | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftLed = DeviceTypeMotorController | MotorControllerRec | MotorControllerLed | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightLed = DeviceTypeMotorController | MotorControllerRec | MotorControllerLed | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftLed = DeviceTypeMotorController | MotorControllerRec | MotorControllerLed | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightLed = DeviceTypeMotorController | MotorControllerRec | MotorControllerLed | MotorControllerBack | MotorControllerRight,
|
|
||||||
|
|
||||||
MotorControllerFrontLeftPoweroff = DeviceTypeMotorController | MotorControllerRec | MotorControllerPoweroff | MotorControllerFront | MotorControllerLeft,
|
|
||||||
MotorControllerFrontRightPoweroff = DeviceTypeMotorController | MotorControllerRec | MotorControllerPoweroff | MotorControllerFront | MotorControllerRight,
|
|
||||||
MotorControllerBackLeftPoweroff = DeviceTypeMotorController | MotorControllerRec | MotorControllerPoweroff | MotorControllerBack | MotorControllerLeft,
|
|
||||||
MotorControllerBackRightPoweroff = DeviceTypeMotorController | MotorControllerRec | MotorControllerPoweroff | MotorControllerBack | MotorControllerRight,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inline const char *bobbycarCanIdDesc(uint16_t id)
|
inline const char *bobbycarCanIdDesc(uint16_t id)
|
||||||
{
|
{
|
||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
case MotorControllerFrontLeftEnable: return "MotorControllerFrontLeftEnable";
|
case MotorController<false, false>::Command::Enable: return "Enable (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightEnable: return "MotorControllerFrontRightEnable";
|
case MotorController<false, true>::Command::Enable: return "Enable (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftEnable: return "MotorControllerBackLeftEnable";
|
case MotorController<true, false>::Command::Enable: return "Enable (Command, Back, Left)";
|
||||||
case MotorControllerBackRightEnable: return "MotorControllerBackRightEnable";
|
case MotorController<true, true>::Command::Enable: return "Enable (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftInpTgt: return "MotorControllerFrontLeftInpTgt";
|
case MotorController<false, false>::Command::InpTgt: return "InpTgt (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightInpTgt: return "MotorControllerFrontRightInpTgt";
|
case MotorController<false, true>::Command::InpTgt: return "InpTgt (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftInpTgt: return "MotorControllerBackLeftInpTgt";
|
case MotorController<true, false>::Command::InpTgt: return "InpTgt (Command, Back, Left)";
|
||||||
case MotorControllerBackRightInpTgt: return "MotorControllerBackRightInpTgt";
|
case MotorController<true, true>::Command::InpTgt: return "InpTgt (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftCtrlTyp: return "MotorControllerFrontLeftCtrlTyp";
|
case MotorController<false, false>::Command::CtrlTyp: return "CtrlTyp (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightCtrlTyp: return "MotorControllerFrontRightCtrlTyp";
|
case MotorController<false, true>::Command::CtrlTyp: return "CtrlTyp (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftCtrlTyp: return "MotorControllerBackLeftCtrlTyp";
|
case MotorController<true, false>::Command::CtrlTyp: return "CtrlTyp (Command, Back, Left)";
|
||||||
case MotorControllerBackRightCtrlTyp: return "MotorControllerBackRightCtrlTyp";
|
case MotorController<true, true>::Command::CtrlTyp: return "CtrlTyp (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftCtrlMod: return "MotorControllerFrontLeftCtrlMod";
|
case MotorController<false, false>::Command::CtrlMod: return "CtrlMod (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightCtrlMod: return "MotorControllerFrontRightCtrlMod";
|
case MotorController<false, true>::Command::CtrlMod: return "CtrlMod (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftCtrlMod: return "MotorControllerBackLeftCtrlMod";
|
case MotorController<true, false>::Command::CtrlMod: return "CtrlMod (Command, Back, Left)";
|
||||||
case MotorControllerBackRightCtrlMod: return "MotorControllerBackRightCtrlMod";
|
case MotorController<true, true>::Command::CtrlMod: return "CtrlMod (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftIMotMax: return "MotorControllerFrontLeftIMotMax";
|
case MotorController<false, false>::Command::IMotMax: return "IMotMax (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightIMotMax: return "MotorControllerFrontRightIMotMax";
|
case MotorController<false, true>::Command::IMotMax: return "IMotMax (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftIMotMax: return "MotorControllerBackLeftIMotMax";
|
case MotorController<true, false>::Command::IMotMax: return "IMotMax (Command, Back, Left)";
|
||||||
case MotorControllerBackRightIMotMax: return "MotorControllerBackRightIMotMax";
|
case MotorController<true, true>::Command::IMotMax: return "IMotMax (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftIDcMax: return "MotorControllerFrontLeftIDcMax";
|
case MotorController<false, false>::Command::IDcMax: return "IDcMax (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightIDcMax: return "MotorControllerFrontRightIDcMax";
|
case MotorController<false, true>::Command::IDcMax: return "IDcMax (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftIDcMax: return "MotorControllerBackLeftIDcMax";
|
case MotorController<true, false>::Command::IDcMax: return "IDcMax (Command, Back, Left)";
|
||||||
case MotorControllerBackRightIDcMax: return "MotorControllerBackRightIDcMax";
|
case MotorController<true, true>::Command::IDcMax: return "IDcMax (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftNMotMax: return "MotorControllerFrontLeftNMotMax";
|
case MotorController<false, false>::Command::NMotMax: return "NMotMax (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightNMotMax: return "MotorControllerFrontRightNMotMax";
|
case MotorController<false, true>::Command::NMotMax: return "NMotMax (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftNMotMax: return "MotorControllerBackLeftNMotMax";
|
case MotorController<true, false>::Command::NMotMax: return "NMotMax (Command, Back, Left)";
|
||||||
case MotorControllerBackRightNMotMax: return "MotorControllerBackRightNMotMax";
|
case MotorController<true, true>::Command::NMotMax: return "NMotMax (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftFieldWeakMax: return "MotorControllerFrontLeftFieldWeakMax";
|
case MotorController<false, false>::Command::FieldWeakMax: return "FieldWeakMax (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightFieldWeakMax: return "MotorControllerFrontRightFieldWeakMax";
|
case MotorController<false, true>::Command::FieldWeakMax: return "FieldWeakMax (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftFieldWeakMax: return "MotorControllerBackLeftFieldWeakMax";
|
case MotorController<true, false>::Command::FieldWeakMax: return "FieldWeakMax (Command, Back, Left)";
|
||||||
case MotorControllerBackRightFieldWeakMax: return "MotorControllerBackRightFieldWeakMax";
|
case MotorController<true, true>::Command::FieldWeakMax: return "FieldWeakMax (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftPhaseAdvMax: return "MotorControllerFrontLeftPhaseAdvMax";
|
case MotorController<false, false>::Command::PhaseAdvMax: return "PhaseAdvMax (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightPhaseAdvMax: return "MotorControllerFrontRightPhaseAdvMax";
|
case MotorController<false, true>::Command::PhaseAdvMax: return "PhaseAdvMax (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftPhaseAdvMax: return "MotorControllerBackLeftPhaseAdvMax";
|
case MotorController<true, false>::Command::PhaseAdvMax: return "PhaseAdvMax (Command, Back, Left)";
|
||||||
case MotorControllerBackRightPhaseAdvMax: return "MotorControllerBackRightPhaseAdvMax";
|
case MotorController<true, true>::Command::PhaseAdvMax: return "PhaseAdvMax (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftBuzzerFreq: return "MotorControllerFrontLeftBuzzerFreq";
|
case MotorController<false, false>::Command::BuzzerFreq: return "BuzzerFreq (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightBuzzerFreq: return "MotorControllerFrontRightBuzzerFreq";
|
case MotorController<false, true>::Command::BuzzerFreq: return "BuzzerFreq (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftBuzzerFreq: return "MotorControllerBackLeftBuzzerFreq";
|
case MotorController<true, false>::Command::BuzzerFreq: return "BuzzerFreq (Command, Back, Left)";
|
||||||
case MotorControllerBackRightBuzzerFreq: return "MotorControllerBackRightBuzzerFreq";
|
case MotorController<true, true>::Command::BuzzerFreq: return "BuzzerFreq (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftBuzzerPattern: return "MotorControllerFrontLeftBuzzerPattern";
|
case MotorController<false, false>::Command::BuzzerPattern: return "BuzzerPattern (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightBuzzerPattern: return "MotorControllerFrontRightBuzzerPattern";
|
case MotorController<false, true>::Command::BuzzerPattern: return "BuzzerPattern (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftBuzzerPattern: return "MotorControllerBackLeftBuzzerPattern";
|
case MotorController<true, false>::Command::BuzzerPattern: return "BuzzerPattern (Command, Back, Left)";
|
||||||
case MotorControllerBackRightBuzzerPattern: return "MotorControllerBackRightBuzzerPattern";
|
case MotorController<true, true>::Command::BuzzerPattern: return "BuzzerPattern (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftLed: return "MotorControllerFrontLeftLed";
|
case MotorController<false, false>::Command::Led: return "Led (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightLed: return "MotorControllerFrontRightLed";
|
case MotorController<false, true>::Command::Led: return "Led (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftLed: return "MotorControllerBackLeftLed";
|
case MotorController<true, false>::Command::Led: return "Led (Command, Back, Left)";
|
||||||
case MotorControllerBackRightLed: return "MotorControllerBackRightLed";
|
case MotorController<true, true>::Command::Led: return "Led (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftPoweroff: return "MotorControllerFrontLeftPoweroff";
|
case MotorController<false, false>::Command::Poweroff: return "Poweroff (Command, Front, Left)";
|
||||||
case MotorControllerFrontRightPoweroff: return "MotorControllerFrontRightPoweroff";
|
case MotorController<false, true>::Command::Poweroff: return "Poweroff (Command, Front, Right)";
|
||||||
case MotorControllerBackLeftPoweroff: return "MotorControllerBackLeftPoweroff";
|
case MotorController<true, false>::Command::Poweroff: return "Poweroff (Command, Back, Left)";
|
||||||
case MotorControllerBackRightPoweroff: return "MotorControllerBackRightPoweroff";
|
case MotorController<true, true>::Command::Poweroff: return "Poweroff (Command, Back, Right)";
|
||||||
case MotorControllerFrontLeftDcLink: return "MotorControllerFrontLeftDcLink";
|
case MotorController<false, false>::Feedback::DcLink: return "DcLink (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightDcLink: return "MotorControllerFrontRightDcLink";
|
case MotorController<false, true>::Feedback::DcLink: return "DcLink (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftDcLink: return "MotorControllerBackLeftDcLink";
|
case MotorController<true, false>::Feedback::DcLink: return "DcLink (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightDcLink: return "MotorControllerBackRightDcLink";
|
case MotorController<true, true>::Feedback::DcLink: return "DcLink (Feedback, Back, Right)";
|
||||||
case MotorControllerFrontLeftSpeed: return "MotorControllerFrontLeftSpeed";
|
case MotorController<false, false>::Feedback::Speed: return "Speed (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightSpeed: return "MotorControllerFrontRightSpeed";
|
case MotorController<false, true>::Feedback::Speed: return "Speed (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftSpeed: return "MotorControllerBackLeftSpeed";
|
case MotorController<true, false>::Feedback::Speed: return "Speed (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightSpeed: return "MotorControllerBackRightSpeed";
|
case MotorController<true, true>::Feedback::Speed: return "Speed (Feedback, Back, Right)";
|
||||||
case MotorControllerFrontLeftError: return "MotorControllerFrontLeftError";
|
case MotorController<false, false>::Feedback::Error: return "Error (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightError: return "MotorControllerFrontRightError";
|
case MotorController<false, true>::Feedback::Error: return "Error (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftError: return "MotorControllerBackLeftError";
|
case MotorController<true, false>::Feedback::Error: return "Error (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightError: return "MotorControllerBackRightError";
|
case MotorController<true, true>::Feedback::Error: return "Error (Feedback, Back, Right)";
|
||||||
case MotorControllerFrontLeftAngle: return "MotorControllerFrontLeftAngle";
|
case MotorController<false, false>::Feedback::Angle: return "Angle (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightAngle: return "MotorControllerFrontRightAngle";
|
case MotorController<false, true>::Feedback::Angle: return "Angle (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftAngle: return "MotorControllerBackLeftAngle";
|
case MotorController<true, false>::Feedback::Angle: return "Angle (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightAngle: return "MotorControllerBackRightAngle";
|
case MotorController<true, true>::Feedback::Angle: return "Angle (Feedback, Back, Right)";
|
||||||
case MotorControllerFrontLeftDcPhaA: return "MotorControllerFrontLeftDcPhaA";
|
case MotorController<false, false>::Feedback::DcPhaA: return "DcPhaA (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightDcPhaA: return "MotorControllerFrontRightDcPhaA";
|
case MotorController<false, true>::Feedback::DcPhaA: return "DcPhaA (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftDcPhaA: return "MotorControllerBackLeftDcPhaA";
|
case MotorController<true, false>::Feedback::DcPhaA: return "DcPhaA (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightDcPhaA: return "MotorControllerBackRightDcPhaA";
|
case MotorController<true, true>::Feedback::DcPhaA: return "DcPhaA (Feedback, Back, Right)";
|
||||||
case MotorControllerFrontLeftDcPhaB: return "MotorControllerFrontLeftDcPhaB";
|
case MotorController<false, false>::Feedback::DcPhaB: return "DcPhaB (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightDcPhaB: return "MotorControllerFrontRightDcPhaB";
|
case MotorController<false, true>::Feedback::DcPhaB: return "DcPhaB (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftDcPhaB: return "MotorControllerBackLeftDcPhaB";
|
case MotorController<true, false>::Feedback::DcPhaB: return "DcPhaB (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightDcPhaB: return "MotorControllerBackRightDcPhaB";
|
case MotorController<true, true>::Feedback::DcPhaB: return "DcPhaB (Feedback, Back, Right)";
|
||||||
case MotorControllerFrontLeftDcPhaC: return "MotorControllerFrontLeftDcPhaC";
|
case MotorController<false, false>::Feedback::DcPhaC: return "DcPhaC (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightDcPhaC: return "MotorControllerFrontRightDcPhaC";
|
case MotorController<false, true>::Feedback::DcPhaC: return "DcPhaC (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftDcPhaC: return "MotorControllerBackLeftDcPhaC";
|
case MotorController<true, false>::Feedback::DcPhaC: return "DcPhaC (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightDcPhaC: return "MotorControllerBackRightDcPhaC";
|
case MotorController<true, true>::Feedback::DcPhaC: return "DcPhaC (Feedback, Back, Right)";
|
||||||
case MotorControllerFrontLeftChops: return "MotorControllerFrontLeftChops";
|
case MotorController<false, false>::Feedback::Chops: return "Chops (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightChops: return "MotorControllerFrontRightChops";
|
case MotorController<false, true>::Feedback::Chops: return "Chops (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftChops: return "MotorControllerBackLeftChops";
|
case MotorController<true, false>::Feedback::Chops: return "Chops (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightChops: return "MotorControllerBackRightChops";
|
case MotorController<true, true>::Feedback::Chops: return "Chops (Feedback, Back, Right)";
|
||||||
case MotorControllerFrontLeftHall: return "MotorControllerFrontLeftHall";
|
case MotorController<false, false>::Feedback::Hall: return "Hall (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightHall: return "MotorControllerFrontRightHall";
|
case MotorController<false, true>::Feedback::Hall: return "Hall (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftHall: return "MotorControllerBackLeftHall";
|
case MotorController<true, false>::Feedback::Hall: return "Hall (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightHall: return "MotorControllerBackRightHall";
|
case MotorController<true, true>::Feedback::Hall: return "Hall (Feedback, Back, Right)";
|
||||||
case MotorControllerFrontLeftVoltage: return "MotorControllerFrontLeftVoltage";
|
case MotorController<false, false>::Feedback::Voltage: return "Voltage (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightVoltage: return "MotorControllerFrontRightVoltage";
|
case MotorController<false, true>::Feedback::Voltage: return "Voltage (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftVoltage: return "MotorControllerBackLeftVoltage";
|
case MotorController<true, false>::Feedback::Voltage: return "Voltage (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightVoltage: return "MotorControllerBackRightVoltage";
|
case MotorController<true, true>::Feedback::Voltage: return "Voltage (Feedback, Back, Right)";
|
||||||
case MotorControllerFrontLeftTemp: return "MotorControllerFrontLeftTemp";
|
case MotorController<false, false>::Feedback::Temp: return "Temp (Feedback, Front, Left)";
|
||||||
case MotorControllerFrontRightTemp: return "MotorControllerFrontRightTemp";
|
case MotorController<false, true>::Feedback::Temp: return "Temp (Feedback, Front, Right)";
|
||||||
case MotorControllerBackLeftTemp: return "MotorControllerBackLeftTemp";
|
case MotorController<true, false>::Feedback::Temp: return "Temp (Feedback, Back, Left)";
|
||||||
case MotorControllerBackRightTemp: return "MotorControllerBackRightTemp";
|
case MotorController<true, true>::Feedback::Temp: return "Temp (Feedback, Back, Right)";
|
||||||
}
|
}
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user