...
This commit is contained in:
parent
d5b3f188fc
commit
309fc7f56c
@ -109,7 +109,7 @@ static constexpr std::string_view PROTO_COMMAND_STR_GET_EMUL_FWR_REV = "V"; //
|
|||||||
|
|
||||||
static constexpr std::string_view PROTO_COMMAND_STR_HOME_SEEK_AND_STORE = "hS";
|
static constexpr std::string_view PROTO_COMMAND_STR_HOME_SEEK_AND_STORE = "hS";
|
||||||
static constexpr std::string_view PROTO_COMMAND_STR_HOME_SEEK_AND_ALIGN = "hF";
|
static constexpr std::string_view PROTO_COMMAND_STR_HOME_SEEK_AND_ALIGN = "hF";
|
||||||
static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_PARK_hS = "hS";
|
static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_PARK_hP = "hP";
|
||||||
static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_PARK_KA = "KA";
|
static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_PARK_KA = "KA";
|
||||||
static constexpr std::string_view PROTO_COMMAND_STR_UNPARK = "PO";
|
static constexpr std::string_view PROTO_COMMAND_STR_UNPARK = "PO";
|
||||||
static constexpr std::string_view PROTO_COMMAND_STR_QUERY_HOME_STATUS = "h?";
|
static constexpr std::string_view PROTO_COMMAND_STR_QUERY_HOME_STATUS = "h?";
|
||||||
@ -348,7 +348,7 @@ enum PROTO_COMMAND_ID : size_t {
|
|||||||
PROTO_COMMAND_ID_GET_EMUL_FWR_REV = details::FNV1aHash(PROTO_COMMAND_STR_GET_EMUL_FWR_REV),
|
PROTO_COMMAND_ID_GET_EMUL_FWR_REV = details::FNV1aHash(PROTO_COMMAND_STR_GET_EMUL_FWR_REV),
|
||||||
PROTO_COMMAND_ID_HOME_SEEK_AND_STORE = details::FNV1aHash(PROTO_COMMAND_STR_HOME_SEEK_AND_STORE),
|
PROTO_COMMAND_ID_HOME_SEEK_AND_STORE = details::FNV1aHash(PROTO_COMMAND_STR_HOME_SEEK_AND_STORE),
|
||||||
PROTO_COMMAND_ID_HOME_SEEK_AND_ALIGN = details::FNV1aHash(PROTO_COMMAND_STR_HOME_SEEK_AND_ALIGN),
|
PROTO_COMMAND_ID_HOME_SEEK_AND_ALIGN = details::FNV1aHash(PROTO_COMMAND_STR_HOME_SEEK_AND_ALIGN),
|
||||||
PROTO_COMMAND_ID_SLEW_TO_PARK_hS = details::FNV1aHash(PROTO_COMMAND_STR_SLEW_TO_PARK_hS),
|
PROTO_COMMAND_ID_SLEW_TO_PARK_hP = details::FNV1aHash(PROTO_COMMAND_STR_SLEW_TO_PARK_hP),
|
||||||
PROTO_COMMAND_ID_SLEW_TO_PARK_KA = details::FNV1aHash(PROTO_COMMAND_STR_SLEW_TO_PARK_KA),
|
PROTO_COMMAND_ID_SLEW_TO_PARK_KA = details::FNV1aHash(PROTO_COMMAND_STR_SLEW_TO_PARK_KA),
|
||||||
PROTO_COMMAND_ID_UNPARK = details::FNV1aHash(PROTO_COMMAND_STR_UNPARK),
|
PROTO_COMMAND_ID_UNPARK = details::FNV1aHash(PROTO_COMMAND_STR_UNPARK),
|
||||||
PROTO_COMMAND_ID_QUERY_HOME_STATUS = details::FNV1aHash(PROTO_COMMAND_STR_QUERY_HOME_STATUS),
|
PROTO_COMMAND_ID_QUERY_HOME_STATUS = details::FNV1aHash(PROTO_COMMAND_STR_QUERY_HOME_STATUS),
|
||||||
@ -567,7 +567,7 @@ static constexpr std::array PROTO_COMMAND_DESC = {
|
|||||||
proto_command_t{PROTO_COMMAND_STR_GET_EMUL_FWR_REV, PROTO_COMMAND_ID_GET_EMUL_FWR_REV, ""},
|
proto_command_t{PROTO_COMMAND_STR_GET_EMUL_FWR_REV, PROTO_COMMAND_ID_GET_EMUL_FWR_REV, ""},
|
||||||
proto_command_t{PROTO_COMMAND_STR_HOME_SEEK_AND_STORE, PROTO_COMMAND_ID_HOME_SEEK_AND_STORE, ""},
|
proto_command_t{PROTO_COMMAND_STR_HOME_SEEK_AND_STORE, PROTO_COMMAND_ID_HOME_SEEK_AND_STORE, ""},
|
||||||
proto_command_t{PROTO_COMMAND_STR_HOME_SEEK_AND_ALIGN, PROTO_COMMAND_ID_HOME_SEEK_AND_ALIGN, ""},
|
proto_command_t{PROTO_COMMAND_STR_HOME_SEEK_AND_ALIGN, PROTO_COMMAND_ID_HOME_SEEK_AND_ALIGN, ""},
|
||||||
proto_command_t{PROTO_COMMAND_STR_SLEW_TO_PARK_hS, PROTO_COMMAND_ID_SLEW_TO_PARK_hS, ""},
|
proto_command_t{PROTO_COMMAND_STR_SLEW_TO_PARK_hP, PROTO_COMMAND_ID_SLEW_TO_PARK_hP, ""},
|
||||||
proto_command_t{PROTO_COMMAND_STR_SLEW_TO_PARK_KA, PROTO_COMMAND_ID_SLEW_TO_PARK_KA, ""},
|
proto_command_t{PROTO_COMMAND_STR_SLEW_TO_PARK_KA, PROTO_COMMAND_ID_SLEW_TO_PARK_KA, ""},
|
||||||
proto_command_t{PROTO_COMMAND_STR_UNPARK, PROTO_COMMAND_ID_UNPARK, ""},
|
proto_command_t{PROTO_COMMAND_STR_UNPARK, PROTO_COMMAND_ID_UNPARK, ""},
|
||||||
proto_command_t{PROTO_COMMAND_STR_QUERY_HOME_STATUS, PROTO_COMMAND_ID_QUERY_HOME_STATUS, ""},
|
proto_command_t{PROTO_COMMAND_STR_QUERY_HOME_STATUS, PROTO_COMMAND_ID_QUERY_HOME_STATUS, ""},
|
||||||
@ -718,6 +718,25 @@ static constexpr std::array PROTO_COMMAND_DESC = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
namespace details
|
||||||
|
{
|
||||||
|
|
||||||
|
consteval bool checkCollision()
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < PROTO_COMMAND_DESC.size() - 1; ++i) {
|
||||||
|
for (size_t j = i + 1; j < PROTO_COMMAND_DESC.size() - 1; ++j) {
|
||||||
|
if (PROTO_COMMAND_DESC[i].hash == PROTO_COMMAND_DESC[j].hash) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static_assert(checkCollision(), "There are collisions in the hash computation of the commands!!!");
|
||||||
|
|
||||||
|
} // namespace details
|
||||||
|
|
||||||
class ControlCommandParser
|
class ControlCommandParser
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user