6 #include "TrackingManager.h" 11 inline std::string
buffer_to_string(
const uint8_t(&buff)[SIZE],
char separator =
',',
bool as_hex =
false)
13 std::ostringstream oss;
17 for (
size_t i = 0; i < SIZE; i++)
29 #define CASE_RETURN_STR(X) case perc::Status::##X: {\ 30 static std::string s##X##_str = make_less_screamy(#X);\ 56 default:
return to_string() <<
"Unknown (" << (int)value <<
")";
58 #undef CASE_RETURN_STR 61 inline std::ostream&
operator<<(std::ostream& os,
const perc::TrackingData::Version& v)
63 return os << v.major <<
"." << v.minor <<
"." << v.patch <<
"." << v.build;
74 return to_json(event_type_discovery(), serialized_data);
80 <<
"\"ID\" : " << (int)frame.controllerId;
87 "\"sensorIndex\": " << (int)frame.sensorIndex <<
"," 88 "\"frameId\": " << (
int)frame.frameId <<
"," 89 "\"eventId\": " << (int)frame.eventId <<
"," 90 "\"instanceId\": " << (
int)frame.instanceId <<
"," 92 return to_json(event_type_frame(), serialized_data);
98 "\"status\": \"" <<
get_string(frame.status) <<
"\"," 99 "\"controllerId\": " << (int)frame.controllerId <<
"," 100 "\"manufacturerId\": " << (
int)frame.manufacturerId <<
"," 101 "\"protocol\": \"" << frame.protocol <<
"\"," 102 "\"app\": \"" << frame.app <<
"\"," 103 "\"softDevice\": \"" << frame.softDevice <<
"\"," 104 "\"bootLoader\": \"" << frame.bootLoader <<
"\"";
105 return to_json(event_type_frame(), serialized_data);
108 static std::string
serialized_data(
const perc::TrackingData::ControllerDeviceConnect& c, uint8_t controller_id)
112 "\"ID\" : " << (int)controller_id;
113 return to_json(event_type_connection(), serialized_data);
116 static constexpr
const char* prefix() {
return R
"JSON({"Event Type":"Controller Event", "Data" : {)JSON"; } 117 static constexpr
const char* suffix() {
return "}}"; }
118 static constexpr
const char* event_type_frame() {
return "Frame"; }
119 static constexpr
const char* event_type_connection() {
return "Connection"; }
120 static constexpr
const char* event_type_disconnection() {
return "Disconnection"; }
121 static constexpr
const char* event_type_discovery() {
return "Discovery"; }
123 static std::string to_json(
const char* sub_type,
const std::string& data)
127 <<
"\"Sub Type\" : " <<
"\"" << sub_type <<
"\"," 128 <<
"\"Data\" : {" << data <<
"}" std::ostream & operator<<(std::ostream &os, const perc::TrackingData::Version &v)
Definition: controller_event_serializer.h:61
static std::string serialized_data(const perc::TrackingData::ControllerFrame &frame)
Definition: controller_event_serializer.h:84
Definition: controller_event_serializer.h:67
Definition: serialization.h:48
#define CASE_RETURN_STR(X)
static std::string serialized_data(const perc::TrackingData::ControllerDiscoveryEventFrame &frame)
Definition: controller_event_serializer.h:70
static std::string serialized_data(const perc::TrackingData::ControllerConnectedEventFrame &frame)
Definition: controller_event_serializer.h:95
static std::string serialized_data(const perc::TrackingData::ControllerDisconnectedEventFrame &frame)
Definition: controller_event_serializer.h:77
std::string get_string(perc::Status value)
Definition: controller_event_serializer.h:26
std::string buffer_to_string(const uint8_t(&buff)[SIZE], char separator=',', bool as_hex=false)
Definition: controller_event_serializer.h:11
static std::string serialized_data(const perc::TrackingData::ControllerDeviceConnect &c, uint8_t controller_id)
Definition: controller_event_serializer.h:108