...
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
#include <random>
|
||||
|
||||
#include <mcc_pcm.h>
|
||||
#include <mcc_serializer.h>
|
||||
#include <mcc_telemetry.h>
|
||||
|
||||
|
||||
static std::random_device rd;
|
||||
static std::mt19937 gen(rd());
|
||||
static std::uniform_int_distribution<long> tm_distrib(100, 700);
|
||||
@@ -62,16 +62,31 @@ struct hw_t {
|
||||
};
|
||||
|
||||
template <>
|
||||
struct std::formatter<hw_t::hardware_movement_state_t, char>
|
||||
: std::formatter<std::underlying_type_t<hw_t::hardware_movement_state_t>, char> {
|
||||
struct std::formatter<hw_t::hardware_movement_state_t, char> : std::formatter<std::string_view> {
|
||||
auto format(hw_t::hardware_movement_state_t e, auto& ctx) const
|
||||
{
|
||||
return formatter<std::underlying_type_t<hw_t::hardware_movement_state_t>>::format(
|
||||
std::underlying_type_t<hw_t::hardware_movement_state_t>(e), ctx);
|
||||
return formatter<std::string_view>::format(e == hw_t::hardware_movement_state_t::HW_MOVE_ERROR ? "ERROR"
|
||||
: e == hw_t::hardware_movement_state_t::HW_MOVE_STOPPED ? "STOPPED"
|
||||
: e == hw_t::hardware_movement_state_t::HW_MOVE_STOPPING ? "STOPPING"
|
||||
: e == hw_t::hardware_movement_state_t::HW_MOVE_SLEWING ? "SLEWING"
|
||||
: e == hw_t::hardware_movement_state_t::HW_MOVE_TRACKING ? "TRACKING"
|
||||
: "UNKNOWN",
|
||||
ctx);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// template <>
|
||||
// struct std::formatter<hw_t::hardware_movement_state_t, char>
|
||||
// : std::formatter<std::underlying_type_t<hw_t::hardware_movement_state_t>, char> {
|
||||
// auto format(hw_t::hardware_movement_state_t e, auto& ctx) const
|
||||
// {
|
||||
// return formatter<std::underlying_type_t<hw_t::hardware_movement_state_t>>::format(
|
||||
// std::underlying_type_t<hw_t::hardware_movement_state_t>(e), ctx);
|
||||
// }
|
||||
// };
|
||||
|
||||
|
||||
|
||||
static_assert(mcc::mcc_hardware_c<hw_t>, "!!!!!");
|
||||
|
||||
@@ -97,5 +112,18 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
mcc::impl::MccSerializer<typename t_t::telemetry_data_t> ser;
|
||||
|
||||
std::string str;
|
||||
|
||||
auto err = ser(str, tdata);
|
||||
if (err) {
|
||||
std::cout << "ERR: " << err.message() << "\n";
|
||||
} else {
|
||||
std::cout << "\n\n";
|
||||
std::cout << str << "\n";
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user