Hermes SDK Documentation
HermesCallbackTypes.hpp
Go to the documentation of this file.
1 
3 #pragma once
4 
5 #include "protodefinitions/Devices.pb.h"
6 #include "protodefinitions/Landscape.pb.h"
7 #include "protodefinitions/Polygon.pb.h"
8 #include "protodefinitions/Pipeline.pb.h"
9 
10 #include <functional>
11 
12 namespace HermesSDK
13 {
14  // Set up a Doxygen group.
19  enum class ErrorCodes : int
25  {
26  /**********************************************************************
27  * hard error
28  *********************************************************************/
29 
31  failed_hard_login_could_not_connect,
33  failed_hard_logout_status,
34 
35  // Obsolete.
36  //failed_to_set_pipeline,
38  failed_hard_get_filter_inventory,
40  failed_hard_to_get_active_pipeline,
42  failed_hard_to_set_currently_active_pipeline,
43 
45  failed_hard_connect_to_data_publisher,
47  failed_hard_connect_to_landscape_publisher,
49  failed_hard_connect_to_polygon_publisher,
51  failed_hard_connect_to_tracking_data_publisher,
52 
55  error_generic,
56 
57  /**********************************************************************
58  * soft error
59  *********************************************************************/
60 
62  failed_soft_rumble,
64  failed_soft_sending_message_through_haptics_socket,
65 
67  failed_soft_heartbeat_to_get_time,
69  failed_soft_heartbeat_status,
71  failed_soft_to_parse_wrapped_devices,
73  failed_soft_to_parse_wrapped_polygon,
75  failed_soft_to_parse_wrapped_tracking_data,
76 
78  failed_soft_get_all_players,
79 
81  failed_soft_update_trackers,
82 
84  failed_soft_add_polygon_skeleton,
86  failed_soft_remove_polygon_skeleton,
88  failed_soft_set_polygon_skeleton_target,
90  failed_soft_set_polygon_retargeting_settings,
92  failed_soft_add_target_skeleton,
94  failed_soft_remove_target_skeleton,
96  failed_soft_update_target_skeleton,
99  };
100 
106  {
107  ErrorCodes errorCode;
109  std::string errorMessage;
110 
111  // Quick constructors.
112  ErrorMessage(ErrorCodes code, std::string message) : errorCode(code), errorMessage(message) {};
114  ErrorMessage(ErrorCodes code) : errorCode(code), errorMessage("") {};
115  };
116 
118  typedef std::function<void(const Hermes::Protocol::Devices &_devices)> deviceDataCallback;
120  typedef std::function<void(const Hermes::Protocol::Hardware::DeviceLandscape &_landscape)> deviceLandscapeCallback;
122  typedef std::function<void(const Hermes::Protocol::Polygon::Data &_data)> polygonDataCallback;
124  typedef std::function<void(const Hermes::Protocol::TrackerData &_data)> trackingDataCallback;
126  typedef std::function<void(Hermes::Protocol::Pipeline &_pipeline)> filterSetupCallback;
128  typedef std::function<void(const ErrorMessage &msg)> errorMessageCallback;
130  typedef std::function<void(void)> connectedToCoreCallback;
132  typedef std::function<void(void)> disconnectedFromCoreCallback;
133 
134  // Close the Doxygen group.
136 }
HermesSDK::trackingDataCallback
std::function< void(const Hermes::Protocol::TrackerData &_data)> trackingDataCallback
Typedef to support callback for tracking data.
Definition: HermesCallbackTypes.hpp:124
HermesSDK::connectedToCoreCallback
std::function< void(void)> connectedToCoreCallback
Typedef to support callback on connect to manus core.
Definition: HermesCallbackTypes.hpp:130
Hermes::Protocol::Devices
Definition: Devices.proto:11
HermesSDK::ErrorCodes::failed_hard_login_could_not_connect
@ failed_hard_login_could_not_connect
Could not connect during login, check network settings.
HermesSDK::ErrorCodes
ErrorCodes
Definition: HermesCallbackTypes.hpp:25
HermesSDK::disconnectedFromCoreCallback
std::function< void(void)> disconnectedFromCoreCallback
Typedef to support callback on disconnect from manus core.
Definition: HermesCallbackTypes.hpp:132
HermesSDK::deviceDataCallback
std::function< void(const Hermes::Protocol::Devices &_devices)> deviceDataCallback
Typedef to support callback for device data.
Definition: HermesCallbackTypes.hpp:118
HermesSDK::errorMessageCallback
std::function< void(const ErrorMessage &msg)> errorMessageCallback
Typedef to support callback for error messages.
Definition: HermesCallbackTypes.hpp:128
Hermes::Protocol::Pipeline
Definition: Pipeline.proto:23
HermesSDK::polygonDataCallback
std::function< void(const Hermes::Protocol::Polygon::Data &_data)> polygonDataCallback
Typedef to support callback for Polygon data.
Definition: HermesCallbackTypes.hpp:122
HermesSDK::deviceLandscapeCallback
std::function< void(const Hermes::Protocol::Hardware::DeviceLandscape &_landscape)> deviceLandscapeCallback
Typedef to support callback for landscape (connected devices) data.
Definition: HermesCallbackTypes.hpp:120
HermesSDK::ErrorMessage
Definition: HermesCallbackTypes.hpp:106
Hermes::Protocol::Polygon::Data
Definition: Polygon.proto:9
HermesSDK::filterSetupCallback
std::function< void(Hermes::Protocol::Pipeline &_pipeline)> filterSetupCallback
Typedef to support callback for filter pipeline data.
Definition: HermesCallbackTypes.hpp:126
HermesSDK::ErrorMessage::errorMessage
std::string errorMessage
Optional message. Not always filled in.
Definition: HermesCallbackTypes.hpp:109
Hermes::Protocol::TrackerData
Definition: Tracker.proto:27
HermesSDK::ErrorMessage::ErrorMessage
ErrorMessage(ErrorCodes code)
No string passed.
Definition: HermesCallbackTypes.hpp:114