Modular v1
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
/* Device Registry - Abstração de diferentes tipos de dispositivos Zigbee */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "esp_zigbee_core.h"
|
||||
#include "device_config.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* ========================= ESTRUTURA DE DISPOSITIVO ========================= */
|
||||
|
||||
typedef struct {
|
||||
const char *name; /* Nome do dispositivo */
|
||||
uint16_t device_id; /* Zigbee Device ID */
|
||||
uint8_t endpoint; /* Endpoint do dispositivo */
|
||||
|
||||
/* Função para criar clusters específicos do dispositivo */
|
||||
esp_zb_cluster_list_t* (*create_clusters)(void);
|
||||
|
||||
/* Handler para atributos específicos do dispositivo */
|
||||
esp_err_t (*attribute_handler)(const esp_zb_zcl_set_attr_value_message_t *message);
|
||||
|
||||
/* Função de inicialização específica do hardware */
|
||||
void (*hardware_init)(void);
|
||||
|
||||
/* Função para atualizar estado do dispositivo */
|
||||
void (*update_state)(void);
|
||||
|
||||
} device_type_t;
|
||||
|
||||
/* ========================= REGISTRO DE DISPOSITIVOS ========================= */
|
||||
|
||||
/* Retorna a configuração do dispositivo ativo */
|
||||
const device_type_t* device_get_config(void);
|
||||
|
||||
/* ========================= FUNÇÕES AUXILIARES PARA CLUSTERS ========================= */
|
||||
|
||||
/* Cria cluster básico (obrigatório para todos os dispositivos) */
|
||||
esp_zb_attribute_list_t* device_create_basic_cluster(void);
|
||||
|
||||
/* Cria cluster identify (obrigatório para todos os dispositivos) */
|
||||
esp_zb_attribute_list_t* device_create_identify_cluster(void);
|
||||
|
||||
/* Cria cluster on/off (para dispositivos controláveis) */
|
||||
esp_zb_attribute_list_t* device_create_onoff_cluster(void);
|
||||
|
||||
/* Cria cluster de temperatura (para sensores) */
|
||||
esp_zb_attribute_list_t* device_create_temperature_cluster(void);
|
||||
|
||||
/* Cria cluster de ocupação (para sensores de movimento/porta) */
|
||||
esp_zb_attribute_list_t* device_create_occupancy_cluster(void);
|
||||
|
||||
/* Cria cluster IAS Zone (para sensores de segurança) */
|
||||
esp_zb_attribute_list_t* device_create_ias_zone_cluster(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user