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 @@
<type>1</type>
<locationURI>STUDIO_SDK_LOC/protocol/zigbee/app/util/common/form-and-join.c</locationURI>
</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>
<name>groups-server/groups-server-cli.c</name>
<type>1</type>
......@@ -425,11 +440,6 @@
<type>1</type>
<locationURI>STUDIO_SDK_LOC/protocol/zigbee/app/framework/plugin/network-steering/network-steering-v2.c</locationURI>
</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>
<name>nvm3/nvm3_lock.c</name>
<type>1</type>
......
......@@ -37,49 +37,89 @@ bool APP_PreCommandHandlerCallback(EmberAfClusterCommand* cmd)
switch(cmd->commandId) {
case (ZCL_OFF_COMMAND_ID):
{
if( (endpoint == 1)&&(sDevice_attr_last.air_condition.on_off) )
if( endpoint == 1 )
{
temp_data = 0;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
if(sDevice_attr_last.air_condition.on_off)
{
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)
// 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;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
if(sDevice_attr_last.floor_heating.on_off)
{
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;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
if(sDevice_attr_last.fan.on_off)
{
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;
case (ZCL_ON_COMMAND_ID):
{
if( (endpoint == 1)&&(sDevice_attr_last.air_condition.on_off == 0) )
if( endpoint == 1)
{
temp_data = 1;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
if(sDevice_attr_last.air_condition.on_off == 0)
{
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)
// 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;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
if(sDevice_attr_last.floor_heating.on_off == 0)
{
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;
Control_MCU(&g_sMsgNode,endpoint,CMD_ON_OFF,temp_data);
kZclClusterSetPermitReportInfo(endpoint, ZCL_ON_OFF_CLUSTER_ID, false, false, false, false);
if(sDevice_attr_last.fan.on_off == 0)
{
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;
......@@ -389,10 +429,9 @@ void kSetBindConfigInfo(BIND_Info_Store* info)
halCommonSetToken(TOKEN_BINDIND_ADDR_TABLE, info);
}
BIND_Info_Store kGetBindConfigInfo(void)
void kGetBindConfigInfo(void)
{
halCommonGetToken(&Bind_Addr_Table, TOKEN_BINDIND_ADDR_TABLE);
return Bind_Addr_Table;
}
void Reset_Binding_Token(void)
......
......@@ -70,7 +70,7 @@ typedef struct
extern DEVICVE_INFO_ST g_sDevice_Info;
uint8_t Read_Zigbee_Version(void);
kk_err_t PrivateClusterHandler(EmberAfClusterCommand* cmd);
BIND_Info_Store kGetBindConfigInfo(void);
void kGetBindConfigInfo(void);
void Reset_Binding_Token(void);
/**********************common interface*******************************/
uint8_t Get_Device_Endpoint(void);
......
......@@ -14,7 +14,7 @@
#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
//单板测试,目前一般是休眠设备需要
......
......@@ -907,6 +907,7 @@ void kOptTunnelWriteAttributeResponseToGateway(uint8_t recordedZclSeq, uint8_t a
//}
emberAfSendResponse(); // sending...
emberAfClearResponseData();
}
/* DESP: Private protocol message(command) write attribute interface
......
......@@ -45,6 +45,7 @@ void kSetOTAStatus(OTAStatusEnum status)
void kOTAMoudleInit(pOTACallback callback, uint8_t led_id)
{
g_pOTACallback = callback;
iKonkeAfSelfPrint("kOTAMoudleInit = 0x%4x\r\n", g_pOTACallback);
g_u8OtaLedId = led_id;
}
......@@ -52,7 +53,7 @@ static bool kOtaGetGpioStatus(GPIO_Port_TypeDef port, unsigned int pin)
{
return GPIO_PinOutGet(port, pin);
}
extern void kOTAMoudleUserCallback(OTAStatusEnum status);
void kOTAMoudleCallback(OTAStatusEnum status)
{
......@@ -72,9 +73,9 @@ void kOTAMoudleCallback(OTAStatusEnum status)
stOTAGpioStatus.gpio[1].port, stOTAGpioStatus.gpio[1].pin);
#endif
}
if (g_pOTACallback){
g_pOTACallback(status);
iKonkeAfSelfPrint("lmmmm -----OTA GPIO KEEP status(%d),addr = 0x%4x\r\n", g_eOTAStatus,kOTAMoudleUserCallback);
if (kOTAMoudleUserCallback){
kOTAMoudleUserCallback(status);
}else {
if (g_u8OtaLedId != LED_UNKNOW_ID){
kOTAMoudleOptCallback(status);
......
......@@ -429,7 +429,6 @@ void kUserNetworkStatusNotify(NwkStatusEnum nwkst )
//恢复所有绑定属性上报使能
//kSystemSetupStatusSet(SETUP_STATUS_EXIT, 10);
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 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)
//退网5S快闪结束后的回调函数,一般用于面板、插座和窗帘面板退网完成后在全部关闭时复位
void kUserNetworkExitCompleteCallback(void)
{
if (kGetFactoryTestStatus() == FTS_FULL_DEVICE_TEST_DONE){
return;
}
emberEventControlSetDelayMS(ikkDelayRebootEventControl, 3000);
// if (kGetFactoryTestStatus() == FTS_FULL_DEVICE_TEST_DONE){
// return;
// }
emberEventControlSetDelayMS(ikkDelayRebootEventControl, 2000);
}
void ikkDelayRebootEventHandler(void)
......@@ -974,9 +973,9 @@ kk_err_t kUserOODMessageIncoming(uint8_t channel, uint8_t opcode, uint8_t args_i
}
iKonkeAfSelfPrint("--------------------------------------\r\n"); //test
if( (g_sDevice_Info.mcu_software_version == 0xff) || //未读取到版本,重新请求一次
((g_sDevice_Info.Device_Type == Device_Type_Air_Condition)&&(g_sDevice_Info.Device_subType == 0)&&
(sDevice_attr_last.air_condition.air_brand == 0xff) ) ) //未读到空调品牌
if( (g_sDevice_Info.mcu_software_version == 0xff)) //|| //未读取到版本,重新请求一次
// ((g_sDevice_Info.Device_Type == Device_Type_Air_Condition)&&(g_sDevice_Info.Device_subType == 0)&&
// (sDevice_attr_last.air_condition.air_brand == 0xff) ) ) //未读到空调品牌
{
Query_MCU_Info();
Rewite_Attr_Witchout_Report();
......@@ -1114,7 +1113,7 @@ void kkSystemSetUpEventHandler(void )
{
case SETUP_STATUS_INIT:
if( emberAfNetworkState() == EMBER_JOINED_NETWORK ) {
kGetBindConfigInfo();
}else {
}
iKonkeAfSelfPrint("System setup event.\r\n");
......
......@@ -1402,7 +1402,7 @@ uint8_t uart_send_data(UMsgNodeSt *uMsgNode,uint8_t ucControl_Field,uint8_t uiSe
uMsgNode->matcher_offset = 4;
uMsgNode->matcher_n = 1;
if(ucControl_Field &0x10)
uMsgNode->sent_try = 2;
uMsgNode->sent_try = 1;
else
uMsgNode->sent_try = 0;
if(isGetResult)
......
......@@ -63,7 +63,7 @@
#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)
......
......@@ -46,9 +46,17 @@ on
off
area name off
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,SCENES_CLUSTER
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,SCENES_CLUSTER
}
......@@ -564,11 +572,14 @@ appPlugin:generic-interrupt-control,true
appPlugin:generic-interrupt-control-stub,false
appPlugin:glib,false
appPlugin:gp-library,false
appPlugin:gp-library,true
appPlugin:gpio-sensor,false
appPlugin:gpio-sensor-stub,false
appPlugin:green-power-client,false
appPlugin:green-power-common,false
appPlugin:green-power-client,true
appPlugin:green-power-common,true
appPlugin:green-power-server,false
appPlugin:groups-client,false
appPlugin:groups-server,true
......@@ -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_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_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_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
......@@ -16,6 +16,8 @@
EmberEventControl emberAfIdentifyClusterServerTickCallbackControl3; \
EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl3; \
extern EmberEventControl emberAfPluginFormAndJoinCleanupEventControl; \
extern EmberEventControl emberAfPluginGreenPowerClientChannelEventControl; \
extern EmberEventControl emberAfPluginGreenPowerClientExitCommissioningEventControl; \
extern EmberEventControl emberAfPluginNetworkSteeringFinishSteeringEventControl; \
extern EmberEventControl emberAfPluginOtaStorageSimpleEepromPageEraseEventControl; \
extern EmberEventControl emberAfPluginReportingTickEventControl; \
......@@ -39,6 +41,8 @@
extern EmberEventControl kUserJoinSucceedProcedureEventControl; \
extern EmberEventControl kkSystemSetUpEventControl; \
extern void emberAfPluginFormAndJoinCleanupEventHandler(void); \
extern void emberAfPluginGreenPowerClientChannelEventHandler(void); \
extern void emberAfPluginGreenPowerClientExitCommissioningEventHandler(void); \
extern void emberAfPluginNetworkSteeringFinishSteeringEventHandler(void); \
extern void emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler(void); \
extern void emberAfPluginReportingTickEventHandler(void); \
......@@ -85,6 +89,8 @@
{ &emberAfIdentifyClusterServerTickCallbackControl3, emberAfIdentifyClusterServerTickCallbackWrapperFunction3 }, \
{ &emberAfOtaBootloadClusterClientTickCallbackControl3, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction3 }, \
{ &emberAfPluginFormAndJoinCleanupEventControl, emberAfPluginFormAndJoinCleanupEventHandler }, \
{ &emberAfPluginGreenPowerClientChannelEventControl, emberAfPluginGreenPowerClientChannelEventHandler }, \
{ &emberAfPluginGreenPowerClientExitCommissioningEventControl, emberAfPluginGreenPowerClientExitCommissioningEventHandler }, \
{ &emberAfPluginNetworkSteeringFinishSteeringEventControl, emberAfPluginNetworkSteeringFinishSteeringEventHandler }, \
{ &emberAfPluginOtaStorageSimpleEepromPageEraseEventControl, emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler }, \
{ &emberAfPluginReportingTickEventControl, emberAfPluginReportingTickEventHandler }, \
......@@ -117,6 +123,8 @@
"Identify Cluster Server EP 3", \
"Over the Air Bootloading Cluster Client EP 3", \
"Form and Join Library Plugin Cleanup", \
"Green Power Client Plugin Channel", \
"Green Power Client Plugin ExitCommissioning", \
"Network Steering Plugin FinishSteering", \
"OTA Simple Storage EEPROM Driver Plugin PageErase", \
"Reporting Plugin Tick", \
......
......@@ -13,6 +13,8 @@
EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl1; \
EmberEventControl emberAfIdentifyClusterServerTickCallbackControl2; \
EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl2; \
EmberEventControl emberAfIdentifyClusterServerTickCallbackControl3; \
EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl3; \
extern EmberEventControl emberAfPluginFormAndJoinCleanupEventControl; \
extern EmberEventControl emberAfPluginNetworkSteeringFinishSteeringEventControl; \
extern EmberEventControl emberAfPluginOtaStorageSimpleEepromPageEraseEventControl; \
......@@ -70,6 +72,8 @@
void emberAfOtaBootloadClusterClientTickCallbackWrapperFunction1(void) { clusterTickWrapper(&emberAfOtaBootloadClusterClientTickCallbackControl1, emberAfOtaBootloadClusterClientTickCallback, 1); } \
void emberAfIdentifyClusterServerTickCallbackWrapperFunction2(void) { clusterTickWrapper(&emberAfIdentifyClusterServerTickCallbackControl2, emberAfIdentifyClusterServerTickCallback, 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
......@@ -78,6 +82,8 @@
{ &emberAfOtaBootloadClusterClientTickCallbackControl1, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction1 }, \
{ &emberAfIdentifyClusterServerTickCallbackControl2, emberAfIdentifyClusterServerTickCallbackWrapperFunction2 }, \
{ &emberAfOtaBootloadClusterClientTickCallbackControl2, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction2 }, \
{ &emberAfIdentifyClusterServerTickCallbackControl3, emberAfIdentifyClusterServerTickCallbackWrapperFunction3 }, \
{ &emberAfOtaBootloadClusterClientTickCallbackControl3, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction3 }, \
{ &emberAfPluginFormAndJoinCleanupEventControl, emberAfPluginFormAndJoinCleanupEventHandler }, \
{ &emberAfPluginNetworkSteeringFinishSteeringEventControl, emberAfPluginNetworkSteeringFinishSteeringEventHandler }, \
{ &emberAfPluginOtaStorageSimpleEepromPageEraseEventControl, emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler }, \
......@@ -108,6 +114,8 @@
"Over the Air Bootloading Cluster Client EP 1", \
"Identify Cluster Server 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", \
"Network Steering Plugin FinishSteering", \
"OTA Simple Storage EEPROM Driver Plugin PageErase", \
......@@ -134,13 +142,15 @@
// 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
#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}, \
{ 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__
......@@ -25,6 +25,9 @@ EmberAfStatus emberAfScenesClusterServerCommandParse(EmberAfClusterCommand *cmd)
// Cluster: On/off, server
EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand *cmd);
// Cluster: Green Power, client
EmberAfStatus emberAfGreenPowerClusterClientCommandParse(EmberAfClusterCommand *cmd);
// Cluster: Thermostat, server
EmberAfStatus emberAfThermostatClusterServerCommandParse(EmberAfClusterCommand *cmd);
......
......@@ -90,14 +90,14 @@ def GBL():
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)
print (" ")
print ("This creates a ZigBee OTA file if the OTA Client Policy Plugin has been enabled.")
print ("It uses the parameters defined there. ")
print (" ")
# 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
OTA_COMMAND = WINE_CMD + IMAGE_BUILDER
OTA_COMMAND = OTA_COMMAND.replace("%PROJECT_DIR%", PROJECT_DIR)
......
......@@ -222,7 +222,7 @@
<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_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>
<name>CCPreprocFile</name>
......@@ -610,7 +610,7 @@
<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_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>
<name>AList</name>
......@@ -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-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\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\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>
......@@ -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-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/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-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>
......
......@@ -150,6 +150,12 @@
#define EMBER_CALLBACK_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING
#define EMBER_CALLBACK_GROUPS_CLUSTER_ENDPOINT_IN_GROUP
#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_READ_REPORTING_CONFIGURATION_COMMAND
#define EMBER_CALLBACK_CLEAR_REPORT_TABLE
......@@ -271,6 +277,25 @@
// Use this macro to check if Generic GPIO Interrupt Controller plugin is included
#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
#define EMBER_AF_PLUGIN_GROUPS_SERVER
......@@ -308,7 +333,7 @@
#define EMBER_AF_PLUGIN_NVM3
// User options for plugin NVM3 Library
#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_USER_REPACK_HEADROOM 0
......@@ -386,7 +411,7 @@
// Use this macro to check if Reporting plugin is included
#define EMBER_AF_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
// Use this macro to check if Scan Dispatch plugin is included
......
......@@ -150,6 +150,12 @@
#define EMBER_CALLBACK_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING
#define EMBER_CALLBACK_GROUPS_CLUSTER_ENDPOINT_IN_GROUP
#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_READ_REPORTING_CONFIGURATION_COMMAND
#define EMBER_CALLBACK_CLEAR_REPORT_TABLE
......@@ -271,6 +277,25 @@
// Use this macro to check if Generic GPIO Interrupt Controller plugin is included
#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
#define EMBER_AF_PLUGIN_GROUPS_SERVER
......@@ -308,7 +333,7 @@
#define EMBER_AF_PLUGIN_NVM3
// User options for plugin NVM3 Library
#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_USER_REPACK_HEADROOM 0
......@@ -344,7 +369,7 @@
#define CUSTOMER_APPLICATION_VERSION EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_FIRMWARE_VERSION
// 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_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_EBL_VERIFICATION
#define EMBER_AF_PLUGIN_OTA_CLIENT_POLICY_DELETE_FAILED_DOWNLOADS
......@@ -386,7 +411,7 @@
// Use this macro to check if Reporting plugin is included
#define EMBER_AF_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
// Use this macro to check if Scan Dispatch plugin is included
......
......@@ -206,12 +206,14 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] =
#define EMBER_AF_GENERATED_PLUGIN_INIT_FUNCTION_DECLARATIONS \
void emberAfPluginEepromInitCallback(void); \
void emberAfPluginGreenPowerClientInitCallback(void); \
void emberAfPluginReportingInitCallback(void); \
void emberAfPluginCountersInitCallback(void); \
#define EMBER_AF_GENERATED_PLUGIN_INIT_FUNCTION_CALLS \
emberAfPluginEepromInitCallback(); \
emberAfPluginGreenPowerClientInitCallback(); \
emberAfPluginReportingInitCallback(); \
emberAfPluginCountersInitCallback(); \
......@@ -225,12 +227,14 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] =
#define EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_DECLARATIONS \
void emberAfPluginGreenPowerClientStackStatusCallback(EmberStatus status); \
void emberAfPluginReportingStackStatusCallback(EmberStatus status); \
void emberAfPluginOtaClientStackStatusCallback(EmberStatus status); \
void emberAfPluginNetworkSteeringStackStatusCallback(EmberStatus status); \
#define EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_CALLS \
emberAfPluginGreenPowerClientStackStatusCallback(status); \
emberAfPluginReportingStackStatusCallback(status); \
emberAfPluginOtaClientStackStatusCallback(status); \
emberAfPluginNetworkSteeringStackStatusCallback(status); \
......@@ -271,11 +275,17 @@ const EmberAfGenericClusterFunction emberAfFuncArrayFanControlClusterServer[] =
{ 0x0019, 0x01, COMMAND_MASK_OUTGOING_CLIENT }, /* Over the Air Bootloading / QueryNextImageRequest */ \
{ 0x0019, 0x03, COMMAND_MASK_OUTGOING_CLIENT }, /* Over the Air Bootloading / ImageBlockRequest */ \
{ 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_INCOMING_SERVER }, /* Thermostat / SetpointRaiseLower */ \
{ 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
#define GENERATED_COMMAND_MANUFACTURER_CODES { \
......
......@@ -42,7 +42,7 @@
// Generated attributes
#define GENERATED_ATTRIBUTES { \
{ 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*/\
{ 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*/\
......
......@@ -1063,7 +1063,9 @@ void emAfStackStatusHandler(EmberStatus status)
emberAfRegistrationAbortCallback();
emberAfRegistrationStartCallback();
} else {
halInternalDisableWatchDog(MICRO_DISABLE_WATCH_DOG_KEY); //lmm add for long reporttablesize cause watchdog reset
emberStartWritingStackTokens();
halInternalWatchDogEnabled();
}
// This kicks off registration for newly joined devices. If registration
......
......@@ -46,9 +46,12 @@ bool emAfPreZDOMessageReceived(EmberNodeId emberNodeId,EmberApsFrame* apsFrame,u
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)
{
return 0; // false
return emAfPluginGreenPowerClientRetrieveAttributeAndCraftResponse(endpoint, clusterId, attrId, mask, maunfacturerCode, readLength); // Plugin: green-power-client
}
// ZigbeeKeyEstablishment function declarations.
......
......@@ -999,6 +999,78 @@
/** @} */ // 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
* @ingroup cli
* The groups server plugin contributes a CLI command to the application
......@@ -1581,6 +1653,17 @@
/** @} */ // 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
* @ingroup cli
* 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