求问 ZLL Remote遥控器 HAL_BOARD_CC2530EB_REV17 对应按键IO口
我用的是ZLL 1.0.2,SampleRemote选择EB-EndDevice。
1)zll_sampleremote.c中有定义(最下面的代码),求问这里面HAL_KEY_LEFT, RIGHT, UP, DOWN, CENTER按键分别对应哪些IO口,我在哪里可以修改IO口配置?
2)我屏蔽了KEY CHANGE检测,直接执行zllInitiator_StartDevDisc();语句,但是和烧写Zlight-Router的灯没有成功Touch Link(灯是灭的,没有闪一下)。不知直接执行zllInitiator_StartDevDisc();是否应该能够Touch Link,还是少了什么步骤。(因为我看如果用按键进行Touch Link,程序一样走到zllInitiator_StartDevDisc();)
3)下面这个代码是检测什么?我每次总会进入这个if,然后return掉,无法执行后面的if。
if ( events & SAMPLEREMOTE_IDENTIFY_TIMEOUT_EVT )
{
if ( zllSampleRemote_IdentifyTime > 0 )
zllSampleRemote_IdentifyTime--;
zllSampleRemote_ProcessIdentifyTimeChange();
return ( events ^ SAMPLEREMOTE_IDENTIFY_TIMEOUT_EVT );
}
求大牛赐教~
================================================================
#elif defined (HAL_BOARD_CC2530EB_REV17) //HAL_BOARD_CC2530EB
#define TOUCH_LINK_KEY HAL_KEY_LEFT
#define FACTORY_RESET_KEY HAL_KEY_RIGHT
#define SEND_FACTORY_RESET_KEY 0
#define LEVEL_UP_KEY (HAL_KEY_UP | HAL_KEY_SW_6)
#define LEVEL_DN_KEY (HAL_KEY_DOWN | HAL_KEY_SW_6)
#define ON_KEY HAL_KEY_UP
#define OFF_KEY HAL_KEY_DOWN
#define GROUP_ADD_KEY HAL_KEY_CENTER
#define GROUP_REMOVE_KEY 0
#define DEV_SEL_UP_KEY (HAL_KEY_RIGHT | HAL_KEY_SW_6)
#define DEV_SEL_DN_KEY (HAL_KEY_LEFT | HAL_KEY_SW_6)
#define GROUP_1_SEL_KEY 0
#define GROUP_2_SEL_KEY 0
#define GROUP_3_SEL_KEY 0
#define SCENE_STORE_KEY 0
#define SCENE_RECALL_KEY 0
#define SCENE_1_SEL_KEY 0
#define SCENE_2_SEL_KEY 0
#define SCENE_3_SEL_KEY 0
#define HUE_UP_KEY 0
#define HUE_DN_KEY 0
#define SAT_UP_KEY 0
#define SAT_DN_KEY 0
#define HUE_RED_KEY 0
#define HUE_GREEN_KEY 0
#define HUE_YELL_KEY 0
#define HUE_BLUE_KEY 0
#define CH_CHANGE_KEY 0
#define CLASSIC_COMMISS_KEY (HAL_KEY_CENTER | HAL_KEY_SW_6)
#define HA_BIND_KEY 0
#define RELEASE_KEY 0
对于Zstack的按键检测机制可以上网查找一下,有很多资料都有讲到,等你把zstack中的按键检测响应流程弄明白了,相信你的问题也就迎刃而解了
多谢回复~
但是这个是Zstack Light Link,定义的按键和zstack不大一样,我在TI上只找到ZLLRC对应的原理图,EB的没有找到……求大牛指教
在TI网上搜 CC2530ZDK 然后下面很多文档就来了
if ( events & SAMPLEREMOTE_IDENTIFY_TIMEOUT_EVT ) { if ( zllSampleRemote_IdentifyTime > 0 ) zllSampleRemote_IdentifyTime--; zllSampleRemote_ProcessIdentifyTimeChange(); return ( events ^ SAMPLEREMOTE_IDENTIFY_TIMEOUT_EVT ); }
这段代码什么作用呢,,感觉他有循环执行
是的。
你可以参考ZigBee Light Link Specification看下Identity的作用