Communication: Support extended commands

This commit is contained in:
Paul Hollinsky
2021-09-20 23:07:49 -04:00
parent 67c8e6a952
commit 38f0022bb6
3 changed files with 28 additions and 0 deletions
+12
View File
@@ -22,9 +22,21 @@ enum class Command : uint8_t {
RequestBitSmash = 0xDC, // Previously known as RED_CMD_CM_BITSMASH
GetVBattReq = 0xDF, // Previously known as RED_CMD_VBATT_REQUEST
MiscControl = 0xE7,
Extended = 0xF0,
FlexRayControl = 0xF3
};
enum class ExtendedCommand : uint16_t {
GetDiskDetails = 0x0010,
DiskFormatStart = 0x0011,
DiskFormatCancel = 0x0012,
DiskFormatProgress = 0x0013,
DiskFormatUpdate = 0x0014,
Extract = 0x0015,
StartDHCPServer = 0x0016,
StopDHCPServer = 0x0017,
};
}
#endif // __cplusplus
@@ -52,6 +52,7 @@ public:
virtual bool sendCommand(Command cmd, bool boolean) { return sendCommand(cmd, std::vector<uint8_t>({ (uint8_t)boolean })); }
virtual bool sendCommand(Command cmd, std::vector<uint8_t> arguments = {});
bool sendCommand(ExtendedCommand cmd, std::vector<uint8_t> arguments = {});
bool getSettingsSync(std::vector<uint8_t>& data, std::chrono::milliseconds timeout = std::chrono::milliseconds(50));
std::shared_ptr<SerialNumberMessage> getSerialNumberSync(std::chrono::milliseconds timeout = std::chrono::milliseconds(50));
optional< std::vector< optional<DeviceAppVersion> > > getVersionsSync(std::chrono::milliseconds timeout = std::chrono::milliseconds(50));