diff options
Diffstat (limited to 'meta-facebook/meta-wedge/recipes-wedge/rackmon/rackmon/rackmond.h')
-rw-r--r-- | meta-facebook/meta-wedge/recipes-wedge/rackmon/rackmon/rackmond.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/meta-facebook/meta-wedge/recipes-wedge/rackmon/rackmon/rackmond.h b/meta-facebook/meta-wedge/recipes-wedge/rackmon/rackmon/rackmond.h new file mode 100644 index 0000000..2c0e8a0 --- /dev/null +++ b/meta-facebook/meta-wedge/recipes-wedge/rackmon/rackmon/rackmond.h @@ -0,0 +1,46 @@ +#include <stdint.h> + +//would've been nice to have thrift + +// Raw modbus command +// Response is just the raw response data +typedef struct raw_modbus_command { + uint16_t length; + uint16_t expected_response_length; + uint32_t custom_timeout; // 0 for default + char data[1]; +} raw_modbus_command; + +// only store new value if different from most recent +// (for watching changes to status flags registers) +#define MONITOR_FLAG_ONLY_CHANGES 0x1 + +typedef struct monitor_interval { + uint16_t begin; + uint16_t len; + uint16_t keep; // How long of a history to keep? + uint16_t flags; +} monitor_interval; + +typedef struct monitoring_config { + uint16_t num_intervals; + monitor_interval intervals[1]; +} monitoring_config; + +typedef struct set_config_command { + monitoring_config config; +} set_config_command; + +#define COMMAND_TYPE_RAW_MODBUS 0x01 +#define COMMAND_TYPE_SET_CONFIG 0x02 +#define COMMAND_TYPE_DUMP_DATA_JSON 0x03 +#define COMMAND_TYPE_PAUSE_MONITORING 0x04 +#define COMMAND_TYPE_START_MONITORING 0x05 + +typedef struct rackmond_command { + uint16_t type; + union { + raw_modbus_command raw_modbus; + set_config_command set_config; + }; +} rackmond_command; |