ZHA 按键如何实现识别长按短按
如题如何实现长短按
请在官网下载Z-Stack Light 协议栈,在里面Zlight的设备里面,实现了这个功能,你可以看下
static void zllSampleLight_HandleKeys( byte shift, byte keys )
{
(void)shift; // Intentionally unreferenced parameter
#ifdef HAL_BOARD_ZLIGHT
// Zlight has only a single button
static uint32 keyPressTime = 0;
if ( keys )
{
keyPressTime = osal_getClock();
}
else //key released
{
if ( keyPressTime )
{
keyPressTime = ( osal_getClock() - keyPressTime );
if ( keyPressTime <= KEY_HOLD_SHORT_INTERVAL )
{
zllTarget_PermitJoin( PERMIT_JOIN_DURATION );
}
else if ( keyPressTime > KEY_HOLD_LONG_INTERVAL )
{
zllTarget_ClassicalCommissioningStart();
}
else
{
zllTarget_ResetToFactoryNew();
}
keyPressTime = 0;
}
}
你好,我想现在也遇到了同样的问题,把zll的例子研究了一天,想改成自己的按键引脚,怎么都实现不了,长按和短按的功能,请问你是怎么实现的,能不能分享下,太谢谢你了!
这部分的代码都是公开的,你要先确定下你使用的I/O口,协议栈里面有没有其他的地方使用到。
不好意思 大牛 ~~本人小白 有点问题请求 ~~望赐教
为什么我按照你的代码写 zigbee开发板上的按钮并没有根据长按而发送指定的消息~~~