30a96c5125
feat(gateway_bacnet): add functions to clear BACnet objects and set their states feat(gateway_bridge): implement discovery inventory management and scanning functionality fix(gateway_bridge): update handleGet to support new inventory and effective model actions refactor(gateway_bridge): improve BACnet binding handling and reliability reporting Co-authored-by: Copilot <copilot@github.com>
62 lines
1.6 KiB
C
62 lines
1.6 KiB
C
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum gateway_bacnet_object_kind {
|
|
GW_BACNET_OBJECT_UNKNOWN = 0,
|
|
GW_BACNET_OBJECT_ANALOG_VALUE,
|
|
GW_BACNET_OBJECT_ANALOG_OUTPUT,
|
|
GW_BACNET_OBJECT_BINARY_VALUE,
|
|
GW_BACNET_OBJECT_BINARY_OUTPUT,
|
|
GW_BACNET_OBJECT_MULTI_STATE_VALUE,
|
|
} gateway_bacnet_object_kind_t;
|
|
|
|
typedef enum gateway_bacnet_write_value_kind {
|
|
GW_BACNET_WRITE_VALUE_REAL = 1,
|
|
GW_BACNET_WRITE_VALUE_BOOLEAN = 2,
|
|
GW_BACNET_WRITE_VALUE_UNSIGNED = 3,
|
|
} gateway_bacnet_write_value_kind_t;
|
|
|
|
typedef struct gateway_bacnet_write_value {
|
|
gateway_bacnet_write_value_kind_t kind;
|
|
double real_value;
|
|
bool boolean_value;
|
|
uint32_t unsigned_value;
|
|
} gateway_bacnet_write_value_t;
|
|
|
|
typedef void (*gateway_bacnet_stack_write_callback_t)(
|
|
gateway_bacnet_object_kind_t object_kind,
|
|
uint32_t object_instance,
|
|
const gateway_bacnet_write_value_t* value,
|
|
void* context);
|
|
|
|
bool gateway_bacnet_stack_start(
|
|
uint32_t device_instance,
|
|
const char* device_name,
|
|
uint16_t udp_port,
|
|
gateway_bacnet_stack_write_callback_t write_callback,
|
|
void* callback_context);
|
|
|
|
void gateway_bacnet_stack_cleanup(void);
|
|
|
|
bool gateway_bacnet_stack_upsert_object(
|
|
gateway_bacnet_object_kind_t object_kind,
|
|
uint32_t object_instance,
|
|
const char* object_name,
|
|
const char* description,
|
|
bool out_of_service,
|
|
uint32_t reliability);
|
|
|
|
bool gateway_bacnet_stack_clear_objects(void);
|
|
|
|
void gateway_bacnet_stack_send_i_am(void);
|
|
void gateway_bacnet_stack_poll(uint16_t elapsed_ms);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif |