13 #include <cm730/CM730.h>
15 using namespace cm730;
21 MPData() { std::memset(
this, 0,
sizeof(MPData)); length=12; f_writePosition =
false; }
29 unsigned char healthPrevious;
35 unsigned short position;
37 unsigned short torque;
38 unsigned char voltage;
39 unsigned char temperature;
42 unsigned char torqueEnable;
43 unsigned char complianceSlope;
44 unsigned short positionGoal;
45 unsigned short speedGoal;
46 unsigned short torqueGoal;
54 MPBoard() { std::memset(
this, 0,
sizeof(MPBoard)); length = 30;}
61 unsigned char healthPrevious;
65 unsigned char ledPanel;
66 unsigned short rgbled5;
67 unsigned short rgbled6;
69 unsigned char voltage;
81 unsigned char ledPanelCmd;
82 unsigned short rgbled5Cmd;
89 class CM740mp :
public CM730
92 CM740mp() : m_inMegapacketMode(false), m_isMegapacketConfigured(false), m_writeMegapacket(false) { } ;
93 int writeMegapacket(std::vector<MPData>& Servos, MPBoard& Board);
94 int receiveMegapacket(std::vector<MPData>& Servos, MPBoard& Board);
95 int configureMegapacket(std::vector<MPData>& Servos, MPBoard& Board);
96 void addMegapacketServo(std::vector<MPData>& Servos,
unsigned char id,
unsigned char type);
97 int parseBoardData(MPBoard& Board,
unsigned char* data);
98 int parseServoData(MPData& Servo,
unsigned char* data);
99 int enableMegapacket(
bool enable);
100 int packetsReceived(
unsigned char oldPackets,
unsigned char currentPackets);
101 int txMegapacket(
unsigned char* txp);
102 int rxMegapacket(
unsigned char* txp);
104 bool m_inMegapacketMode;
105 bool m_isMegapacketConfigured;
106 bool m_writeMegapacket;