1.第一static void zclSampleLight_MoveBasedOnRate( uint8 newLevel, uint32 rate ) {uint32 diff;// determine how much time (in 10ths of seconds) based on the difference and rate 根据差值和速率来确定时间zclSampleLight_Rate32 = rate;diff = zclSampleLight_TimeRateHelper( newLevel );zclSampleLight_LevelRemainingTime = diff / rate;if ( !zclSampleLight_LevelRemainingTime ){zclSampleLight_LevelRemainingTime = 1;}osal_start_timerEx( zclSampleLight_TaskID, SAMPLELIGHT_LEVEL_CTRL_EVT, 100 );
}
请问一下这个函数的作用是什么,还有什么是平滑过渡呢,他在zigbee中有什么作用?
2.第二// Toggle the lightelse if ( cmd == COMMAND_TOGGLE ){ #ifdef ZCL_LEVEL_CTRLif (zclSampleLight_LevelRemainingTime > 0){if (zclSampleLight_NewLevelUp){OnOff = LIGHT_OFF;}else{OnOff = LIGHT_ON;}}else{if (zclSampleLight_OnOff == LIGHT_ON){OnOff = LIGHT_OFF;}else{OnOff = LIGHT_ON;}}在这个灯转换中
zclSampleLight_LevelRemainingTime 他的作用又是什么呢。。请ti的大神们指导一下,谢谢
user5764532:
回复 YiKai Chen:
谢谢您,请问一下这种机制有没有具体的学习资料用来学习呢?
YiKai Chen:
回复 user5764532:
好像沒有,就是很直覺的作法,你看一下源碼大概就清楚了
user5764532:
回复 YiKai Chen:
嗯嗯,好的谢谢您的热心解答
miffy:
zclSampleLight_LevelRemainingTime就是表示比如你从亮度100到1的过程,还剩下多少时间,代码里面的实现是开一个定时器,收到transTime以后,对亮度进行渐变,最终走到指定的亮度,看一下代码就知道怎么回事了,只看变量名字不知其所以然。