找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

查看: 2988|回复: 3

[CSR8系列] 8670 sink 源文件讨论2

[复制链接]
连续签到天数:1天
签到总天数:29天
签到总奖励:179金币
发表于 2015-1-11 19:13:04 | 显示全部楼层 |阅读模式

马上注册,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册  

×
每帖能发的字数太少,能不能给提提,2w字??
void LedsInit ( void )
{
        /*Set the callback handler for the task*/
    theSink.theLEDTask->task.handler = LedsMessageHandler ;
    static void LedsMessageHandler( Task task, MessageId id, Message message )
    {  
        /*id首先来确定是不是DIM Update ,如果ID<DIM_MSG_BASE就是非DIM Update,
        然后ID用来确定使用哪个gActiveLEDS*/
        bool lOldState = LED_OFF ;
        uint16 lTime   = 0 ;
        LEDColour_t lColour ;   
   
        LEDActivity_t * lLED   = &theSink.theLEDTask->gActiveLEDS[id] ;
        LEDPattern_t *  lPattern = NULL ;
        bool lPatternComplete = FALSE ;
        
        if (id < DIM_MSG_BASE )
        {
        
            /*which pattern are we currently indicating for this LED pair*/
            /*这段是来选择哪种pattern显示,有gActiveLEDs里面的Type来决定*/
            if ( lLED->Type == IT_StateIndication)
            {
                /* this is a STATE indication */        
                lPattern = &theSink.theLEDTask->gStatePatterns[ lLED->Index] ;
            }
            else
            {   /*is an event indication*/
                lPattern = &theSink.theLEDTask->pEventPatterns [ lLED->Index ] ;
            }
        
            /* get which of the LEDs we are interested in for the pattern we are dealing with */
            /*        这个函数主要是取出使用哪个LED,首先检测LEDtask里面的gTheActiveFiltersH,
                gTheActiveFiltersL,如果有event使能就检测相应gEventFilters里面的colour是否是
                LED_COL_EITHER,如果不是就强制使用gEventFilters里定义的LED.*/
            lColour = LedsGetPatternColour ( lPattern ) ;


            /*get the state of the LED we are dealing with*/
            /*省略掉theSink.theLEDTask->后,
            实际上lOldState=gActiveLEDS[gStatePatterns[gActiveLEDS[id]->Index]->LED_A].OnOrOff
            或者是lOldState=gActiveLEDS[pEventPatterns[gActiveLEDS[id]->Index]->LED_A].OnOrOff */
            lOldState = theSink.theLEDTask->gActiveLEDS [ lPattern->LED_A ].OnOrOff ;
     
            LED_DEBUG(("LM : LED[%d] [%d] f[%d]of[%d]\n", id ,lOldState , lLED->NumFlashesComplete , lPattern->NumFlashes )) ;
            
            /*  is LED currently off? */
            if (lOldState == LED_OFF)/*当前led关着*/
            {
                /* led is off so start the new pattern by turning LED on */
                lTime = LED_SCALE_ON_OFF_TIME(lPattern->OnTime) ;/* Ontime*10*倍数才是真正的时间,倍数在feature_config_type里定义 */
                /* #define LED_SCALE_ON_OFF_TIME(x) (uint16)((x * 10) << theSink.features.LedTimeMultiplier )*/


                LED_DEBUG(("LED: set ON time [%x]\n",lTime)) ;   
               
                /*Increment the number of flashes*/
                lLED->NumFlashesComplete++ ;/*NumFlashesComplete 应该是当前flash数的记录,估计是个递减的。*/
                  
                LED_DEBUG(("LED: Pair On\n")) ;
                LedsTurnOnLEDPair ( lPattern , lLED ) ;/*active pattern 俩个结构体都传递过来*/
            
            }



楼主热帖
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
连续签到天数:1天
签到总天数:380天
签到总奖励:6129金币
发表于 2015-1-12 16:05:32 | 显示全部楼层
太给力啦~~~
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:666天
签到总奖励:9548金币
发表于 2015-1-12 19:08:45 | 显示全部楼层
持续关注
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:2天
签到总天数:2316天
签到总奖励:64359金币
发表于 2015-1-12 21:01:56 | 显示全部楼层
支持呀 字数不够,搞成Word上传就可以了
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2024-4-28 20:15 , Processed in 0.214251 second(s), 18 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表