CC2538基于HOME 1.2.2的SampleDoorLockController例程
1.因为我们的其他应用都是基于该例程做的,现在增加了对ZLL灯的控制,基于该例程可以吗?
2.这个例程里zclSampleDoorLockController_event_loop里有个case MT_SYS_APP_MSG:
一直看一下会有ZCL_GROUPS 和ZCL_SCENES 相关的功能,但是灯入网后,协调器怎么才能触发 ZCL_GROUPS 和ZCL_SCENES 相关的功能?
#ifdef ZCL_GROUPS
case ZCL_CLUSTER_ID_GEN_GROUPS:
zclSampleDoorLockController_ProcessGroupCmd( srcEP, dstAddr, clusterID, hdr, len, data );
break; #endif // ZCL_GROUPS
#ifdef ZCL_SCENES
case ZCL_CLUSTER_ID_GEN_SCENES:
zclSampleDoorLockController_ProcessSceneCmd( srcEP, dstAddr, clusterID, hdr, len, data );
break; #endif // ZCL_SCENES
Alvin Chen:
建议你还是基于Light和Switch 那个demo,至于如何天际ZCL_GROUPS 和ZCL_SCENES 你需要参考原来的ZLLsdk 去添加。
user5367314:
回复 Alvin Chen:
测试遇到一个现象,灯入网后,协调器把灯加到一个group,
然后可以控制灯,把灯断电后依然可以控制,
但是把协调器断电重启后就不能直接控制了,必须要重新再把灯加入group才能控制,
请问这是正常的吗?
Alvin Chen:
回复 user5367314:
你不是协调器有NV ? 是不是把这个NV给擦除了
static void zllSampleRemote_BasicResetCB( void )
{// Reset all attributes to default valueslinkedAddrNum = 0;linkedAddrNextIdx = 0;linkedAddrSelIdx = 0;osal_memset( &linkedTargets, 0xFF, sizeof(linkedTargets));osal_memset( &controlledGroups, 0x00, sizeof(controlledGroups));
#if defined ( NV_RESTORE )osal_nv_write( ZCD_NV_ZLL_REMOTE_LINK_TARGETS, 0, sizeof( linkedTargets ), &linkedTargets );osal_nv_write( ZCD_NV_ZLL_REMOTE_CTRL_GROUPS, 0, sizeof( controlledGroups ), &controlledGroups );
#endif
}
YiKai Chen:
回复 user5367314:
协调器有沒有使能NV_RESTORE?
user5367314:
回复 Alvin Chen:
这个函数是默认的如下,我没动过
static void zclSampleDoorLockController_BasicResetCB( void )
{// Put device back to factory default settingszgWriteStartupOptions( ZG_STARTUP_SET, 3 );// bit set both default configuration and default network
// restart deviceMT_SysCommandProcessing( aProcessCmd );
}
Alvin Chen:
回复 user5367314:
你看看你的NV有没有问题,这个组信息是写进NV里面的。
user5367314:
回复 YiKai Chen:
协调器开启了NV
user5367314:
回复 YiKai Chen:
是不是还需要添加什么代码?现在的情况协调器一重启就不能控制灯了,必须重新再加组
YiKai Chen:
回复 user5367314:
协调器开启了NV照理來說應該沒有這個問題,建議你抓包看一下狀況
user5367314:
回复 YiKai Chen:
NV是开启了,但是group信息需要自己添加代码存到里面去吧?然后上电的时候再读取出来恢复
TI中文支持网