Commit e7d3c114 authored by limm's avatar limm

1,增加绑定解绑操作!

parent 5459550e
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -166,8 +166,8 @@ bool APP_PreCommandHandlerCallback(EmberAfClusterCommand* cmd) ...@@ -166,8 +166,8 @@ bool APP_PreCommandHandlerCallback(EmberAfClusterCommand* cmd)
{ {
uint8_t datavalue = cmd->buffer[i + 3]; uint8_t datavalue = cmd->buffer[i + 3];
iKonkeAfSelfPrint("##### datavalue (%d),%d \r\n",datavalue,cmd->buffer[i + 3] ); iKonkeAfSelfPrint("##### datavalue (%d),%d \r\n",datavalue,cmd->buffer[i + 3] );
if( (((datavalue == 3)||(datavalue == 4)||(datavalue == 7)||(datavalue == 8))&&(g_sDevice_Info.Device_Type == Device_Type_Air_Condition)) || if( (((datavalue == 3)||(datavalue == 4)||(datavalue == 7)||(datavalue == 8))&&(endpoint == 1)) ||
(((datavalue == 1)||(datavalue == 2))&&(g_sDevice_Info.Device_Type == Device_Type_Floor_Heating))) (((datavalue == 1)||(datavalue == 2))&&(endpoint == 2)))
{ {
temp_data = datavalue; temp_data = datavalue;
Control_MCU(&g_sMsgNode,endpoint,CMD_SYSTEM,temp_data); Control_MCU(&g_sMsgNode,endpoint,CMD_SYSTEM,temp_data);
...@@ -282,7 +282,7 @@ bool APP_PreCommandHandlerCallback(EmberAfClusterCommand* cmd) ...@@ -282,7 +282,7 @@ bool APP_PreCommandHandlerCallback(EmberAfClusterCommand* cmd)
{ {
uint8_t datavalue = cmd->buffer[i + 3]; uint8_t datavalue = cmd->buffer[i + 3];
iKonkeAfSelfPrint("#####delay off, datavalue (%d),%d \r\n",datavalue,cmd->buffer[i + 3] ); iKonkeAfSelfPrint("#####delay off, datavalue (%d),%d \r\n",datavalue,cmd->buffer[i + 3] );
if( (datavalue > 0)&&(datavalue <= 240)){ if( (datavalue >= 0)&&(datavalue <= 240)){
Control_MCU(&g_sMsgNode,endpoint,CMD_DELAY_OFF,datavalue); Control_MCU(&g_sMsgNode,endpoint,CMD_DELAY_OFF,datavalue);
kZclClusterSetPermitReportInfo(endpoint, ZCL_OPT_TUNNEL_CLUSTER_ID, false, false, false, false); kZclClusterSetPermitReportInfo(endpoint, ZCL_OPT_TUNNEL_CLUSTER_ID, false, false, false, false);
// if(g_sMsgNode.buffer[POLAD_INDEX] == TP_SUCCESS) // if(g_sMsgNode.buffer[POLAD_INDEX] == TP_SUCCESS)
...@@ -378,6 +378,30 @@ bool APP_PreCommandHandlerCallback(EmberAfClusterCommand* cmd) ...@@ -378,6 +378,30 @@ bool APP_PreCommandHandlerCallback(EmberAfClusterCommand* cmd)
} }
return false; return false;
} }
BIND_Info_Store Bind_Addr_Table = {
.addr1 = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
.addr2 = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
.bind_flag1 = 0,
.bind_flag2 = 0};
void kSetBindConfigInfo(BIND_Info_Store* info)
{
halCommonSetToken(TOKEN_BINDIND_ADDR_TABLE, info);
}
BIND_Info_Store kGetBindConfigInfo(void)
{
halCommonGetToken(&Bind_Addr_Table, TOKEN_BINDIND_ADDR_TABLE);
return Bind_Addr_Table;
}
void Reset_Binding_Token(void)
{
memset(Bind_Addr_Table.addr1,0xff,EUI64_SIZE);
memset(Bind_Addr_Table.addr1,0xff,EUI64_SIZE);
Bind_Addr_Table.bind_flag1 = Bind_Addr_Table.bind_flag2 = 0;
kSetBindConfigInfo(&Bind_Addr_Table);
}
EmberEventControl ikkGetBindInfoEventControl; EmberEventControl ikkGetBindInfoEventControl;
bool IS_IEE_Addr_Exist(EmberEUI64 addr) bool IS_IEE_Addr_Exist(EmberEUI64 addr)
{ {
...@@ -393,42 +417,67 @@ bool IS_IEE_Addr_Exist(EmberEUI64 addr) ...@@ -393,42 +417,67 @@ bool IS_IEE_Addr_Exist(EmberEUI64 addr)
} }
return false; return false;
} }
void ikkGetBindInfoEventHandler(void ) void ikkGetBindInfoEventHandler(void )
{ {
EmberBindingTableEntry result; EmberBindingTableEntry result;
static uint8_t is_blinding_flag = 0;
EmberEUI64 g_Eui64GatewayAddr; EmberEUI64 g_Eui64GatewayAddr;
static EmberEUI64 g_Eui64BindDeviceAddr = {0xFF,0XFF,0XFF,0XFF,0xFF,0XFF,0XFF,0XFF};
kNwkGetGateWayEui64(g_Eui64GatewayAddr); kNwkGetGateWayEui64(g_Eui64GatewayAddr);
emberEventControlSetInactive(ikkGetBindInfoEventControl); emberEventControlSetInactive(ikkGetBindInfoEventControl);
for(int index = 0; index < emberAfGetBindingTableSize(); ++index ) { for(int index = 0; index < emberAfGetBindingTableSize(); ++index ) {
EmberStatus status = emberGetBinding(index, &result); EmberStatus status = emberGetBinding(index, &result);
if( (status == EMBER_SUCCESS && result.type == EMBER_UNICAST_BINDING )&&result.clusterId == 0xFCC0) {
if( status == EMBER_SUCCESS && result.type == EMBER_UNICAST_BINDING ) { if(memcmp(result.identifier, g_Eui64GatewayAddr, EUI64_SIZE) != 0)
if( result.clusterId == 0xFCC0 ) {
iKonkeAfSelfPrint("mac=%x-%x-%x-%x\r\n",result.identifier[0],result.identifier[1],result.identifier[2],result.identifier[3]);
if((Bind_Addr_Table.bind_flag1 == 0)&&
(memcmp(Bind_Addr_Table.addr2,result.identifier,EUI64_SIZE)))
{ {
if(memcmp(result.identifier, g_Eui64GatewayAddr, EUI64_SIZE) != 0) memcpy(Bind_Addr_Table.addr1,result.identifier,EUI64_SIZE);
if(result.local != g_sDevice_Info.Device_Type)
{ {
memcpy(g_Eui64BindDeviceAddr,result.identifier,EUI64_SIZE); g_sDevice_Info.Binding_Device_SrcEP[0] = result.local;
iKonkeAfSelfPrint("local EP = %d,remote ep = %d\r\n",result.local,result.remote); Binging_Info_Notify(1,result.local); //bind
if((result.local != g_sDevice_Info.Device_Type)&&(is_blinding_flag == 0)) Bind_Addr_Table.bind_flag1 = 1;
{ iKonkeAfSelfPrint("send blind1 info,ep = %d\r\n",g_sDevice_Info.Binding_Device_SrcEP[0]);
g_sDevice_Info.Binding_Device_SrcEP = result.local; kSetBindConfigInfo(&Bind_Addr_Table);
Binging_Info_Notify(result.local);
is_blinding_flag = 1;
iKonkeAfSelfPrint("send blind info\r\n");
}
} }
else if((!IS_IEE_Addr_Exist(g_Eui64BindDeviceAddr))&&(is_blinding_flag)) }
if((Bind_Addr_Table.bind_flag2 == 0)&&
(memcmp(Bind_Addr_Table.addr1,result.identifier,EUI64_SIZE)))
{
memcpy(Bind_Addr_Table.addr2,result.identifier,EUI64_SIZE);
if(result.local != g_sDevice_Info.Device_Type)
{ {
is_blinding_flag = 0; g_sDevice_Info.Binding_Device_SrcEP[1] = result.local;
g_sDevice_Info.Binding_Device_SrcEP = 0; Binging_Info_Notify(1,result.local); //bind
Binging_Info_Notify(g_sDevice_Info.Binding_Device_SrcEP); Bind_Addr_Table.bind_flag2 = 1;
iKonkeAfSelfPrint("send unblind info\r\n"); kSetBindConfigInfo(&Bind_Addr_Table);
iKonkeAfSelfPrint("send blind2 info,ep = %d\r\n",g_sDevice_Info.Binding_Device_SrcEP[1]);
} }
} }
} }
else if((!IS_IEE_Addr_Exist(Bind_Addr_Table.addr1))&&(Bind_Addr_Table.bind_flag1))
{
Bind_Addr_Table.bind_flag1 = 0;
Binging_Info_Notify(0,g_sDevice_Info.Binding_Device_SrcEP[0]); //unbind
iKonkeAfSelfPrint("send unblind1 info,ep = %d\r\n",g_sDevice_Info.Binding_Device_SrcEP[0]);
g_sDevice_Info.Binding_Device_SrcEP[0] = 0;
memset(Bind_Addr_Table.addr1,0xff,EUI64_SIZE);
kSetBindConfigInfo(&Bind_Addr_Table);
}
else if((!IS_IEE_Addr_Exist(Bind_Addr_Table.addr2))&&(Bind_Addr_Table.bind_flag2))
{
Bind_Addr_Table.bind_flag2 = 0;
Binging_Info_Notify(0,g_sDevice_Info.Binding_Device_SrcEP[1]); //unbind
iKonkeAfSelfPrint("send unblind2 info,ep = %d\r\n",g_sDevice_Info.Binding_Device_SrcEP[1]);
g_sDevice_Info.Binding_Device_SrcEP[1] = 0;
memset(Bind_Addr_Table.addr2,0xff,EUI64_SIZE);
kSetBindConfigInfo(&Bind_Addr_Table);
}
} }
}
emberEventControlSetDelayMS(ikkGetBindInfoEventControl, 2000); emberEventControlSetDelayMS(ikkGetBindInfoEventControl, 2000);
} }
bool emberAfThermostatClusterSetpointRaiseLowerCallback(uint8_t mode, bool emberAfThermostatClusterSetpointRaiseLowerCallback(uint8_t mode,
...@@ -687,7 +736,7 @@ kk_err_t PrivateClusterHandler(EmberAfClusterCommand* cmd) ...@@ -687,7 +736,7 @@ kk_err_t PrivateClusterHandler(EmberAfClusterCommand* cmd)
else if(cmd->apsFrame->sourceEndpoint == 3) else if(cmd->apsFrame->sourceEndpoint == 3)
sDevice_attr_new.fan.wind_speed = dataValue; sDevice_attr_new.fan.wind_speed = dataValue;
data_type = ZCL_ENUM8_ATTRIBUTE_TYPE; data_type = ZCL_ENUM8_ATTRIBUTE_TYPE;
Control_MCU(&g_sMsgNode,cmd->apsFrame->sourceEndpoint,CMD_CALI_TEMPER,dataValue); Control_MCU(&g_sMsgNode,cmd->apsFrame->sourceEndpoint,CMD_WIND_SPEED,dataValue);
} }
break; break;
case FCC0_ATTR_ON_OFF: case FCC0_ATTR_ON_OFF:
......
...@@ -52,12 +52,17 @@ EmberStatus Write_Attr(bool Report,uint8_t ep,uint16_t cluster,uint16_t attr, ui ...@@ -52,12 +52,17 @@ EmberStatus Write_Attr(bool Report,uint8_t ep,uint16_t cluster,uint16_t attr, ui
#define Write_MinTemp_Attr(x,ep,data) Write_Attr(x,ep,ZCL_THERMOSTAT_CLUSTER_ID,ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID,(uint8_t*)data,ZCL_INT16S_ATTRIBUTE_TYPE) #define Write_MinTemp_Attr(x,ep,data) Write_Attr(x,ep,ZCL_THERMOSTAT_CLUSTER_ID,ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID,(uint8_t*)data,ZCL_INT16S_ATTRIBUTE_TYPE)
typedef struct
{
EmberEUI64 addr1,addr2;
uint8_t bind_flag1,bind_flag2;
}BIND_Info_Store;
typedef struct typedef struct
{ {
uint8_t Device_Type; uint8_t Device_Type;
uint8_t Device_subType; uint8_t Device_subType;
uint8_t Binding_Device_SrcEP; uint8_t is_support_winddirect;
uint8_t Binding_Device_SrcEP[2];
uint8_t mcu_software_version; uint8_t mcu_software_version;
uint8_t mcu_hardware_version; uint8_t mcu_hardware_version;
}DEVICVE_INFO_ST; }DEVICVE_INFO_ST;
...@@ -65,7 +70,8 @@ typedef struct ...@@ -65,7 +70,8 @@ typedef struct
extern DEVICVE_INFO_ST g_sDevice_Info; extern DEVICVE_INFO_ST g_sDevice_Info;
uint8_t Read_Zigbee_Version(void); uint8_t Read_Zigbee_Version(void);
kk_err_t PrivateClusterHandler(EmberAfClusterCommand* cmd); kk_err_t PrivateClusterHandler(EmberAfClusterCommand* cmd);
BIND_Info_Store kGetBindConfigInfo(void);
void Reset_Binding_Token(void);
/**********************common interface*******************************/ /**********************common interface*******************************/
uint8_t Get_Device_Endpoint(void); uint8_t Get_Device_Endpoint(void);
uint8_t Get_Binding_Device_EP(void); uint8_t Get_Binding_Device_EP(void);
......
...@@ -674,12 +674,13 @@ void kNwkFactoryReset(bool is_nwk_indicator) ...@@ -674,12 +674,13 @@ void kNwkFactoryReset(bool is_nwk_indicator)
kk_err_t kNwkClusterBindingObjIsOK(uint8_t endpoint, uint16_t cluster ) kk_err_t kNwkClusterBindingObjIsOK(uint8_t endpoint, uint16_t cluster )
{ {
EmberBindingTableEntry result; EmberBindingTableEntry result;
kNwkGetGateWayEui64(g_Eui64GatewayAddr);
for(int index = 0; index < emberAfGetBindingTableSize(); ++index ) { for(int index = 0; index < emberAfGetBindingTableSize(); ++index ) {
EmberStatus status = emberGetBinding(index, &result); EmberStatus status = emberGetBinding(index, &result);
if( status == EMBER_SUCCESS && result.type == EMBER_UNICAST_BINDING ) { if( status == EMBER_SUCCESS && result.type == EMBER_UNICAST_BINDING ) {
if( result.local == endpoint && result.clusterId == cluster ) { if( result.local == endpoint && result.clusterId == cluster && !MEMCOMPARE(result.identifier, g_Eui64GatewayAddr, EUI64_SIZE)) {
return KET_OK; return KET_OK;
} }
} }
...@@ -700,7 +701,6 @@ kk_err_t kNwkClusterBindingObjIsOK(uint8_t endpoint, uint16_t cluster ) ...@@ -700,7 +701,6 @@ kk_err_t kNwkClusterBindingObjIsOK(uint8_t endpoint, uint16_t cluster )
static kk_err_t kNwkClusterBindingObjSet(uint8_t endpoint, uint16_t cluster_id, EmberEUI64 eui64 ) static kk_err_t kNwkClusterBindingObjSet(uint8_t endpoint, uint16_t cluster_id, EmberEUI64 eui64 )
{ {
kk_err_t err = KET_OK; kk_err_t err = KET_OK;
EmberStatus status = emberAfPushEndpointNetworkIndex(1); EmberStatus status = emberAfPushEndpointNetworkIndex(1);
if( status == EMBER_SUCCESS ) { if( status == EMBER_SUCCESS ) {
...@@ -714,7 +714,7 @@ static kk_err_t kNwkClusterBindingObjSet(uint8_t endpoint, uint16_t cluster_id, ...@@ -714,7 +714,7 @@ static kk_err_t kNwkClusterBindingObjSet(uint8_t endpoint, uint16_t cluster_id,
if( EMBER_SUCCESS == status ) { if( EMBER_SUCCESS == status ) {
if( entry.type == EMBER_UNICAST_BINDING ) { if( entry.type == EMBER_UNICAST_BINDING ) {
if( entry.local == endpoint && entry.clusterId == cluster_id ) { if( entry.local == endpoint && entry.clusterId == cluster_id && !MEMCOMPARE(entry.identifier, eui64, EUI64_SIZE)) {
valid_index = index; valid_index = index;
break; break;
} }
...@@ -765,7 +765,7 @@ kk_err_t kNwkClusterBindingInspect(void ) ...@@ -765,7 +765,7 @@ kk_err_t kNwkClusterBindingInspect(void )
for(int ix = 0; ix < BINDING_CLUSTER_MAXN; ++ix ) { for(int ix = 0; ix < BINDING_CLUSTER_MAXN; ++ix ) {
if( g_lstBindingClusterConf[ix].cluster != CLUSTER_UNKNOW ) { if( g_lstBindingClusterConf[ix].cluster != CLUSTER_UNKNOW ) {
kk_err_t err = kNwkClusterBindingObjIsOK(g_lstBindingClusterConf[ix].endpoint, g_lstBindingClusterConf[ix].cluster); kk_err_t err = kNwkClusterBindingObjIsOK(g_lstBindingClusterConf[ix].endpoint, g_lstBindingClusterConf[ix].cluster);
if( err == KET_ERR_NON_EXIST ) { if( err != KET_OK ) {
kNwkClusterBindingObjSet(g_lstBindingClusterConf[ix].endpoint, g_lstBindingClusterConf[ix].cluster, g_Eui64GatewayAddr); kNwkClusterBindingObjSet(g_lstBindingClusterConf[ix].endpoint, g_lstBindingClusterConf[ix].cluster, g_Eui64GatewayAddr);
} }
}else { }else {
...@@ -1810,6 +1810,7 @@ void kUserJoinSucceedProcedureEventHandler(void ) ...@@ -1810,6 +1810,7 @@ void kUserJoinSucceedProcedureEventHandler(void )
default: break; default: break;
} }
} }
/** @brief Incoming Packet Filter /** @brief Incoming Packet Filter
* *
* ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN **
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
#define CREATOR_IS_KONKE_GATEWAY (0x0007) #define CREATOR_IS_KONKE_GATEWAY (0x0007)
#define NVM3KEY_IS_KONKE_GATEWAY ( NVM3KEY_DOMAIN_USER | 0x0007 ) #define NVM3KEY_IS_KONKE_GATEWAY ( NVM3KEY_DOMAIN_USER | 0x0007 )
#define CREATOR_BINDIND_ADDR_TABLE (0x0008)
#define NVM3KEY_BINDIND_ADDR_TABLE ( NVM3KEY_DOMAIN_USER | 0x0008 )
//#define CREATOR_OPTTUNNEL_CMEI_FLG 0x0007 //#define CREATOR_OPTTUNNEL_CMEI_FLG 0x0007
//#define NVM3KEY_OPTTUNNEL_CMEI_FLG ( NVM3KEY_DOMAIN_USER | 0x0007 ) //#define NVM3KEY_OPTTUNNEL_CMEI_FLG ( NVM3KEY_DOMAIN_USER | 0x0007 )
...@@ -40,6 +41,13 @@ ...@@ -40,6 +41,13 @@
#endif #endif
#ifdef DEFINETYPES #ifdef DEFINETYPES
typedef struct{
EmberEUI64 addr1;
EmberEUI64 addr2;
uint8_t bind_flag1;
uint8_t bind_flag2;
}BIND_Info;
typedef BIND_Info tokTypeBindInfo;
//typedef uint8_t tokTypeChunk[33]; //typedef uint8_t tokTypeChunk[33];
#endif //DEFINETYPES #endif //DEFINETYPES
...@@ -51,7 +59,7 @@ DEFINE_BASIC_TOKEN(SINGLE_BOARD_TEST_FLG, uint8_t, 0) ...@@ -51,7 +59,7 @@ DEFINE_BASIC_TOKEN(SINGLE_BOARD_TEST_FLG, uint8_t, 0)
DEFINE_BASIC_TOKEN(FULL_DEVICE_TEST_FLG, uint8_t, 0) DEFINE_BASIC_TOKEN(FULL_DEVICE_TEST_FLG, uint8_t, 0)
DEFINE_BASIC_TOKEN(AGING_TEST_FLG , uint8_t, 0) DEFINE_BASIC_TOKEN(AGING_TEST_FLG , uint8_t, 0)
DEFINE_BASIC_TOKEN(INDICATOR_NOT_DISTURB_MODE_FLG, uint8_t, 0) DEFINE_BASIC_TOKEN(INDICATOR_NOT_DISTURB_MODE_FLG, uint8_t, 0)
DEFINE_BASIC_TOKEN(BINDIND_ADDR_TABLE, tokTypeBindInfo, {{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},0,0})
DEFINE_BASIC_TOKEN(NODE_ID, uint16_t, 0xFFFF) DEFINE_BASIC_TOKEN(NODE_ID, uint16_t, 0xFFFF)
DEFINE_BASIC_TOKEN(IS_KONKE_GATEWAY, uint8_t, 0) DEFINE_BASIC_TOKEN(IS_KONKE_GATEWAY, uint8_t, 0)
......
...@@ -94,6 +94,8 @@ typedef struct ...@@ -94,6 +94,8 @@ typedef struct
uint16_t screen_save_time; //屏保时间 uint16_t screen_save_time; //屏保时间
int8_t correct_temperature; //温度校准值 int8_t correct_temperature; //温度校准值
uint8_t no_disturb_mode; //勿扰模式 uint8_t no_disturb_mode; //勿扰模式
uint8_t air_brand; //空调品牌
uint8_t air_type; //空调类型
}__attribute__((packed))AIR_ATTR_ST; }__attribute__((packed))AIR_ATTR_ST;
typedef struct typedef struct
{ {
...@@ -163,8 +165,8 @@ typedef struct ...@@ -163,8 +165,8 @@ typedef struct
uint8_t uiPaload[50]; uint8_t uiPaload[50];
}DATA_FIELDED; }DATA_FIELDED;
void Query_MCU_Info(void); void Query_MCU_Info(void);
void Binging_Info_Notify(uint8_t device_type); void Binging_Info_Notify(uint8_t bind_or_unbind,uint8_t device_type);
void Set_No_Disturb_Mode(uint8_t mode); void Set_No_Disturb_Mode(uint8_t channel_id,uint8_t mode);
void Set_LCD_OFF(void); void Set_LCD_OFF(void);
void Set_OTA_CMD(uint8_t OTA_Status); void Set_OTA_CMD(uint8_t OTA_Status);
void Rewite_Attr_Witchout_Report(void); void Rewite_Attr_Witchout_Report(void);
......
...@@ -103,8 +103,8 @@ useHwConfigurator=true ...@@ -103,8 +103,8 @@ useHwConfigurator=true
--version:2 --version:2
} }
{setupId:token {setupId:token
application=PATH(ABSOLUTE):D:\Users\11730\SimplicityStudio\v4_workspace\KKAllToOneThermostatPanelMG21SDK665\00ikonke-app\ikk-tokens.h application=PATH(ISC_RELATIVE):00ikonke-app/ikk-tokens.h
manufacturing=PATH(ABSOLUTE):D:\Users\11730\SimplicityStudio\v4_workspace\KKAllToOneThermostatPanelMG21SDK665\00ikonke-app\ikk-mfgtokens.h manufacturing=PATH(ISC_RELATIVE):00ikonke-app/ikk-mfgtokens.h
} }
{setupId:zclAfv2 {setupId:zclAfv2
intMap:ManufacturingCode = 4712 intMap:ManufacturingCode = 4712
...@@ -157,7 +157,7 @@ beginAttrList:REPORTABLE ...@@ -157,7 +157,7 @@ beginAttrList:REPORTABLE
cl:0xFCC0, at:0x100C, di:server, mf:0x0000 cl:0xFCC0, at:0x100C, di:server, mf:0x0000
endAttrList:REPORTABLE endAttrList:REPORTABLE
beginAttributeDefaults beginAttributeDefaults
cl:0x0000, at:0x0001, di:server, mf:0x0000 => 0x10 cl:0x0000, at:0x0001, di:server, mf:0x0000 => 0x11
cl:0x0000, at:0x0003, di:server, mf:0x0000 => 0x10 cl:0x0000, at:0x0003, di:server, mf:0x0000 => 0x10
cl:0x0000, at:0x0004, di:server, mf:0x0000 => Konke cl:0x0000, at:0x0004, di:server, mf:0x0000 => Konke
cl:0x0000, at:0x0005, di:server, mf:0x0000 => 3AFE101003008611 cl:0x0000, at:0x0005, di:server, mf:0x0000 => 3AFE101003008611
...@@ -796,4 +796,4 @@ AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A] ...@@ -796,4 +796,4 @@ AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A]
AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A]~radio[020]~flash[768K]~temp[I]~package[M]~pins[32]~!module+iar):EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE,50 AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A]~radio[020]~flash[768K]~temp[I]~package[M]~pins[32]~!module+iar):EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE,50
AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A]~radio[020]~flash[768K]~temp[I]~package[M]~pins[32]~!module+iar):EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_HARDWARE_VERSION,0x10 AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A]~radio[020]~flash[768K]~temp[I]~package[M]~pins[32]~!module+iar):EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_HARDWARE_VERSION,0x10
AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A]~radio[020]~flash[768K]~temp[I]~package[M]~pins[32]~!module+iar):EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_IMAGE_TYPE_ID,17061 AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A]~radio[020]~flash[768K]~temp[I]~package[M]~pins[32]~!module+iar):EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_IMAGE_TYPE_ID,17061
AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A]~radio[020]~flash[768K]~temp[I]~package[M]~pins[32]~!module+iar):EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION,0x11 AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A]~radio[020]~flash[768K]~temp[I]~package[M]~pins[32]~!module+iar):EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION,0x12
...@@ -90,14 +90,14 @@ def GBL(): ...@@ -90,14 +90,14 @@ def GBL():
def OTA(): def OTA():
if not '"%PROJECT_DIR%\..\\..\\..\\..\\..\\..\\SiliconLabs\\SimplicityStudio\\v4\\developer\\sdks\\gecko_sdk_suite\\v2.6\\protocol\\zigbee\\tool\\image-builder\\image-builder-windows.exe" --create "%TARGET_BPATH%.ota" --version 0x11 --manuf-id 0x1268 --image-type 17061 --tag-id 0x0000 --tag-file "%TARGET_BPATH%.gbl" --string "EBL kkAllInOneFloorHeatingMG21SDK665V1"': if not '"%PROJECT_DIR%\..\\..\\..\\..\\..\\..\\SiliconLabs\\SimplicityStudio\\v4\\developer\\sdks\\gecko_sdk_suite\\v2.6\\protocol\\zigbee\\tool\\image-builder\\image-builder-windows.exe" --create "%TARGET_BPATH%.ota" --version 0x12 --manuf-id 0x1268 --image-type 17061 --tag-id 0x0000 --tag-file "%TARGET_BPATH%.gbl" --string "EBL kkAllInOneFloorHeatingMG21SDK665V1"':
sys.exit(0) sys.exit(0)
print (" ") print (" ")
print ("This creates a ZigBee OTA file if the OTA Client Policy Plugin has been enabled.") print ("This creates a ZigBee OTA file if the OTA Client Policy Plugin has been enabled.")
print ("It uses the parameters defined there. ") print ("It uses the parameters defined there. ")
print (" ") print (" ")
# wine needed by postbuild script under studio for mac/linux # wine needed by postbuild script under studio for mac/linux
IMAGE_BUILDER = '"%PROJECT_DIR%\..\\..\\..\\..\\..\\..\\SiliconLabs\\SimplicityStudio\\v4\\developer\\sdks\\gecko_sdk_suite\\v2.6\\protocol\\zigbee\\tool\\image-builder\\image-builder-windows.exe" --create "%TARGET_BPATH%.ota" --version 0x11 --manuf-id 0x1268 --image-type 17061 --tag-id 0x0000 --tag-file "%TARGET_BPATH%.gbl" --string "EBL kkAllInOneFloorHeatingMG21SDK665V1"'.replace("\t", "\\t") IMAGE_BUILDER = '"%PROJECT_DIR%\..\\..\\..\\..\\..\\..\\SiliconLabs\\SimplicityStudio\\v4\\developer\\sdks\\gecko_sdk_suite\\v2.6\\protocol\\zigbee\\tool\\image-builder\\image-builder-windows.exe" --create "%TARGET_BPATH%.ota" --version 0x12 --manuf-id 0x1268 --image-type 17061 --tag-id 0x0000 --tag-file "%TARGET_BPATH%.gbl" --string "EBL kkAllInOneFloorHeatingMG21SDK665V1"'.replace("\t", "\\t")
WINE_CMD = WINE.replace("cmd /C ","") if not "echo" in IMAGE_BUILDER else WINE WINE_CMD = WINE.replace("cmd /C ","") if not "echo" in IMAGE_BUILDER else WINE
OTA_COMMAND = WINE_CMD + IMAGE_BUILDER OTA_COMMAND = WINE_CMD + IMAGE_BUILDER
OTA_COMMAND = OTA_COMMAND.replace("%PROJECT_DIR%", PROJECT_DIR) OTA_COMMAND = OTA_COMMAND.replace("%PROJECT_DIR%", PROJECT_DIR)
......
...@@ -90,14 +90,14 @@ def GBL(): ...@@ -90,14 +90,14 @@ def GBL():
def OTA(): def OTA():
if not '"%PROJECT_DIR%\..\\..\\..\\..\\..\\..\\SiliconLabs\\SimplicityStudio\\v4\\developer\\sdks\\gecko_sdk_suite\\v2.6\\protocol\\zigbee\\tool\\image-builder\\image-builder-windows.exe" --create "%TARGET_BPATH%.ota" --version 0x10 --manuf-id 0x1268 --image-type 17061 --tag-id 0x0000 --tag-file "%TARGET_BPATH%.gbl" --string "EBL kkAllInOneFloorHeatingMG21SDK665V1"': if not '"%PROJECT_DIR%\..\\..\\..\\..\\..\\..\\SiliconLabs\\SimplicityStudio\\v4\\developer\\sdks\\gecko_sdk_suite\\v2.6\\protocol\\zigbee\\tool\\image-builder\\image-builder-windows.exe" --create "%TARGET_BPATH%.ota" --version 0x11 --manuf-id 0x1268 --image-type 17061 --tag-id 0x0000 --tag-file "%TARGET_BPATH%.gbl" --string "EBL kkAllInOneFloorHeatingMG21SDK665V1"':
sys.exit(0) sys.exit(0)
print (" ") print (" ")
print ("This creates a ZigBee OTA file if the OTA Client Policy Plugin has been enabled.") print ("This creates a ZigBee OTA file if the OTA Client Policy Plugin has been enabled.")
print ("It uses the parameters defined there. ") print ("It uses the parameters defined there. ")
print (" ") print (" ")
# wine needed by postbuild script under studio for mac/linux # wine needed by postbuild script under studio for mac/linux
IMAGE_BUILDER = '"%PROJECT_DIR%\..\\..\\..\\..\\..\\..\\SiliconLabs\\SimplicityStudio\\v4\\developer\\sdks\\gecko_sdk_suite\\v2.6\\protocol\\zigbee\\tool\\image-builder\\image-builder-windows.exe" --create "%TARGET_BPATH%.ota" --version 0x10 --manuf-id 0x1268 --image-type 17061 --tag-id 0x0000 --tag-file "%TARGET_BPATH%.gbl" --string "EBL kkAllInOneFloorHeatingMG21SDK665V1"'.replace("\t", "\\t") IMAGE_BUILDER = '"%PROJECT_DIR%\..\\..\\..\\..\\..\\..\\SiliconLabs\\SimplicityStudio\\v4\\developer\\sdks\\gecko_sdk_suite\\v2.6\\protocol\\zigbee\\tool\\image-builder\\image-builder-windows.exe" --create "%TARGET_BPATH%.ota" --version 0x11 --manuf-id 0x1268 --image-type 17061 --tag-id 0x0000 --tag-file "%TARGET_BPATH%.gbl" --string "EBL kkAllInOneFloorHeatingMG21SDK665V1"'.replace("\t", "\\t")
WINE_CMD = WINE.replace("cmd /C ","") if not "echo" in IMAGE_BUILDER else WINE WINE_CMD = WINE.replace("cmd /C ","") if not "echo" in IMAGE_BUILDER else WINE
OTA_COMMAND = WINE_CMD + IMAGE_BUILDER OTA_COMMAND = WINE_CMD + IMAGE_BUILDER
OTA_COMMAND = OTA_COMMAND.replace("%PROJECT_DIR%", PROJECT_DIR) OTA_COMMAND = OTA_COMMAND.replace("%PROJECT_DIR%", PROJECT_DIR)
......
...@@ -344,7 +344,7 @@ ...@@ -344,7 +344,7 @@
#define CUSTOMER_APPLICATION_VERSION EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION #define CUSTOMER_APPLICATION_VERSION EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION
// User options for plugin OTA Bootload Cluster Client Policy // User options for plugin OTA Bootload Cluster Client Policy
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_IMAGE_TYPE_ID 17061 #define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_IMAGE_TYPE_ID 17061
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION 17 #define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION 18
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_HARDWARE_VERSION 16 #define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_HARDWARE_VERSION 16
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_EBL_VERIFICATION #define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_EBL_VERIFICATION
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_DELETE_FAILED_DOWNLOADS #define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_DELETE_FAILED_DOWNLOADS
......
...@@ -344,7 +344,7 @@ ...@@ -344,7 +344,7 @@
#define CUSTOMER_APPLICATION_VERSION EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION #define CUSTOMER_APPLICATION_VERSION EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION
// User options for plugin OTA Bootload Cluster Client Policy // User options for plugin OTA Bootload Cluster Client Policy
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_IMAGE_TYPE_ID 17061 #define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_IMAGE_TYPE_ID 17061
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION 16 #define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION 17
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_HARDWARE_VERSION 16 #define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_HARDWARE_VERSION 16
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_EBL_VERIFICATION #define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_EBL_VERIFICATION
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_DELETE_FAILED_DOWNLOADS #define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_DELETE_FAILED_DOWNLOADS
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
// Generated attributes // Generated attributes
#define GENERATED_ATTRIBUTES { \ #define GENERATED_ATTRIBUTES { \
{ 0x0000, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (ATTRIBUTE_MASK_SINGLETON), { (uint8_t*)0x01 } }, /* 0 / Basic / ZCL version*/\ { 0x0000, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (ATTRIBUTE_MASK_SINGLETON), { (uint8_t*)0x01 } }, /* 0 / Basic / ZCL version*/\
{ 0x0001, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (ATTRIBUTE_MASK_SINGLETON), { (uint8_t*)0x10 } }, /* 1 / Basic / application version*/\ { 0x0001, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (ATTRIBUTE_MASK_SINGLETON), { (uint8_t*)0x11 } }, /* 1 / Basic / application version*/\
{ 0x0002, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (ATTRIBUTE_MASK_SINGLETON), { (uint8_t*)0x01 } }, /* 2 / Basic / stack version*/\ { 0x0002, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (ATTRIBUTE_MASK_SINGLETON), { (uint8_t*)0x01 } }, /* 2 / Basic / stack version*/\
{ 0x0003, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (ATTRIBUTE_MASK_SINGLETON), { (uint8_t*)0x10 } }, /* 3 / Basic / hardware version*/\ { 0x0003, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (ATTRIBUTE_MASK_SINGLETON), { (uint8_t*)0x10 } }, /* 3 / Basic / hardware version*/\
{ 0x0004, ZCL_CHAR_STRING_ATTRIBUTE_TYPE, 33, (ATTRIBUTE_MASK_SINGLETON), { (uint8_t*)&(generatedDefaults[0]) } }, /* 4 / Basic / manufacturer name*/\ { 0x0004, ZCL_CHAR_STRING_ATTRIBUTE_TYPE, 33, (ATTRIBUTE_MASK_SINGLETON), { (uint8_t*)&(generatedDefaults[0]) } }, /* 4 / Basic / manufacturer name*/\
......
...@@ -141,8 +141,16 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] = ...@@ -141,8 +141,16 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] =
{ 0x0019, (EmberAfAttributeMetadata*)&(generatedAttributes[22]), 4, 15, (CLUSTER_MASK_CLIENT| CLUSTER_MASK_INIT_FUNCTION| CLUSTER_MASK_DEFAULT_RESPONSE_FUNCTION), emberAfFuncArrayOtaBootloadClusterClient, }, \ { 0x0019, (EmberAfAttributeMetadata*)&(generatedAttributes[22]), 4, 15, (CLUSTER_MASK_CLIENT| CLUSTER_MASK_INIT_FUNCTION| CLUSTER_MASK_DEFAULT_RESPONSE_FUNCTION), emberAfFuncArrayOtaBootloadClusterClient, }, \
{ 0x0201, (EmberAfAttributeMetadata*)&(generatedAttributes[32]), 8, 12, (CLUSTER_MASK_SERVER| CLUSTER_MASK_ATTRIBUTE_CHANGED_FUNCTION), emberAfFuncArrayThermostatClusterServer, }, \ { 0x0201, (EmberAfAttributeMetadata*)&(generatedAttributes[32]), 8, 12, (CLUSTER_MASK_SERVER| CLUSTER_MASK_ATTRIBUTE_CHANGED_FUNCTION), emberAfFuncArrayThermostatClusterServer, }, \
{ 0xFCC0, (EmberAfAttributeMetadata*)&(generatedAttributes[50]), 13, 16, (CLUSTER_MASK_SERVER), NULL, }, \ { 0xFCC0, (EmberAfAttributeMetadata*)&(generatedAttributes[50]), 13, 16, (CLUSTER_MASK_SERVER), NULL, }, \
{ 0x0000, (EmberAfAttributeMetadata*)&(generatedAttributes[0]), 9, 0, (CLUSTER_MASK_SERVER), NULL, }, \
{ 0x0003, (EmberAfAttributeMetadata*)&(generatedAttributes[9]), 1, 2, (CLUSTER_MASK_CLIENT), NULL, }, \
{ 0x0003, (EmberAfAttributeMetadata*)&(generatedAttributes[10]), 2, 4, (CLUSTER_MASK_SERVER| CLUSTER_MASK_INIT_FUNCTION| CLUSTER_MASK_ATTRIBUTE_CHANGED_FUNCTION), emberAfFuncArrayIdentifyClusterServer, }, \
{ 0x0004, (EmberAfAttributeMetadata*)&(generatedAttributes[12]), 2, 3, (CLUSTER_MASK_SERVER| CLUSTER_MASK_INIT_FUNCTION), emberAfFuncArrayGroupsClusterServer, }, \
{ 0x0005, (EmberAfAttributeMetadata*)&(generatedAttributes[14]), 6, 8, (CLUSTER_MASK_SERVER| CLUSTER_MASK_INIT_FUNCTION), emberAfFuncArrayScenesClusterServer, }, \
{ 0x0006, (EmberAfAttributeMetadata*)&(generatedAttributes[20]), 2, 3, (CLUSTER_MASK_SERVER| CLUSTER_MASK_INIT_FUNCTION| CLUSTER_MASK_ATTRIBUTE_CHANGED_FUNCTION), emberAfFuncArrayOnOffClusterServer, }, \
{ 0x0019, (EmberAfAttributeMetadata*)&(generatedAttributes[22]), 4, 15, (CLUSTER_MASK_CLIENT| CLUSTER_MASK_INIT_FUNCTION| CLUSTER_MASK_DEFAULT_RESPONSE_FUNCTION), emberAfFuncArrayOtaBootloadClusterClient, }, \
{ 0x0202, (EmberAfAttributeMetadata*)&(generatedAttributes[40]), 3, 4, (CLUSTER_MASK_SERVER| CLUSTER_MASK_ATTRIBUTE_CHANGED_FUNCTION), emberAfFuncArrayFanControlClusterServer, }, \ { 0x0202, (EmberAfAttributeMetadata*)&(generatedAttributes[40]), 3, 4, (CLUSTER_MASK_SERVER| CLUSTER_MASK_ATTRIBUTE_CHANGED_FUNCTION), emberAfFuncArrayFanControlClusterServer, }, \
{ 0x0402, (EmberAfAttributeMetadata*)&(generatedAttributes[43]), 4, 8, (CLUSTER_MASK_SERVER), NULL, }, \ { 0x0402, (EmberAfAttributeMetadata*)&(generatedAttributes[43]), 4, 8, (CLUSTER_MASK_SERVER), NULL, }, \
{ 0xFCC0, (EmberAfAttributeMetadata*)&(generatedAttributes[50]), 13, 16, (CLUSTER_MASK_SERVER), NULL, }, \
{ 0x0021, (EmberAfAttributeMetadata*)&(generatedAttributes[26]), 6, 27, (CLUSTER_MASK_CLIENT), NULL, }, \ { 0x0021, (EmberAfAttributeMetadata*)&(generatedAttributes[26]), 6, 27, (CLUSTER_MASK_CLIENT), NULL, }, \
} }
...@@ -151,8 +159,8 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] = ...@@ -151,8 +159,8 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] =
#define GENERATED_ENDPOINT_TYPES { \ #define GENERATED_ENDPOINT_TYPES { \
{ (EmberAfCluster*)&(generatedClusters[0]), 12, 71 }, \ { (EmberAfCluster*)&(generatedClusters[0]), 12, 71 }, \
{ (EmberAfCluster*)&(generatedClusters[12]), 9, 63 }, \ { (EmberAfCluster*)&(generatedClusters[12]), 9, 63 }, \
{ (EmberAfCluster*)&(generatedClusters[21]), 2, 12 }, \ { (EmberAfCluster*)&(generatedClusters[21]), 10, 63 }, \
{ (EmberAfCluster*)&(generatedClusters[23]), 1, 27 }, \ { (EmberAfCluster*)&(generatedClusters[31]), 1, 27 }, \
} }
...@@ -175,7 +183,7 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] = ...@@ -175,7 +183,7 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] =
#define ATTRIBUTE_SINGLETONS_SIZE (90) #define ATTRIBUTE_SINGLETONS_SIZE (90)
// Total size of attribute storage // Total size of attribute storage
#define ATTRIBUTE_MAX_SIZE 173 #define ATTRIBUTE_MAX_SIZE 224
// Array of endpoints that are supported // Array of endpoints that are supported
#define FIXED_ENDPOINT_ARRAY { 1, 2, 3, 242 } #define FIXED_ENDPOINT_ARRAY { 1, 2, 3, 242 }
...@@ -317,8 +325,22 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] = ...@@ -317,8 +325,22 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] =
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 2, 0xFCC0, 0x100A, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \ { EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 2, 0xFCC0, 0x100A, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 2, 0xFCC0, 0x100B, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \ { EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 2, 0xFCC0, 0x100B, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 2, 0xFCC0, 0x100C, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \ { EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 2, 0xFCC0, 0x100C, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0x0006, 0x0000, CLUSTER_MASK_SERVER, 0x0000, 1, 0, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0x0202, 0x0000, CLUSTER_MASK_SERVER, 0x0000, 1, 0, 0 }, \ { EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0x0202, 0x0000, CLUSTER_MASK_SERVER, 0x0000, 1, 0, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0x0402, 0x0000, CLUSTER_MASK_SERVER, 0x0000, 1, 0, 0 }, \ { EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0x0402, 0x0000, CLUSTER_MASK_SERVER, 0x0000, 1, 0, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x1000, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x1001, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x1002, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x1003, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x1004, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x1005, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x1006, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x1007, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x1008, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x1009, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x100A, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x100B, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
{ EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 3, 0xFCC0, 0x100C, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \
} }
#define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS_TABLE_SIZE (41) #define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS_TABLE_SIZE (55)
#endif // SILABS_AF_ENDPOINT_CONFIG #endif // SILABS_AF_ENDPOINT_CONFIG
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
// Token header for the Reporting plugin. // Token header for the Reporting plugin.
// Custom MFG token header file // Custom MFG token header file
#include "../../KKAllToOneThermostatPanelMG21SDK665/00ikonke-app/ikk-mfgtokens.h" #include "00ikonke-app/ikk-mfgtokens.h"
#ifdef CUSTOM_TOKEN_HEADER #ifdef CUSTOM_TOKEN_HEADER
#include CUSTOM_TOKEN_HEADER #include CUSTOM_TOKEN_HEADER
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include "../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol/zigbee/app/framework/plugin/reporting/reporting-tokens.h" #include "../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol/zigbee/app/framework/plugin/reporting/reporting-tokens.h"
// Custom token header file // Custom token header file
#include "../../KKAllToOneThermostatPanelMG21SDK665/00ikonke-app/ikk-tokens.h" #include "00ikonke-app/ikk-tokens.h"
#ifdef CUSTOM_TOKEN_HEADER #ifdef CUSTOM_TOKEN_HEADER
#include CUSTOM_TOKEN_HEADER #include CUSTOM_TOKEN_HEADER
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment