Commit 994f7339 authored by limm's avatar limm

V1.2

parent 4f2cd626
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -380,6 +380,21 @@ ...@@ -380,6 +380,21 @@
<type>1</type> <type>1</type>
<locationURI>STUDIO_SDK_LOC/protocol/zigbee/app/util/common/form-and-join.c</locationURI> <locationURI>STUDIO_SDK_LOC/protocol/zigbee/app/util/common/form-and-join.c</locationURI>
</link> </link>
<link>
<name>green-power-client/green-power-client-cli.c</name>
<type>1</type>
<locationURI>STUDIO_SDK_LOC/protocol/zigbee/app/framework/plugin/green-power-client/green-power-client-cli.c</locationURI>
</link>
<link>
<name>green-power-client/green-power-client.c</name>
<type>1</type>
<locationURI>STUDIO_SDK_LOC/protocol/zigbee/app/framework/plugin/green-power-client/green-power-client.c</locationURI>
</link>
<link>
<name>green-power-common/green-power-common.c</name>
<type>1</type>
<locationURI>STUDIO_SDK_LOC/protocol/zigbee/app/framework/plugin/green-power-common/green-power-common.c</locationURI>
</link>
<link> <link>
<name>groups-server/groups-server-cli.c</name> <name>groups-server/groups-server-cli.c</name>
<type>1</type> <type>1</type>
...@@ -425,11 +440,6 @@ ...@@ -425,11 +440,6 @@
<type>1</type> <type>1</type>
<locationURI>STUDIO_SDK_LOC/protocol/zigbee/app/framework/plugin/network-steering/network-steering-v2.c</locationURI> <locationURI>STUDIO_SDK_LOC/protocol/zigbee/app/framework/plugin/network-steering/network-steering-v2.c</locationURI>
</link> </link>
<link>
<name>network-steering/network-steering.c</name>
<type>1</type>
<locationURI>STUDIO_SDK_LOC/protocol/zigbee/app/framework/plugin/network-steering/network-steering.c</locationURI>
</link>
<link> <link>
<name>nvm3/nvm3_lock.c</name> <name>nvm3/nvm3_lock.c</name>
<type>1</type> <type>1</type>
......
...@@ -37,49 +37,89 @@ bool APP_PreCommandHandlerCallback(EmberAfClusterCommand* cmd) ...@@ -37,49 +37,89 @@ bool APP_PreCommandHandlerCallback(EmberAfClusterCommand* cmd)
switch(cmd->commandId) { switch(cmd->commandId) {
case (ZCL_OFF_COMMAND_ID): case (ZCL_OFF_COMMAND_ID):
{ {
if( (endpoint == 1)&&(sDevice_attr_last.air_condition.on_off) ) if( endpoint == 1 )
{ {
temp_data = 0; temp_data = 0;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data); if(sDevice_attr_last.air_condition.on_off)
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false); {
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false , false, false, false);
}
else
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, true , false, true, false);
// if(g_sMsgNode.buffer[POLAD_INDEX] == TP_SUCCESS) // if(g_sMsgNode.buffer[POLAD_INDEX] == TP_SUCCESS)
// Write_OnOff_Attr(0,endpoint,&temp_data); // Write_OnOff_Attr(0,endpoint,&temp_data);
} }
else if( (endpoint == 2)&&(sDevice_attr_last.floor_heating.on_off) ) else if( endpoint == 2 )
{ {
temp_data = 0; temp_data = 0;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data); if(sDevice_attr_last.floor_heating.on_off)
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false); {
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false , false, false, false);
}
else
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, true , false, true, false);
// Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
// kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
} }
else if( (endpoint == 3)&&(sDevice_attr_last.fan.on_off) ) else if( endpoint == 3)
{ {
temp_data = 0; temp_data = 0;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data); if(sDevice_attr_last.fan.on_off)
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false); {
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false , false, false, false);
}
else
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, true , false, true, false);
// Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
// kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
} }
} }
break; break;
case (ZCL_ON_COMMAND_ID): case (ZCL_ON_COMMAND_ID):
{ {
if( (endpoint == 1)&&(sDevice_attr_last.air_condition.on_off == 0) ) if( endpoint == 1)
{ {
temp_data = 1; temp_data = 1;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data); if(sDevice_attr_last.air_condition.on_off == 0)
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false); {
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false , false, false, false);
}
else
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, true , false, true, false);
// Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
// kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
// if(g_sMsgNode.buffer[POLAD_INDEX] == TP_SUCCESS) // if(g_sMsgNode.buffer[POLAD_INDEX] == TP_SUCCESS)
// Write_OnOff_Attr(0,endpoint,&temp_data); // Write_OnOff_Attr(0,endpoint,&temp_data);
} }
else if( (endpoint == 2)&&(sDevice_attr_last.floor_heating.on_off == 0) ) else if( endpoint == 2)
{ {
temp_data = 1; temp_data = 1;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data); if(sDevice_attr_last.floor_heating.on_off == 0)
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false); {
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false , false, false, false);
}
else
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, true , false, true, false);
// Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
// kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
} }
else if( (endpoint == 3)&&(sDevice_attr_last.fan.on_off == 0) ) else if( endpoint == 3 )
{ {
temp_data = 1; temp_data = 1;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data); if(sDevice_attr_last.fan.on_off == 0)
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false); {
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false , false, false, false);
}
else
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, true , false, true, false);
// Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
// kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
} }
} }
break; break;
...@@ -389,10 +429,9 @@ void kSetBindConfigInfo(BIND_Info_Store* info) ...@@ -389,10 +429,9 @@ void kSetBindConfigInfo(BIND_Info_Store* info)
halCommonSetToken(TOKEN_BINDIND_ADDR_TABLE, info); halCommonSetToken(TOKEN_BINDIND_ADDR_TABLE, info);
} }
BIND_Info_Store kGetBindConfigInfo(void) void kGetBindConfigInfo(void)
{ {
halCommonGetToken(&Bind_Addr_Table, TOKEN_BINDIND_ADDR_TABLE); halCommonGetToken(&Bind_Addr_Table, TOKEN_BINDIND_ADDR_TABLE);
return Bind_Addr_Table;
} }
void Reset_Binding_Token(void) void Reset_Binding_Token(void)
......
...@@ -70,7 +70,7 @@ typedef struct ...@@ -70,7 +70,7 @@ 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 kGetBindConfigInfo(void);
void Reset_Binding_Token(void); void Reset_Binding_Token(void);
/**********************common interface*******************************/ /**********************common interface*******************************/
uint8_t Get_Device_Endpoint(void); uint8_t Get_Device_Endpoint(void);
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#define Z30_DEVICE_OTA_ENABLE true #define Z30_DEVICE_OTA_ENABLE true
//产测总开关, 是否有老化或单板和整机测试 //产测总开关, 是否有老化或单板和整机测试
#define Z30_DEVICE_FACTORY_TEST_ENABLE true #define Z30_DEVICE_FACTORY_TEST_ENABLE false
// 定义是否需要老化,目前一般路由设备需要 // 定义是否需要老化,目前一般路由设备需要
#define Z30_DEVICE_AGING_ENABLE false #define Z30_DEVICE_AGING_ENABLE false
//单板测试,目前一般是休眠设备需要 //单板测试,目前一般是休眠设备需要
......
...@@ -907,6 +907,7 @@ void kOptTunnelWriteAttributeResponseToGateway(uint8_t recordedZclSeq, uint8_t a ...@@ -907,6 +907,7 @@ void kOptTunnelWriteAttributeResponseToGateway(uint8_t recordedZclSeq, uint8_t a
//} //}
emberAfSendResponse(); // sending... emberAfSendResponse(); // sending...
emberAfClearResponseData();
} }
/* DESP: Private protocol message(command) write attribute interface /* DESP: Private protocol message(command) write attribute interface
......
...@@ -45,6 +45,7 @@ void kSetOTAStatus(OTAStatusEnum status) ...@@ -45,6 +45,7 @@ void kSetOTAStatus(OTAStatusEnum status)
void kOTAMoudleInit(pOTACallback callback, uint8_t led_id) void kOTAMoudleInit(pOTACallback callback, uint8_t led_id)
{ {
g_pOTACallback = callback; g_pOTACallback = callback;
iKonkeAfSelfPrint("kOTAMoudleInit = 0x%4x\r\n", g_pOTACallback);
g_u8OtaLedId = led_id; g_u8OtaLedId = led_id;
} }
...@@ -52,7 +53,7 @@ static bool kOtaGetGpioStatus(GPIO_Port_TypeDef port, unsigned int pin) ...@@ -52,7 +53,7 @@ static bool kOtaGetGpioStatus(GPIO_Port_TypeDef port, unsigned int pin)
{ {
return GPIO_PinOutGet(port, pin); return GPIO_PinOutGet(port, pin);
} }
extern void kOTAMoudleUserCallback(OTAStatusEnum status);
void kOTAMoudleCallback(OTAStatusEnum status) void kOTAMoudleCallback(OTAStatusEnum status)
{ {
...@@ -72,9 +73,9 @@ void kOTAMoudleCallback(OTAStatusEnum status) ...@@ -72,9 +73,9 @@ void kOTAMoudleCallback(OTAStatusEnum status)
stOTAGpioStatus.gpio[1].port, stOTAGpioStatus.gpio[1].pin); stOTAGpioStatus.gpio[1].port, stOTAGpioStatus.gpio[1].pin);
#endif #endif
} }
iKonkeAfSelfPrint("lmmmm -----OTA GPIO KEEP status(%d),addr = 0x%4x\r\n", g_eOTAStatus,kOTAMoudleUserCallback);
if (g_pOTACallback){ if (kOTAMoudleUserCallback){
g_pOTACallback(status); kOTAMoudleUserCallback(status);
}else { }else {
if (g_u8OtaLedId != LED_UNKNOW_ID){ if (g_u8OtaLedId != LED_UNKNOW_ID){
kOTAMoudleOptCallback(status); kOTAMoudleOptCallback(status);
......
...@@ -429,7 +429,6 @@ void kUserNetworkStatusNotify(NwkStatusEnum nwkst ) ...@@ -429,7 +429,6 @@ void kUserNetworkStatusNotify(NwkStatusEnum nwkst )
//恢复所有绑定属性上报使能 //恢复所有绑定属性上报使能
//kSystemSetupStatusSet(SETUP_STATUS_EXIT, 10); //kSystemSetupStatusSet(SETUP_STATUS_EXIT, 10);
Push_Netwaork_Status(IN_LINE); Push_Netwaork_Status(IN_LINE);
kGetBindConfigInfo();
iKonkeAfSelfPrint("mac 1,falge=%d mac=%x-%x-%x\r\n",Bind_Addr_Table.bind_flag1, Bind_Addr_Table.addr1[0], Bind_Addr_Table.addr1[1],Bind_Addr_Table.addr1[3]); iKonkeAfSelfPrint("mac 1,falge=%d mac=%x-%x-%x\r\n",Bind_Addr_Table.bind_flag1, Bind_Addr_Table.addr1[0], Bind_Addr_Table.addr1[1],Bind_Addr_Table.addr1[3]);
iKonkeAfSelfPrint("mac 2,falge=%d mac=%x-%x-%x\r\n",Bind_Addr_Table.bind_flag2, Bind_Addr_Table.addr1[0], Bind_Addr_Table.addr2[1],Bind_Addr_Table.addr2[3]); iKonkeAfSelfPrint("mac 2,falge=%d mac=%x-%x-%x\r\n",Bind_Addr_Table.bind_flag2, Bind_Addr_Table.addr1[0], Bind_Addr_Table.addr2[1],Bind_Addr_Table.addr2[3]);
...@@ -894,10 +893,10 @@ void kOTAMoudleUserCallback(OTAStatusEnum status) ...@@ -894,10 +893,10 @@ void kOTAMoudleUserCallback(OTAStatusEnum status)
//退网5S快闪结束后的回调函数,一般用于面板、插座和窗帘面板退网完成后在全部关闭时复位 //退网5S快闪结束后的回调函数,一般用于面板、插座和窗帘面板退网完成后在全部关闭时复位
void kUserNetworkExitCompleteCallback(void) void kUserNetworkExitCompleteCallback(void)
{ {
if (kGetFactoryTestStatus() == FTS_FULL_DEVICE_TEST_DONE){ // if (kGetFactoryTestStatus() == FTS_FULL_DEVICE_TEST_DONE){
return; // return;
} // }
emberEventControlSetDelayMS(ikkDelayRebootEventControl, 3000); emberEventControlSetDelayMS(ikkDelayRebootEventControl, 2000);
} }
void ikkDelayRebootEventHandler(void) void ikkDelayRebootEventHandler(void)
...@@ -974,9 +973,9 @@ kk_err_t kUserOODMessageIncoming(uint8_t channel, uint8_t opcode, uint8_t args_i ...@@ -974,9 +973,9 @@ kk_err_t kUserOODMessageIncoming(uint8_t channel, uint8_t opcode, uint8_t args_i
} }
iKonkeAfSelfPrint("--------------------------------------\r\n"); //test iKonkeAfSelfPrint("--------------------------------------\r\n"); //test
if( (g_sDevice_Info.mcu_software_version == 0xff) || //未读取到版本,重新请求一次 if( (g_sDevice_Info.mcu_software_version == 0xff)) //|| //未读取到版本,重新请求一次
((g_sDevice_Info.Device_Type == Device_Type_Air_Condition)&&(g_sDevice_Info.Device_subType == 0)&& // ((g_sDevice_Info.Device_Type == Device_Type_Air_Condition)&&(g_sDevice_Info.Device_subType == 0)&&
(sDevice_attr_last.air_condition.air_brand == 0xff) ) ) //未读到空调品牌 // (sDevice_attr_last.air_condition.air_brand == 0xff) ) ) //未读到空调品牌
{ {
Query_MCU_Info(); Query_MCU_Info();
Rewite_Attr_Witchout_Report(); Rewite_Attr_Witchout_Report();
...@@ -1114,7 +1113,7 @@ void kkSystemSetUpEventHandler(void ) ...@@ -1114,7 +1113,7 @@ void kkSystemSetUpEventHandler(void )
{ {
case SETUP_STATUS_INIT: case SETUP_STATUS_INIT:
if( emberAfNetworkState() == EMBER_JOINED_NETWORK ) { if( emberAfNetworkState() == EMBER_JOINED_NETWORK ) {
kGetBindConfigInfo();
}else { }else {
} }
iKonkeAfSelfPrint("System setup event.\r\n"); iKonkeAfSelfPrint("System setup event.\r\n");
......
...@@ -1402,7 +1402,7 @@ uint8_t uart_send_data(UMsgNodeSt *uMsgNode,uint8_t ucControl_Field,uint8_t uiSe ...@@ -1402,7 +1402,7 @@ uint8_t uart_send_data(UMsgNodeSt *uMsgNode,uint8_t ucControl_Field,uint8_t uiSe
uMsgNode->matcher_offset = 4; uMsgNode->matcher_offset = 4;
uMsgNode->matcher_n = 1; uMsgNode->matcher_n = 1;
if(ucControl_Field &0x10) if(ucControl_Field &0x10)
uMsgNode->sent_try = 2; uMsgNode->sent_try = 1;
else else
uMsgNode->sent_try = 0; uMsgNode->sent_try = 0;
if(isGetResult) if(isGetResult)
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
#define Contro_No_Disturb_Mode(x) CMD_Control_Emplement(CMD_NO_DISTURB_MODE,(uint8_t *)&x,1) #define Contro_No_Disturb_Mode(x) CMD_Control_Emplement(CMD_NO_DISTURB_MODE,(uint8_t *)&x,1)
#define Uart_Send(st,data) uart_send_data(st,0x30,0xff,data,true) #define Uart_Send(st,data) uart_send_data(st,0x30,0xff,data,false)
#define Uart_Resp(st,seq,data) uart_send_data(st,0x20,seq,data,false) #define Uart_Resp(st,seq,data) uart_send_data(st,0x20,seq,data,false)
......
...@@ -46,9 +46,17 @@ on ...@@ -46,9 +46,17 @@ on
off off
area name off area name off
appSerial=1 appSerial=1
compile,EMBER_AF_PLUGIN_NVM3
compile,EMBER_AF_PLUGIN_REPORTING
compile,EMBER_AF_PLUGIN_UPDATE_TC_LINK_KEY
compile,EMBER_AF_PLUGIN_ZIGBEE_PRO_LIBRARY
compile,ON_OFF_CLUSTER compile,ON_OFF_CLUSTER
compile,SCENES_CLUSTER compile,SCENES_CLUSTER
compile,ZDO compile,ZDO
enable,EMBER_AF_PLUGIN_NVM3
enable,EMBER_AF_PLUGIN_REPORTING
enable,EMBER_AF_PLUGIN_UPDATE_TC_LINK_KEY
enable,EMBER_AF_PLUGIN_ZIGBEE_PRO_LIBRARY
enable,ON_OFF_CLUSTER enable,ON_OFF_CLUSTER
enable,SCENES_CLUSTER enable,SCENES_CLUSTER
} }
...@@ -564,11 +572,14 @@ appPlugin:generic-interrupt-control,true ...@@ -564,11 +572,14 @@ appPlugin:generic-interrupt-control,true
appPlugin:generic-interrupt-control-stub,false appPlugin:generic-interrupt-control-stub,false
appPlugin:glib,false appPlugin:glib,false
appPlugin:gp-library,false appPlugin:gp-library,true
appPlugin:gpio-sensor,false appPlugin:gpio-sensor,false
appPlugin:gpio-sensor-stub,false appPlugin:gpio-sensor-stub,false
appPlugin:green-power-client,false appPlugin:green-power-client,true
appPlugin:green-power-common,false
appPlugin:green-power-common,true
appPlugin:green-power-server,false appPlugin:green-power-server,false
appPlugin:groups-client,false appPlugin:groups-client,false
appPlugin:groups-server,true appPlugin:groups-server,true
...@@ -792,8 +803,9 @@ AppPluginOption(efr32~family[M]~series[2]~device_configuration[1]~performance[A] ...@@ -792,8 +803,9 @@ 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_NETWORK_STEERING_CHANNEL_MASK,0x02108000 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_NETWORK_STEERING_CHANNEL_MASK,0x02108000
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_NVM3_FLASH_PAGES,8 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_NVM3_FLASH_PAGES,8
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_UPDATE_TC_LINK_KEY_MAX_ATTEMPTS,10 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_UPDATE_TC_LINK_KEY_MAX_ATTEMPTS,10
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_NVM3_CACHE_SIZE,300
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_NVM3_MAX_OBJECT_SIZE,254
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,62
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_NVM3_CACHE_SIZE,335
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 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
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
EmberEventControl emberAfIdentifyClusterServerTickCallbackControl3; \ EmberEventControl emberAfIdentifyClusterServerTickCallbackControl3; \
EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl3; \ EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl3; \
extern EmberEventControl emberAfPluginFormAndJoinCleanupEventControl; \ extern EmberEventControl emberAfPluginFormAndJoinCleanupEventControl; \
extern EmberEventControl emberAfPluginGreenPowerClientChannelEventControl; \
extern EmberEventControl emberAfPluginGreenPowerClientExitCommissioningEventControl; \
extern EmberEventControl emberAfPluginNetworkSteeringFinishSteeringEventControl; \ extern EmberEventControl emberAfPluginNetworkSteeringFinishSteeringEventControl; \
extern EmberEventControl emberAfPluginOtaStorageSimpleEepromPageEraseEventControl; \ extern EmberEventControl emberAfPluginOtaStorageSimpleEepromPageEraseEventControl; \
extern EmberEventControl emberAfPluginReportingTickEventControl; \ extern EmberEventControl emberAfPluginReportingTickEventControl; \
...@@ -39,6 +41,8 @@ ...@@ -39,6 +41,8 @@
extern EmberEventControl kUserJoinSucceedProcedureEventControl; \ extern EmberEventControl kUserJoinSucceedProcedureEventControl; \
extern EmberEventControl kkSystemSetUpEventControl; \ extern EmberEventControl kkSystemSetUpEventControl; \
extern void emberAfPluginFormAndJoinCleanupEventHandler(void); \ extern void emberAfPluginFormAndJoinCleanupEventHandler(void); \
extern void emberAfPluginGreenPowerClientChannelEventHandler(void); \
extern void emberAfPluginGreenPowerClientExitCommissioningEventHandler(void); \
extern void emberAfPluginNetworkSteeringFinishSteeringEventHandler(void); \ extern void emberAfPluginNetworkSteeringFinishSteeringEventHandler(void); \
extern void emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler(void); \ extern void emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler(void); \
extern void emberAfPluginReportingTickEventHandler(void); \ extern void emberAfPluginReportingTickEventHandler(void); \
...@@ -85,6 +89,8 @@ ...@@ -85,6 +89,8 @@
{ &emberAfIdentifyClusterServerTickCallbackControl3, emberAfIdentifyClusterServerTickCallbackWrapperFunction3 }, \ { &emberAfIdentifyClusterServerTickCallbackControl3, emberAfIdentifyClusterServerTickCallbackWrapperFunction3 }, \
{ &emberAfOtaBootloadClusterClientTickCallbackControl3, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction3 }, \ { &emberAfOtaBootloadClusterClientTickCallbackControl3, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction3 }, \
{ &emberAfPluginFormAndJoinCleanupEventControl, emberAfPluginFormAndJoinCleanupEventHandler }, \ { &emberAfPluginFormAndJoinCleanupEventControl, emberAfPluginFormAndJoinCleanupEventHandler }, \
{ &emberAfPluginGreenPowerClientChannelEventControl, emberAfPluginGreenPowerClientChannelEventHandler }, \
{ &emberAfPluginGreenPowerClientExitCommissioningEventControl, emberAfPluginGreenPowerClientExitCommissioningEventHandler }, \
{ &emberAfPluginNetworkSteeringFinishSteeringEventControl, emberAfPluginNetworkSteeringFinishSteeringEventHandler }, \ { &emberAfPluginNetworkSteeringFinishSteeringEventControl, emberAfPluginNetworkSteeringFinishSteeringEventHandler }, \
{ &emberAfPluginOtaStorageSimpleEepromPageEraseEventControl, emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler }, \ { &emberAfPluginOtaStorageSimpleEepromPageEraseEventControl, emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler }, \
{ &emberAfPluginReportingTickEventControl, emberAfPluginReportingTickEventHandler }, \ { &emberAfPluginReportingTickEventControl, emberAfPluginReportingTickEventHandler }, \
...@@ -117,6 +123,8 @@ ...@@ -117,6 +123,8 @@
"Identify Cluster Server EP 3", \ "Identify Cluster Server EP 3", \
"Over the Air Bootloading Cluster Client EP 3", \ "Over the Air Bootloading Cluster Client EP 3", \
"Form and Join Library Plugin Cleanup", \ "Form and Join Library Plugin Cleanup", \
"Green Power Client Plugin Channel", \
"Green Power Client Plugin ExitCommissioning", \
"Network Steering Plugin FinishSteering", \ "Network Steering Plugin FinishSteering", \
"OTA Simple Storage EEPROM Driver Plugin PageErase", \ "OTA Simple Storage EEPROM Driver Plugin PageErase", \
"Reporting Plugin Tick", \ "Reporting Plugin Tick", \
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl1; \ EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl1; \
EmberEventControl emberAfIdentifyClusterServerTickCallbackControl2; \ EmberEventControl emberAfIdentifyClusterServerTickCallbackControl2; \
EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl2; \ EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl2; \
EmberEventControl emberAfIdentifyClusterServerTickCallbackControl3; \
EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl3; \
extern EmberEventControl emberAfPluginFormAndJoinCleanupEventControl; \ extern EmberEventControl emberAfPluginFormAndJoinCleanupEventControl; \
extern EmberEventControl emberAfPluginNetworkSteeringFinishSteeringEventControl; \ extern EmberEventControl emberAfPluginNetworkSteeringFinishSteeringEventControl; \
extern EmberEventControl emberAfPluginOtaStorageSimpleEepromPageEraseEventControl; \ extern EmberEventControl emberAfPluginOtaStorageSimpleEepromPageEraseEventControl; \
...@@ -70,6 +72,8 @@ ...@@ -70,6 +72,8 @@
void emberAfOtaBootloadClusterClientTickCallbackWrapperFunction1(void) { clusterTickWrapper(&emberAfOtaBootloadClusterClientTickCallbackControl1, emberAfOtaBootloadClusterClientTickCallback, 1); } \ void emberAfOtaBootloadClusterClientTickCallbackWrapperFunction1(void) { clusterTickWrapper(&emberAfOtaBootloadClusterClientTickCallbackControl1, emberAfOtaBootloadClusterClientTickCallback, 1); } \
void emberAfIdentifyClusterServerTickCallbackWrapperFunction2(void) { clusterTickWrapper(&emberAfIdentifyClusterServerTickCallbackControl2, emberAfIdentifyClusterServerTickCallback, 2); } \ void emberAfIdentifyClusterServerTickCallbackWrapperFunction2(void) { clusterTickWrapper(&emberAfIdentifyClusterServerTickCallbackControl2, emberAfIdentifyClusterServerTickCallback, 2); } \
void emberAfOtaBootloadClusterClientTickCallbackWrapperFunction2(void) { clusterTickWrapper(&emberAfOtaBootloadClusterClientTickCallbackControl2, emberAfOtaBootloadClusterClientTickCallback, 2); } \ void emberAfOtaBootloadClusterClientTickCallbackWrapperFunction2(void) { clusterTickWrapper(&emberAfOtaBootloadClusterClientTickCallbackControl2, emberAfOtaBootloadClusterClientTickCallback, 2); } \
void emberAfIdentifyClusterServerTickCallbackWrapperFunction3(void) { clusterTickWrapper(&emberAfIdentifyClusterServerTickCallbackControl3, emberAfIdentifyClusterServerTickCallback, 3); } \
void emberAfOtaBootloadClusterClientTickCallbackWrapperFunction3(void) { clusterTickWrapper(&emberAfOtaBootloadClusterClientTickCallbackControl3, emberAfOtaBootloadClusterClientTickCallback, 3); } \
// EmberEventData structs used to populate the EmberEventData table // EmberEventData structs used to populate the EmberEventData table
...@@ -78,6 +82,8 @@ ...@@ -78,6 +82,8 @@
{ &emberAfOtaBootloadClusterClientTickCallbackControl1, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction1 }, \ { &emberAfOtaBootloadClusterClientTickCallbackControl1, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction1 }, \
{ &emberAfIdentifyClusterServerTickCallbackControl2, emberAfIdentifyClusterServerTickCallbackWrapperFunction2 }, \ { &emberAfIdentifyClusterServerTickCallbackControl2, emberAfIdentifyClusterServerTickCallbackWrapperFunction2 }, \
{ &emberAfOtaBootloadClusterClientTickCallbackControl2, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction2 }, \ { &emberAfOtaBootloadClusterClientTickCallbackControl2, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction2 }, \
{ &emberAfIdentifyClusterServerTickCallbackControl3, emberAfIdentifyClusterServerTickCallbackWrapperFunction3 }, \
{ &emberAfOtaBootloadClusterClientTickCallbackControl3, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction3 }, \
{ &emberAfPluginFormAndJoinCleanupEventControl, emberAfPluginFormAndJoinCleanupEventHandler }, \ { &emberAfPluginFormAndJoinCleanupEventControl, emberAfPluginFormAndJoinCleanupEventHandler }, \
{ &emberAfPluginNetworkSteeringFinishSteeringEventControl, emberAfPluginNetworkSteeringFinishSteeringEventHandler }, \ { &emberAfPluginNetworkSteeringFinishSteeringEventControl, emberAfPluginNetworkSteeringFinishSteeringEventHandler }, \
{ &emberAfPluginOtaStorageSimpleEepromPageEraseEventControl, emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler }, \ { &emberAfPluginOtaStorageSimpleEepromPageEraseEventControl, emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler }, \
...@@ -108,6 +114,8 @@ ...@@ -108,6 +114,8 @@
"Over the Air Bootloading Cluster Client EP 1", \ "Over the Air Bootloading Cluster Client EP 1", \
"Identify Cluster Server EP 2", \ "Identify Cluster Server EP 2", \
"Over the Air Bootloading Cluster Client EP 2", \ "Over the Air Bootloading Cluster Client EP 2", \
"Identify Cluster Server EP 3", \
"Over the Air Bootloading Cluster Client EP 3", \
"Form and Join Library Plugin Cleanup", \ "Form and Join Library Plugin Cleanup", \
"Network Steering Plugin FinishSteering", \ "Network Steering Plugin FinishSteering", \
"OTA Simple Storage EEPROM Driver Plugin PageErase", \ "OTA Simple Storage EEPROM Driver Plugin PageErase", \
...@@ -134,13 +142,15 @@ ...@@ -134,13 +142,15 @@
// The length of the event context table used to track and retrieve cluster events // The length of the event context table used to track and retrieve cluster events
#define EMBER_AF_EVENT_CONTEXT_LENGTH 4 #define EMBER_AF_EVENT_CONTEXT_LENGTH 6
// EmberAfEventContext structs used to populate the EmberAfEventContext table // EmberAfEventContext structs used to populate the EmberAfEventContext table
#define EMBER_AF_GENERATED_EVENT_CONTEXT { 0x1, 0x3, false, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfIdentifyClusterServerTickCallbackControl1}, \ #define EMBER_AF_GENERATED_EVENT_CONTEXT { 0x1, 0x3, false, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfIdentifyClusterServerTickCallbackControl1}, \
{ 0x1, 0x19, true, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfOtaBootloadClusterClientTickCallbackControl1}, \ { 0x1, 0x19, true, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfOtaBootloadClusterClientTickCallbackControl1}, \
{ 0x2, 0x3, false, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfIdentifyClusterServerTickCallbackControl2}, \ { 0x2, 0x3, false, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfIdentifyClusterServerTickCallbackControl2}, \
{ 0x2, 0x19, true, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfOtaBootloadClusterClientTickCallbackControl2} { 0x2, 0x19, true, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfOtaBootloadClusterClientTickCallbackControl2}, \
{ 0x3, 0x3, false, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfIdentifyClusterServerTickCallbackControl3}, \
{ 0x3, 0x19, true, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfOtaBootloadClusterClientTickCallbackControl3}
#endif // __AF_GEN_EVENT__ #endif // __AF_GEN_EVENT__
...@@ -25,6 +25,9 @@ EmberAfStatus emberAfScenesClusterServerCommandParse(EmberAfClusterCommand *cmd) ...@@ -25,6 +25,9 @@ EmberAfStatus emberAfScenesClusterServerCommandParse(EmberAfClusterCommand *cmd)
// Cluster: On/off, server // Cluster: On/off, server
EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand *cmd); EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand *cmd);
// Cluster: Green Power, client
EmberAfStatus emberAfGreenPowerClusterClientCommandParse(EmberAfClusterCommand *cmd);
// Cluster: Thermostat, server // Cluster: Thermostat, server
EmberAfStatus emberAfThermostatClusterServerCommandParse(EmberAfClusterCommand *cmd); EmberAfStatus emberAfThermostatClusterServerCommandParse(EmberAfClusterCommand *cmd);
......
...@@ -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 0x13 --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 0x13 --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)
......
...@@ -222,7 +222,7 @@ ...@@ -222,7 +222,7 @@
<state>APPLICATION_MFG_TOKEN_HEADER="znet-mfg-token.h"</state> <state>APPLICATION_MFG_TOKEN_HEADER="znet-mfg-token.h"</state>
<state>MBEDTLS_DEVICE_ACCELERATION_CONFIG_FILE="configs/config-device-acceleration.h"</state> <state>MBEDTLS_DEVICE_ACCELERATION_CONFIG_FILE="configs/config-device-acceleration.h"</state>
<state>MBEDTLS_DEVICE_ACCELERATION_CONFIG_APP_FILE="config-device-acceleration-app.h"</state> <state>MBEDTLS_DEVICE_ACCELERATION_CONFIG_APP_FILE="config-device-acceleration-app.h"</state>
<state>NVM3_FLASH_PAGES=8</state><state>NVM3_DEFAULT_CACHE_SIZE=300</state><state>NVM3_MAX_OBJECT_SIZE=254</state><state>NVM3_DEFAULT_REPACK_HEADROOM=0</state><state>PHY_RAIL=1</state> <state>NVM3_FLASH_PAGES=8</state><state>NVM3_DEFAULT_CACHE_SIZE=335</state><state>NVM3_MAX_OBJECT_SIZE=254</state><state>NVM3_DEFAULT_REPACK_HEADROOM=0</state><state>PHY_RAIL=1</state>
</option> </option>
<option> <option>
<name>CCPreprocFile</name> <name>CCPreprocFile</name>
...@@ -610,7 +610,7 @@ ...@@ -610,7 +610,7 @@
<state>APPLICATION_MFG_TOKEN_HEADER="znet-mfg-token.h"</state> <state>APPLICATION_MFG_TOKEN_HEADER="znet-mfg-token.h"</state>
<state>MBEDTLS_DEVICE_ACCELERATION_CONFIG_FILE="configs/config-device-acceleration.h"</state> <state>MBEDTLS_DEVICE_ACCELERATION_CONFIG_FILE="configs/config-device-acceleration.h"</state>
<state>MBEDTLS_DEVICE_ACCELERATION_CONFIG_APP_FILE="config-device-acceleration-app.h"</state> <state>MBEDTLS_DEVICE_ACCELERATION_CONFIG_APP_FILE="config-device-acceleration-app.h"</state>
<state>NVM3_FLASH_PAGES=8</state><state>NVM3_DEFAULT_CACHE_SIZE=300</state><state>NVM3_MAX_OBJECT_SIZE=254</state><state>NVM3_DEFAULT_REPACK_HEADROOM=0</state><state>PHY_RAIL=1</state> <state>NVM3_FLASH_PAGES=8</state><state>NVM3_DEFAULT_CACHE_SIZE=335</state><state>NVM3_MAX_OBJECT_SIZE=254</state><state>NVM3_DEFAULT_REPACK_HEADROOM=0</state><state>PHY_RAIL=1</state>
</option> </option>
<option> <option>
<name>AList</name> <name>AList</name>
...@@ -1256,7 +1256,7 @@ ...@@ -1256,7 +1256,7 @@
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\debug-basic-stub-library-cortexm3-iar-efr32mg21-rail\debug-basic-stub-library.a</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\debug-basic-stub-library-cortexm3-iar-efr32mg21-rail\debug-basic-stub-library.a</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\debug-extended-stub-library-cortexm3-iar-efr32mg21-rail\debug-extended-stub-library.a</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\debug-extended-stub-library-cortexm3-iar-efr32mg21-rail\debug-extended-stub-library.a</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\end-device-bind-stub-library-cortexm3-iar-efr32mg21-rail\end-device-bind-stub-library.a</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\end-device-bind-stub-library-cortexm3-iar-efr32mg21-rail\end-device-bind-stub-library.a</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\gp-stub-library-cortexm3-iar-efr32mg21-rail\gp-stub-library.a</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\gp-library-cortexm3-iar-efr32mg21-rail\gp-library.a</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\hal-library-cortexm3-iar-efr32mg21-rail\hal-library.a</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\hal-library-cortexm3-iar-efr32mg21-rail\hal-library.a</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\install-code-library-cortexm3-iar-efr32mg21-rail\install-code-library.a</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\install-code-library-cortexm3-iar-efr32mg21-rail\install-code-library.a</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\mfglib-library-cortexm3-iar-efr32mg21-rail\mfglib-library.a</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\build\mfglib-library-cortexm3-iar-efr32mg21-rail\mfglib-library.a</name></file>
...@@ -1304,6 +1304,9 @@ ...@@ -1304,6 +1304,9 @@
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\util\common\form-and-join.c</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\util\common\form-and-join.c</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\util\common\form-and-join-node-adapter.c</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\util\common\form-and-join-node-adapter.c</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/util\plugin\plugin-common\generic-interrupt-control\generic-interrupt-control-efr32.c</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/util\plugin\plugin-common\generic-interrupt-control\generic-interrupt-control-efr32.c</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\framework\plugin\green-power-client\green-power-client.c</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\framework\plugin\green-power-client\green-power-client-cli.c</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\framework\plugin\green-power-common\green-power-common.c</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\framework\plugin\groups-server\groups-server.c</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\framework\plugin\groups-server\groups-server.c</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\framework\plugin\groups-server\groups-server-cli.c</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/protocol\zigbee\app\framework\plugin\groups-server\groups-server-cli.c</name></file>
<file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/platform\base\hal\micro\cortexm3\efm32\hal-config.c</name></file> <file><name>$PROJ_DIR$/../../../../../../SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.6/platform\base\hal\micro\cortexm3\efm32\hal-config.c</name></file>
......
...@@ -150,6 +150,12 @@ ...@@ -150,6 +150,12 @@
#define EMBER_CALLBACK_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING #define EMBER_CALLBACK_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING
#define EMBER_CALLBACK_GROUPS_CLUSTER_ENDPOINT_IN_GROUP #define EMBER_CALLBACK_GROUPS_CLUSTER_ENDPOINT_IN_GROUP
#define EMBER_CALLBACK_GROUPS_CLUSTER_CLEAR_GROUP_TABLE #define EMBER_CALLBACK_GROUPS_CLUSTER_CLEAR_GROUP_TABLE
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_NOTIFICATION_RESPONSE
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_PAIRING
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_PROXY_COMMISSIONING_MODE
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_RESPONSE
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_SINK_TABLE_RESPONSE
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_PROXY_TABLE_REQUEST
#define EMBER_CALLBACK_CONFIGURE_REPORTING_COMMAND #define EMBER_CALLBACK_CONFIGURE_REPORTING_COMMAND
#define EMBER_CALLBACK_READ_REPORTING_CONFIGURATION_COMMAND #define EMBER_CALLBACK_READ_REPORTING_CONFIGURATION_COMMAND
#define EMBER_CALLBACK_CLEAR_REPORT_TABLE #define EMBER_CALLBACK_CLEAR_REPORT_TABLE
...@@ -271,6 +277,25 @@ ...@@ -271,6 +277,25 @@
// Use this macro to check if Generic GPIO Interrupt Controller plugin is included // Use this macro to check if Generic GPIO Interrupt Controller plugin is included
#define EMBER_AF_PLUGIN_GENERIC_INTERRUPT_CONTROL #define EMBER_AF_PLUGIN_GENERIC_INTERRUPT_CONTROL
// Use this macro to check if Green Power Library plugin is included
#define EMBER_AF_PLUGIN_GP_LIBRARY
// User options for plugin Green Power Library
#define EMBER_GP_PROXY_TABLE_SIZE 5
#define EMBER_GP_SINK_TABLE_SIZE 0
// Use this macro to check if Green Power Client plugin is included
#define EMBER_AF_PLUGIN_GREEN_POWER_CLIENT
#define EZSP_APPLICATION_HAS_GPEP_INCOMING_MESSAGE_HANDLER
#define EZSP_APPLICATION_HAS_DGP_SENT_HANDLER
// User options for plugin Green Power Client
#define EMBER_AF_PLUGIN_GREEN_POWER_CLIENT_GPP_COMMISSIONING_WINDOW 160
#define EMBER_AF_PLUGIN_GREEN_POWER_CLIENT_GPP_DUPLICATE_TIMEOUT_SEC 160
#define EMBER_AF_PLUGIN_GREEN_POWER_CLIENT_MAX_ADDR_ENTRIES 3
#define EMBER_AF_PLUGIN_GREEN_POWER_CLIENT_MAX_SEQ_NUM_ENTRIES_PER_ADDR 4
// Use this macro to check if Green Power Common plugin is included
#define EMBER_AF_PLUGIN_GREEN_POWER_COMMON
// Use this macro to check if Groups Server Cluster plugin is included // Use this macro to check if Groups Server Cluster plugin is included
#define EMBER_AF_PLUGIN_GROUPS_SERVER #define EMBER_AF_PLUGIN_GROUPS_SERVER
...@@ -308,7 +333,7 @@ ...@@ -308,7 +333,7 @@
#define EMBER_AF_PLUGIN_NVM3 #define EMBER_AF_PLUGIN_NVM3
// User options for plugin NVM3 Library // User options for plugin NVM3 Library
#define EMBER_AF_PLUGIN_NVM3_FLASH_PAGES 8 #define EMBER_AF_PLUGIN_NVM3_FLASH_PAGES 8
#define EMBER_AF_PLUGIN_NVM3_CACHE_SIZE 300 #define EMBER_AF_PLUGIN_NVM3_CACHE_SIZE 335
#define EMBER_AF_PLUGIN_NVM3_MAX_OBJECT_SIZE 254 #define EMBER_AF_PLUGIN_NVM3_MAX_OBJECT_SIZE 254
#define EMBER_AF_PLUGIN_NVM3_USER_REPACK_HEADROOM 0 #define EMBER_AF_PLUGIN_NVM3_USER_REPACK_HEADROOM 0
...@@ -386,7 +411,7 @@ ...@@ -386,7 +411,7 @@
// Use this macro to check if Reporting plugin is included // Use this macro to check if Reporting plugin is included
#define EMBER_AF_PLUGIN_REPORTING #define EMBER_AF_PLUGIN_REPORTING
// User options for plugin Reporting // User options for plugin Reporting
#define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE 50 #define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE 62
#define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS #define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS
// Use this macro to check if Scan Dispatch plugin is included // Use this macro to check if Scan Dispatch plugin is included
......
...@@ -150,6 +150,12 @@ ...@@ -150,6 +150,12 @@
#define EMBER_CALLBACK_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING #define EMBER_CALLBACK_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING
#define EMBER_CALLBACK_GROUPS_CLUSTER_ENDPOINT_IN_GROUP #define EMBER_CALLBACK_GROUPS_CLUSTER_ENDPOINT_IN_GROUP
#define EMBER_CALLBACK_GROUPS_CLUSTER_CLEAR_GROUP_TABLE #define EMBER_CALLBACK_GROUPS_CLUSTER_CLEAR_GROUP_TABLE
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_NOTIFICATION_RESPONSE
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_PAIRING
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_PROXY_COMMISSIONING_MODE
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_RESPONSE
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_SINK_TABLE_RESPONSE
#define EMBER_CALLBACK_GREEN_POWER_CLUSTER_GP_PROXY_TABLE_REQUEST
#define EMBER_CALLBACK_CONFIGURE_REPORTING_COMMAND #define EMBER_CALLBACK_CONFIGURE_REPORTING_COMMAND
#define EMBER_CALLBACK_READ_REPORTING_CONFIGURATION_COMMAND #define EMBER_CALLBACK_READ_REPORTING_CONFIGURATION_COMMAND
#define EMBER_CALLBACK_CLEAR_REPORT_TABLE #define EMBER_CALLBACK_CLEAR_REPORT_TABLE
...@@ -271,6 +277,25 @@ ...@@ -271,6 +277,25 @@
// Use this macro to check if Generic GPIO Interrupt Controller plugin is included // Use this macro to check if Generic GPIO Interrupt Controller plugin is included
#define EMBER_AF_PLUGIN_GENERIC_INTERRUPT_CONTROL #define EMBER_AF_PLUGIN_GENERIC_INTERRUPT_CONTROL
// Use this macro to check if Green Power Library plugin is included
#define EMBER_AF_PLUGIN_GP_LIBRARY
// User options for plugin Green Power Library
#define EMBER_GP_PROXY_TABLE_SIZE 5
#define EMBER_GP_SINK_TABLE_SIZE 0
// Use this macro to check if Green Power Client plugin is included
#define EMBER_AF_PLUGIN_GREEN_POWER_CLIENT
#define EZSP_APPLICATION_HAS_GPEP_INCOMING_MESSAGE_HANDLER
#define EZSP_APPLICATION_HAS_DGP_SENT_HANDLER
// User options for plugin Green Power Client
#define EMBER_AF_PLUGIN_GREEN_POWER_CLIENT_GPP_COMMISSIONING_WINDOW 160
#define EMBER_AF_PLUGIN_GREEN_POWER_CLIENT_GPP_DUPLICATE_TIMEOUT_SEC 160
#define EMBER_AF_PLUGIN_GREEN_POWER_CLIENT_MAX_ADDR_ENTRIES 3
#define EMBER_AF_PLUGIN_GREEN_POWER_CLIENT_MAX_SEQ_NUM_ENTRIES_PER_ADDR 4
// Use this macro to check if Green Power Common plugin is included
#define EMBER_AF_PLUGIN_GREEN_POWER_COMMON
// Use this macro to check if Groups Server Cluster plugin is included // Use this macro to check if Groups Server Cluster plugin is included
#define EMBER_AF_PLUGIN_GROUPS_SERVER #define EMBER_AF_PLUGIN_GROUPS_SERVER
...@@ -308,7 +333,7 @@ ...@@ -308,7 +333,7 @@
#define EMBER_AF_PLUGIN_NVM3 #define EMBER_AF_PLUGIN_NVM3
// User options for plugin NVM3 Library // User options for plugin NVM3 Library
#define EMBER_AF_PLUGIN_NVM3_FLASH_PAGES 8 #define EMBER_AF_PLUGIN_NVM3_FLASH_PAGES 8
#define EMBER_AF_PLUGIN_NVM3_CACHE_SIZE 300 #define EMBER_AF_PLUGIN_NVM3_CACHE_SIZE 335
#define EMBER_AF_PLUGIN_NVM3_MAX_OBJECT_SIZE 254 #define EMBER_AF_PLUGIN_NVM3_MAX_OBJECT_SIZE 254
#define EMBER_AF_PLUGIN_NVM3_USER_REPACK_HEADROOM 0 #define EMBER_AF_PLUGIN_NVM3_USER_REPACK_HEADROOM 0
...@@ -344,7 +369,7 @@ ...@@ -344,7 +369,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 19
#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
...@@ -386,7 +411,7 @@ ...@@ -386,7 +411,7 @@
// Use this macro to check if Reporting plugin is included // Use this macro to check if Reporting plugin is included
#define EMBER_AF_PLUGIN_REPORTING #define EMBER_AF_PLUGIN_REPORTING
// User options for plugin Reporting // User options for plugin Reporting
#define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE 50 #define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE 62
#define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS #define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS
// Use this macro to check if Scan Dispatch plugin is included // Use this macro to check if Scan Dispatch plugin is included
......
...@@ -206,12 +206,14 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] = ...@@ -206,12 +206,14 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] =
#define EMBER_AF_GENERATED_PLUGIN_INIT_FUNCTION_DECLARATIONS \ #define EMBER_AF_GENERATED_PLUGIN_INIT_FUNCTION_DECLARATIONS \
void emberAfPluginEepromInitCallback(void); \ void emberAfPluginEepromInitCallback(void); \
void emberAfPluginGreenPowerClientInitCallback(void); \
void emberAfPluginReportingInitCallback(void); \ void emberAfPluginReportingInitCallback(void); \
void emberAfPluginCountersInitCallback(void); \ void emberAfPluginCountersInitCallback(void); \
#define EMBER_AF_GENERATED_PLUGIN_INIT_FUNCTION_CALLS \ #define EMBER_AF_GENERATED_PLUGIN_INIT_FUNCTION_CALLS \
emberAfPluginEepromInitCallback(); \ emberAfPluginEepromInitCallback(); \
emberAfPluginGreenPowerClientInitCallback(); \
emberAfPluginReportingInitCallback(); \ emberAfPluginReportingInitCallback(); \
emberAfPluginCountersInitCallback(); \ emberAfPluginCountersInitCallback(); \
...@@ -225,12 +227,14 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] = ...@@ -225,12 +227,14 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] =
#define EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_DECLARATIONS \ #define EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_DECLARATIONS \
void emberAfPluginGreenPowerClientStackStatusCallback(EmberStatus status); \
void emberAfPluginReportingStackStatusCallback(EmberStatus status); \ void emberAfPluginReportingStackStatusCallback(EmberStatus status); \
void emberAfPluginOtaClientStackStatusCallback(EmberStatus status); \ void emberAfPluginOtaClientStackStatusCallback(EmberStatus status); \
void emberAfPluginNetworkSteeringStackStatusCallback(EmberStatus status); \ void emberAfPluginNetworkSteeringStackStatusCallback(EmberStatus status); \
#define EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_CALLS \ #define EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_CALLS \
emberAfPluginGreenPowerClientStackStatusCallback(status); \
emberAfPluginReportingStackStatusCallback(status); \ emberAfPluginReportingStackStatusCallback(status); \
emberAfPluginOtaClientStackStatusCallback(status); \ emberAfPluginOtaClientStackStatusCallback(status); \
emberAfPluginNetworkSteeringStackStatusCallback(status); \ emberAfPluginNetworkSteeringStackStatusCallback(status); \
...@@ -271,11 +275,17 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] = ...@@ -271,11 +275,17 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] =
{ 0x0019, 0x01, COMMAND_MASK_OUTGOING_CLIENT }, /* Over the Air Bootloading / QueryNextImageRequest */ \ { 0x0019, 0x01, COMMAND_MASK_OUTGOING_CLIENT }, /* Over the Air Bootloading / QueryNextImageRequest */ \
{ 0x0019, 0x03, COMMAND_MASK_OUTGOING_CLIENT }, /* Over the Air Bootloading / ImageBlockRequest */ \ { 0x0019, 0x03, COMMAND_MASK_OUTGOING_CLIENT }, /* Over the Air Bootloading / ImageBlockRequest */ \
{ 0x0019, 0x06, COMMAND_MASK_OUTGOING_CLIENT }, /* Over the Air Bootloading / UpgradeEndRequest */ \ { 0x0019, 0x06, COMMAND_MASK_OUTGOING_CLIENT }, /* Over the Air Bootloading / UpgradeEndRequest */ \
{ 0x0021, 0x00, COMMAND_MASK_INCOMING_CLIENT }, /* Green Power / GpNotificationResponse */ \
{ 0x0021, 0x01, COMMAND_MASK_INCOMING_CLIENT }, /* Green Power / GpPairing */ \
{ 0x0021, 0x02, COMMAND_MASK_INCOMING_CLIENT }, /* Green Power / GpProxyCommissioningMode */ \
{ 0x0021, 0x06, COMMAND_MASK_INCOMING_CLIENT }, /* Green Power / GpResponse */ \
{ 0x0021, 0x0A, COMMAND_MASK_INCOMING_CLIENT }, /* Green Power / GpSinkTableResponse */ \
{ 0x0021, 0x0B, COMMAND_MASK_INCOMING_CLIENT }, /* Green Power / GpProxyTableRequest */ \
{ 0x0201, 0x00, COMMAND_MASK_OUTGOING_SERVER }, /* Thermostat / CurrentWeeklySchedule */ \ { 0x0201, 0x00, COMMAND_MASK_OUTGOING_SERVER }, /* Thermostat / CurrentWeeklySchedule */ \
{ 0x0201, 0x00, COMMAND_MASK_INCOMING_SERVER }, /* Thermostat / SetpointRaiseLower */ \ { 0x0201, 0x00, COMMAND_MASK_INCOMING_SERVER }, /* Thermostat / SetpointRaiseLower */ \
{ 0x0201, 0x01, COMMAND_MASK_OUTGOING_SERVER }, /* Thermostat / RelayStatusLog */ \ { 0x0201, 0x01, COMMAND_MASK_OUTGOING_SERVER }, /* Thermostat / RelayStatusLog */ \
} }
#define EMBER_AF_GENERATED_COMMAND_COUNT (36) #define EMBER_AF_GENERATED_COMMAND_COUNT (42)
// Command manufacturer codes // Command manufacturer codes
#define GENERATED_COMMAND_MANUFACTURER_CODES { \ #define GENERATED_COMMAND_MANUFACTURER_CODES { \
......
...@@ -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*/\
......
...@@ -1063,7 +1063,9 @@ void emAfStackStatusHandler(EmberStatus status) ...@@ -1063,7 +1063,9 @@ void emAfStackStatusHandler(EmberStatus status)
emberAfRegistrationAbortCallback(); emberAfRegistrationAbortCallback();
emberAfRegistrationStartCallback(); emberAfRegistrationStartCallback();
} else { } else {
halInternalDisableWatchDog(MICRO_DISABLE_WATCH_DOG_KEY); //lmm add for long reporttablesize cause watchdog reset
emberStartWritingStackTokens(); emberStartWritingStackTokens();
halInternalWatchDogEnabled();
} }
// This kicks off registration for newly joined devices. If registration // This kicks off registration for newly joined devices. If registration
......
...@@ -46,9 +46,12 @@ bool emAfPreZDOMessageReceived(EmberNodeId emberNodeId,EmberApsFrame* apsFrame,u ...@@ -46,9 +46,12 @@ bool emAfPreZDOMessageReceived(EmberNodeId emberNodeId,EmberApsFrame* apsFrame,u
return emberAfPreZDOMessageReceivedCallback(emberNodeId, apsFrame, message, length); // Global return emberAfPreZDOMessageReceivedCallback(emberNodeId, apsFrame, message, length); // Global
} }
// RetrieveAttributeAndCraftResponse function declarations.
bool emAfPluginGreenPowerClientRetrieveAttributeAndCraftResponse(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attrId, uint8_t mask, uint16_t maunfacturerCode, uint16_t readLength); // Plugin: green-power-client
bool emAfRetrieveAttributeAndCraftResponse(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attrId, uint8_t mask, uint16_t maunfacturerCode, uint16_t readLength) bool emAfRetrieveAttributeAndCraftResponse(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attrId, uint8_t mask, uint16_t maunfacturerCode, uint16_t readLength)
{ {
return 0; // false return emAfPluginGreenPowerClientRetrieveAttributeAndCraftResponse(endpoint, clusterId, attrId, mask, maunfacturerCode, readLength); // Plugin: green-power-client
} }
// ZigbeeKeyEstablishment function declarations. // ZigbeeKeyEstablishment function declarations.
......
...@@ -999,6 +999,78 @@ ...@@ -999,6 +999,78 @@
/** @} */ // end group plugin-eeprom /** @} */ // end group plugin-eeprom
/** @addtogroup plugin-green-power-client Plugin Commands: Green Power Client
* @ingroup cli
* The Green Power Client plugin contributes CLI commands to the application
* framework to be used for getting, setting, and displaying information
* relevant to the Green Power Client cluster.
*
* @{
*/
/** @brief <b>plugin green-power-client add-group-sink [sourceID:4] [sinkGroup:2] </b>
* - <i>Add a groupcast sink for a given GPD</i>
* - sourceID - INT32U - GPD Source ID
* - sinkGroup - INT16U - Sink group
*/
#define EMBER_AF_DOXYGEN_CLI_COMMAND_PLUGIN_GREEN_POWER_CLIENT_PLUGIN_GREEN_POWER_CLIENT_ADD_GROUP_SINK
/** @brief <b>plugin green-power-client add-sink [sourceID:4] [sinkIeee:8] </b>
* - <i>Add a sink for a given GPD</i>
* - sourceID - INT32U - GPD Source ID
* - sinkIeee - IEEE_ADDRESS - Sink's IEEE address
*/
#define EMBER_AF_DOXYGEN_CLI_COMMAND_PLUGIN_GREEN_POWER_CLIENT_PLUGIN_GREEN_POWER_CLIENT_ADD_SINK
/** @brief <b>plugin green-power-client clear-proxy-table </b>
* - <i>clear the proxy table</i>
*/
#define EMBER_AF_DOXYGEN_CLI_COMMAND_PLUGIN_GREEN_POWER_CLIENT_PLUGIN_GREEN_POWER_CLIENT_CLEAR_PROXY_TABLE
/** @brief <b>plugin green-power-client duplicate-filter-test [endpoint:1] [sourceId:4] [sequenceNumber:1] </b>
* - <i>This is used to instrument the current device receiving a message in order to test the duplicate message filtering functionality.</i>
* - endpoint - INT8U
* - sourceId - INT32U - source Id of the fake incoming message
* - sequenceNumber - INT8U
*/
#define EMBER_AF_DOXYGEN_CLI_COMMAND_PLUGIN_GREEN_POWER_CLIENT_PLUGIN_GREEN_POWER_CLIENT_DUPLICATE_FILTER_TEST
/** @brief <b>plugin green-power-client print-proxy-table </b>
* - <i>Print the proxy table</i>
*/
#define EMBER_AF_DOXYGEN_CLI_COMMAND_PLUGIN_GREEN_POWER_CLIENT_PLUGIN_GREEN_POWER_CLIENT_PRINT_PROXY_TABLE
/** @brief <b>plugin green-power-client rm-gpd [sourceID:4] </b>
* - <i>Remove a given GPD from the proxy table</i>
* - sourceID - INT32U - GPD Source ID
*/
#define EMBER_AF_DOXYGEN_CLI_COMMAND_PLUGIN_GREEN_POWER_CLIENT_PLUGIN_GREEN_POWER_CLIENT_RM_GPD
/** @brief <b>plugin green-power-client rm-sink [sourceID:4] [sinkIeee:8] </b>
* - <i>remove a sink for a given GPD. If that's the last sink, remove the proxy table entry</i>
* - sourceID - INT32U - GPD Source ID
* - sinkIeee - IEEE_ADDRESS - Sink's IEEE address
*/
#define EMBER_AF_DOXYGEN_CLI_COMMAND_PLUGIN_GREEN_POWER_CLIENT_PLUGIN_GREEN_POWER_CLIENT_RM_SINK
/** @brief <b>plugin green-power-client set-key [index:1] [key:16] </b>
* - <i>This is used to set the key for a proxy table entry</i>
* - index - INT8U
* - key - SECURITY_KEY - source Id of the fake incoming message
*/
#define EMBER_AF_DOXYGEN_CLI_COMMAND_PLUGIN_GREEN_POWER_CLIENT_PLUGIN_GREEN_POWER_CLIENT_SET_KEY
/** @brief <b>plugin green-power-client set-proxy-entry [index:1] [sourceID:4] [sinkNodeId:2] [options:4] </b>
* - <i>Set a proxy table entry</i>
* - index - INT8U - index to proxy table
* - sourceID - INT32U - GPD Source ID
* - sinkNodeId - INT16U - Sink's node address
* - options - INT32U
*/
#define EMBER_AF_DOXYGEN_CLI_COMMAND_PLUGIN_GREEN_POWER_CLIENT_PLUGIN_GREEN_POWER_CLIENT_SET_PROXY_ENTRY
/** @} */ // end group plugin-green-power-client
/** @addtogroup plugin-groups-server Plugin Commands: Groups Server /** @addtogroup plugin-groups-server Plugin Commands: Groups Server
* @ingroup cli * @ingroup cli
* The groups server plugin contributes a CLI command to the application * The groups server plugin contributes a CLI command to the application
...@@ -1581,6 +1653,17 @@ ...@@ -1581,6 +1653,17 @@
/** @} */ // end group plugin-eeprom /** @} */ // end group plugin-eeprom
/** @addtogroup plugin-green-power-client Plugin Commands: Green Power Client
* @ingroup cli
* The Green Power Client plugin contributes CLI commands to the application
* framework to be used for getting, setting, and displaying information
* relevant to the Green Power Client cluster.
*
* @{
*/
/** @} */ // end group plugin-green-power-client
/** @addtogroup plugin-groups-server Plugin Commands: Groups Server /** @addtogroup plugin-groups-server Plugin Commands: Groups Server
* @ingroup cli * @ingroup cli
* The groups server plugin contributes a CLI command to the application * The groups server plugin contributes a CLI command to the application
......
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