请问 将ZLL Light 上电,按住ZLL Light上按键,保持>10s松开,ZLL Light会触发Classic Commission Join的方式开始加网过程。这里ZLL Light上按键是在哪个程序文件里?
Alvin Chen:
你说的是按键驱动?
就在工程里面hal_key.c
static void zllSampleLight_HandleKeys( byte shift, byte keys ) {(void)shift;// Intentionally unreferenced parameter #ifdef HAL_BOARD_ZLIGHT// Zlight has only a single buttonstatic 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;}} #else //HAL_BOARD_CC2530EB ?if ( keys & CLASSIC_COMMISS_KEY ){zllTarget_ClassicalCommissioningStart();}if ( keys & FACTORY_RESET_KEY ){zllTarget_ResetToFactoryNew();}if ( keys & PERMIT_JOIN_KEY ){zllTarget_PermitJoin( PERMIT_JOIN_DURATION );HalLcdWriteString( "PermitJoin", HAL_LCD_LINE_3 );}if ( keys & DISPLAY_NWK_KEY_KEY ){ #if ( HAL_LCD == TRUE )zllSampleLight_PrintNwkKey( FALSE ); #endif //( HAL_LCD == TRUE )}#endif //HAL_BOARD_ZLIGHT }
user4494228:
回复 Alvin Chen:
在samplelight _ZLight_Router工程里没有找到hal_key.c文件。只看到hal_key.h
YiKai Chen:
回复 user4494228:
user4494228:
回复 YiKai Chen:
user4494228:
回复 user4494228:
陈工我的这部分内容在zll_samplelight.c,在zll_samplelight.c没有这部分内容,我灯板上没有按键,我看你们介绍是按住ZLL Light上按键,保持>10s松开,ZLL Light会触发Classic Commission Join的方式开始加网过程。我想改成一上电就触发Classic Commission Join的方式开始加网过程,应该屏蔽哪个代码。
user4494228:
回复 user4494228:
在hal_key.c里没有你发的这部分内容,不知是不是版本不一样。
YiKai Chen:
回复 user4494228:
直接在 "if ( keys ) {…}"裡面作就好
YiKai Chen:
回复 user4494228:
在zclSampleLight_HandleKeys里面,你的截圖裡面就有
Alvin Chen:
回复 user4494228:
如果你想上电触发,需要把这个zllTarget_ClassicalCommissioningStart();放在你启动程序中。
建议参考:
e2echina.ti.com/…/87636
user4494228:
回复 Alvin Chen:
陈工 参考上电触发加了这段后要定义 SAMPLELIGHT_START_EVT,这个如何定义