72 lines
2.8 KiB
C++
72 lines
2.8 KiB
C++
#pragma once
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
#include <string.h>
|
|
|
|
namespace mesh {
|
|
namespace companion {
|
|
|
|
static constexpr uint8_t kRunCliCommand = 0x42;
|
|
|
|
// Original aliases predate upstream's command-66 allocation. The later block
|
|
// was shipped briefly before this fork standardized new clients on framed CLI.
|
|
static constexpr uint8_t kOriginalGetFemRxGain = 0x42;
|
|
static constexpr uint8_t kOriginalSetFemRxGain = 0x43;
|
|
static constexpr uint8_t kOriginalGetRadioRxGain = 0x44;
|
|
static constexpr uint8_t kOriginalSetRadioRxGain = 0x45;
|
|
static constexpr uint8_t kOriginalGetWiFiPowerSave = 0x46;
|
|
static constexpr uint8_t kOriginalSetWiFiPowerSave = 0x47;
|
|
static constexpr uint8_t kOriginalGetBluetoothName = 0x48;
|
|
static constexpr uint8_t kOriginalSetBluetoothName = 0x49;
|
|
|
|
static constexpr uint8_t kDeprecatedGetFemRxGain = 0x78;
|
|
static constexpr uint8_t kDeprecatedSetFemRxGain = 0x79;
|
|
static constexpr uint8_t kDeprecatedGetRadioRxGain = 0x7A;
|
|
static constexpr uint8_t kDeprecatedSetRadioRxGain = 0x7B;
|
|
static constexpr uint8_t kDeprecatedGetWiFiPowerSave = 0x7C;
|
|
static constexpr uint8_t kDeprecatedSetWiFiPowerSave = 0x7D;
|
|
static constexpr uint8_t kDeprecatedGetBluetoothName = 0x7E;
|
|
static constexpr uint8_t kDeprecatedSetBluetoothName = 0x7F;
|
|
|
|
inline bool isRunCliFrame(uint8_t command, size_t frame_len) {
|
|
return command == kRunCliCommand && frame_len >= 2;
|
|
}
|
|
|
|
// The official app appends a NUL; other clients send just the text. Accept
|
|
// either representation, but never execute a truncated or empty command.
|
|
inline size_t cliCommandTextLength(const uint8_t* body, size_t length) {
|
|
if (body == nullptr || length == 0) return 0;
|
|
if (body[length - 1] == 0) --length;
|
|
if (length == 0 || memchr(body, 0, length) != nullptr) return 0;
|
|
return length;
|
|
}
|
|
|
|
inline bool isFemRxGainGet(uint8_t command) {
|
|
return command == kOriginalGetFemRxGain || command == kDeprecatedGetFemRxGain;
|
|
}
|
|
inline bool isFemRxGainSet(uint8_t command) {
|
|
return command == kOriginalSetFemRxGain || command == kDeprecatedSetFemRxGain;
|
|
}
|
|
inline bool isRadioRxGainGet(uint8_t command) {
|
|
return command == kOriginalGetRadioRxGain || command == kDeprecatedGetRadioRxGain;
|
|
}
|
|
inline bool isRadioRxGainSet(uint8_t command) {
|
|
return command == kOriginalSetRadioRxGain || command == kDeprecatedSetRadioRxGain;
|
|
}
|
|
inline bool isWiFiPowerSaveGet(uint8_t command) {
|
|
return command == kOriginalGetWiFiPowerSave || command == kDeprecatedGetWiFiPowerSave;
|
|
}
|
|
inline bool isWiFiPowerSaveSet(uint8_t command) {
|
|
return command == kOriginalSetWiFiPowerSave || command == kDeprecatedSetWiFiPowerSave;
|
|
}
|
|
inline bool isBluetoothNameGet(uint8_t command) {
|
|
return command == kOriginalGetBluetoothName || command == kDeprecatedGetBluetoothName;
|
|
}
|
|
inline bool isBluetoothNameSet(uint8_t command) {
|
|
return command == kOriginalSetBluetoothName || command == kDeprecatedSetBluetoothName;
|
|
}
|
|
|
|
} // namespace companion
|
|
} // namespace mesh
|