亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dali_lib.c

?? avr atmega frimily 使用PWM控制交流電機
?? C
?? 第 1 頁 / 共 2 頁
字號:
    {
        // Care with 'rec_add': 7-bit variable
        if ((rec_add & 0x70) == 0x40) add_type = GROUP_ADD_TYPE;
        else
        {
            // Care with 'rec_add': 7-bit variable
            if ((rec_add & 0x7F) == 0x7F) add_type = BROAD_ADD_TYPE;
            else
            {
                // Special commands are broadcast commands
                // Care with 'rec_add': 7-bit variable
                if ( (((rec_add & 0x70) == 0x50) || ((rec_add & 0x70) == 0x60)) && (direct_cmd == FALSE) )
                {
                    add_type = BROAD_ADD_TYPE;
                    special_cmd = TRUE;
                }
                else
                {
                    st_mess->p_cc = 0;
                    st_mess->dtr = rec_add;     // For debugging if needed, care: 7-bit variable
                    st_mess->status =  DALI_RX_NO_ADD_TYPE;
                    Dali_slave_disable();
                    return DALI_STATUS_ERROR;
                }
            }
        }
    }

//----- Address_Range_Test
    if (add_type != BROAD_ADD_TYPE)
    {
        if (add_type == SHORT_ADD_TYPE)
        {
            // Care with 'rec_add': 7-bit variable
            if ((st_mess->short_add) != rec_add)
            {
                st_mess->p_cc = 0;
                st_mess->dtr = rec_add;     // For debugging if needed
                st_mess->status =  DALI_RX_ADD_OUT_RANGE;
                Dali_slave_disable();
                return DALI_STATUS_ERROR;
            }
        }
        else
        {
            // Care with 'rec_add': 7-bit variable
            if (((st_mess->group) & (1 << (rec_add & 0x0F))) == 0)
            {
                st_mess->p_cc = 0;
                st_mess->dtr = rec_add & 0x0F;     // For debugging if needed
                st_mess->status = DALI_RX_ADD_OUT_RANGE;
                Dali_slave_disable();
                return DALI_STATUS_ERROR;
            }
        }
    }

//----- Get-Command_Code (c.f. dali_lib.h file)
    rec_data = (U8)(rec_dali & 0x00FF);

    // Output direct arc power control command
    if (direct_cmd == TRUE)
    {
        st_mess->p_cc = 0;
        st_mess->dtr = rec_data;
        st_mess->g_code = DIRECT_ARC_POWER_CONTROL;
        if      (add_type == SHORT_ADD_TYPE) st_mess->status = DALI_RX_CODE_SHORT ;
        else if (add_type == GROUP_ADD_TYPE) st_mess->status = DALI_RX_CODE_GROUP ;
        else                                 st_mess->status = DALI_RX_CODE_BROAD ;
        Dali_slave_disable();
        return DALI_STATUS_COMPLETED;
    }

    if (special_cmd == FALSE)
    {
        // Test: Indirect arc power control commands
        if      (  (rec_data >= ((U8)(IMMEDIATE_OFF & 0xFF))) && (rec_data <= ((U8)(ON_AND_STEP_UP & 0xFF))) )
                {   code_type = CT01; }
        else if ( ((rec_data & 0xF0) == ((U8)(GO_TO_SCENE & 0xFF))) )
                {   code_type = CT02; }
        // Test: Configuration commands (must be received twice, c.f. "CMD_RX_CMD_2ND")
        else if (  (rec_data == ((U8)(RESET & 0xFF))) || (rec_data == ((U8)(STORE_ACTUAL_DIM_LEVEL_IN_DTR & 0xFF))) )
                {   if (rec_dali == st_mess->p_cc) code_type = CT01; else code_type = CT11;}
        else if (  (rec_data >= ((U8)(STORE_THE_DTR_AS_MAX_LEVEL & 0xFF))) && (rec_data <= ((U8)(STORE_THE_DTR_AS_FADE_RATE & 0xFF))) )
                {   if (rec_dali == st_mess->p_cc) code_type = CT01; else code_type = CT11;}
        else if ( ((rec_data & 0xF0) >= ((U8)(STORE_THE_DTR_AS_SCENE & 0xFF))) && ((rec_data & 0xF0) <= ((U8)(REMOVE_FROM_GROUP & 0xFF))) )
                {   if (rec_dali == st_mess->p_cc) code_type = CT02; else code_type = CT12;}
        else if (  (rec_data == ((U8)(STORE_DTR_AS_SHORT_ADDRESS & 0xFF))) )
                {   if (rec_dali == st_mess->p_cc) code_type = CT01; else code_type = CT11;}
        // Test: Query commands (answer needed, c.f. "CMD_TX_ANSWER")
        else if ( (rec_data >= ((U8)(QUERY_STATUS & 0xFF))) && (rec_data <= ((U8)(QUERY_POWER_FAILURE & 0xFF))) )
                {   code_type = CT21; }
        else if (  (rec_data >= ((U8)(QUERY_ACTUAL_LEVEL & 0xFF))) && (rec_data <= ((U8)(QUERY_FADE & 0xFF))) )
                {   code_type = CT21; }
        else if (  ((rec_data & 0xF0) == ((U8)(QUERY_SCENE_LEVEL & 0xFF))) )
                {   code_type = CT22; }
        else if (  (rec_data >= ((U8)(QUERY_GROUPS_0_7 & 0xFF))) && (rec_data <= ((U8)(QUERY_RANDOM_ADDRESS_L & 0xFF))) )
                {   code_type = CT21; }
        else if ( ((rec_data & 0xE0) == ((U8)(QUERY_APPLICATION_EXTENTED_COMMAND & 0xFF))) )
                {   code_type = CT23; }     // For '0xE0', verify Standard Command code for QUERY_APPLICATION_EXTENTED_COMMAND
        else    {   code_type = CT00; }
    }
    else    // special_cmd == TRUE
    {
        // Test: Special commands
        if      (   rec_dali == TERMINATE)
                {   code_type = CT09; }
        else if ( ((rec_dali & 0xFF00) == DATA_TRANSFER_REGISTER) || ((rec_dali & 0xFF00) == INITIALISE) )
                {   code_type = CT0D; }
        else if ( ( rec_dali == RANDOMISE) || ( rec_dali == COMPARE)  || ( rec_dali == WITHDRAW) )
                {   code_type = CT09; }
        else if ( ((rec_dali & 0xFF00) == SEARCHADDRH) || ((rec_dali & 0xFF00) == SEARCHADDRM) || ((rec_dali & 0xFF00) == SEARCHADDRL) )
                {   code_type = CT0D; }
        else if ( ((rec_dali & 0xFF81) == (PROGRAM_SHORT_ADDRESS+1)) || ((rec_dali & 0xFF81) == (VERIFY_SHORT_ADDRESS+1)) )
                {   code_type = CT0C; }
        else if (   rec_dali == QUERY_SHORT_ADDRESS )
                {   code_type = CT29; }
        else if (   rec_dali == PHYSICAL_SELECTION )
                {   code_type = CT09; }
        else if ( ((rec_dali & 0xFF00) == ENABLE_DEVICE_TYPE_X) )
                {   code_type = CT0D; }
        else    {   code_type = CT00; }
    }

//----- Update message structure and return value
    // Update message structure and return value for CT00
    if (code_type == CT00)
    {
        st_mess->g_code = NO_DALI_COMMAND_CODE;
        st_mess->dtr = rec_add;      // For debugging if needed
        st_mess->p_cc = 0;
        st_mess->status = DALI_RX_CODE_ERROR;
        Dali_slave_disable();
        return DALI_STATUS_ERROR;
    }

    // Only update message structure
    switch (code_type & 0x0F)
    {
        case CTX1:
            st_mess->g_code = ((U16)(rec_data)) | 0x0100;
            st_mess->dtr = 0;
        break;

        case CTX2:
            st_mess->g_code = ((U16)(rec_data & 0xF0)) | 0x0100;
            st_mess->dtr = rec_data & 0x0F;
        break;

        case CTX3:
            st_mess->g_code = ((U16)(rec_data & 0xE0)) | 0x0100;     // For '0xE0', verify Standard Command code List
            st_mess->dtr = rec_data & 0x1F;     // For '0x1F', verify Standard Command code List
        break;

        case CTX9:
            st_mess->g_code = rec_dali;
            st_mess->dtr = 0;
        break;

        case CTXC:
            st_mess->g_code = (rec_dali & 0xFF00);
            st_mess->dtr = rec_data >> 1;
        break;

        case CTXD:
            st_mess->g_code = (rec_dali & 0xFF00);
            st_mess->dtr = rec_data;
        break;

        default:    // Ooops! Here some code is necessary
            st_mess->g_code = NO_DALI_COMMAND_CODE;
            st_mess->p_cc = st_mess->dtr = 0;
            st_mess->status = DALI_RX_CODE_ERROR;
            Dali_slave_disable();
            return DALI_STATUS_ERROR;
        break;
    }

    // Only update message structure
    switch (code_type & 0xF0)
    {
        case CT0X:      // Commands
            st_mess->p_cc = 0;   // Kind of reset of previous DALI Command Code
            if      (add_type == SHORT_ADD_TYPE) st_mess->status = DALI_RX_CODE_SHORT;
            else if (add_type == GROUP_ADD_TYPE) st_mess->status = DALI_RX_CODE_GROUP;
            else                                 st_mess->status = DALI_RX_CODE_BROAD;
            Dali_slave_disable();
            return  DALI_STATUS_COMPLETED;
        break;

        case CT1X:      // Configuration
            st_mess->p_cc = rec_dali;   // Recording previous DALI Command Code
            st_mess->handle = 0;        // Reset Time-count
            if      (add_type == SHORT_ADD_TYPE) st_mess->status = DALI_RX_2ND_CODE_NEEDED_SHORT;
            else if (add_type == GROUP_ADD_TYPE) st_mess->status = DALI_RX_2ND_CODE_NEEDED_GROUP;
            else                                 st_mess->status = DALI_RX_2ND_CODE_NEEDED_BROAD;
            return  DALI_STATUS_NOT_COMPLETED;
        break;

        case CT2X:      // Queries
            st_mess->p_cc = 0;   // Kind of reset of previous DALI Command Code
            st_mess->handle = 0;        // Reset Time-count
            if      (add_type == SHORT_ADD_TYPE) st_mess->status = DALI_RX_QUERY_SHORT;
            else if (add_type == GROUP_ADD_TYPE) st_mess->status = DALI_RX_QUERY_GROUP;
            else                                 st_mess->status = DALI_RX_QUERY_BROAD;
            Dali_slave_disable();
            return  DALI_STATUS_COMPLETED;
        break;

        default:    // Ooops! Here some code is necessary
            st_mess->g_code = NO_DALI_COMMAND_CODE;
            st_mess->p_cc = st_mess->dtr = 0;
            st_mess->status = DALI_RX_CODE_ERROR;
            Dali_slave_disable();
            return DALI_STATUS_ERROR;
        break;
    }
    // Usually, unreachable code !
    Dali_slave_disable();
    return DALI_STATUS_ERROR;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99九九99九九九视频精品| 国产成人自拍在线| 成人av资源下载| 亚洲色图.com| 国内精品伊人久久久久av影院| 91精品福利视频| 亚洲最大色网站| 欧美性淫爽ww久久久久无| 一区二区三区四区不卡视频 | 国产人伦精品一区二区| 国产一区二区三区久久悠悠色av| 久久久不卡网国产精品二区| 国产精品亚洲一区二区三区在线| 国产日韩欧美精品在线| 成人午夜av影视| 亚洲一区视频在线观看视频| 91精品欧美久久久久久动漫| youjizz久久| 亚洲精品美腿丝袜| 欧美日本一道本在线视频| 蜜臀精品一区二区三区在线观看| 日韩精品资源二区在线| www.日韩在线| 日韩国产在线一| 国产三级欧美三级| 9191成人精品久久| jizz一区二区| 免费观看一级特黄欧美大片| 国产精品乱码一区二区三区软件| 色噜噜偷拍精品综合在线| 五月婷婷综合在线| 久久精品欧美日韩| 91 com成人网| 日本高清不卡视频| a在线欧美一区| 美女精品自拍一二三四| 亚洲女人小视频在线观看| 久久久久久久久99精品| 777奇米四色成人影色区| 91久久人澡人人添人人爽欧美 | 欧美视频在线观看一区| 男女性色大片免费观看一区二区 | 亚洲黄色片在线观看| 欧美va亚洲va国产综合| 欧美一区午夜精品| 91精品国产91久久久久久一区二区| av电影在线观看一区| 成人永久aaa| 成人性生交大合| 国产福利91精品一区| 国产乱码一区二区三区| 国产在线观看一区二区| 国产在线视频不卡二| 久久成人久久爱| 韩国v欧美v日本v亚洲v| 国产激情精品久久久第一区二区 | www.视频一区| 色吊一区二区三区| 欧洲一区在线电影| 欧美福利视频一区| 精品国产一区久久| 国产精品欧美精品| 亚洲国产乱码最新视频 | 91亚洲精品一区二区乱码| 色天使色偷偷av一区二区| 在线观看一区不卡| 欧美一区二区三区的| 久久综合九色欧美综合狠狠| 1024国产精品| 久久精品国产亚洲高清剧情介绍 | 黄色资源网久久资源365| 成人一区二区三区中文字幕| 欧美丝袜第三区| 午夜国产精品影院在线观看| 国产伦精品一区二区三区视频青涩| 成人精品鲁一区一区二区| 717成人午夜免费福利电影| 国产精品色呦呦| 午夜电影网亚洲视频| 岛国一区二区在线观看| 3d成人h动漫网站入口| 国产精品久久久久久妇女6080| 免费高清在线一区| 成人国产亚洲欧美成人综合网| 欧美日韩电影一区| 亚洲人成精品久久久久久| 国产自产高清不卡| 欧美一级在线视频| 亚洲综合色视频| bt欧美亚洲午夜电影天堂| 2020国产精品| 精品一二三四区| 欧美mv日韩mv国产网站| 久久精品国产99国产精品| 在线免费av一区| 亚洲成人免费视| 欧美午夜寂寞影院| 国产成人免费在线| 久久免费偷拍视频| 国产sm精品调教视频网站| 日韩一区二区三区视频在线 | 亚洲精品免费播放| 久久99精品久久只有精品| 欧美日韩一级大片网址| 亚欧色一区w666天堂| 日韩美女一区二区三区四区| 蜜臀av亚洲一区中文字幕| 欧美一区二区免费视频| 国产伦精品一区二区三区在线观看| 中文字幕av不卡| 在线精品视频免费观看| 日韩成人免费在线| 久久久国际精品| 欧美色中文字幕| 捆绑变态av一区二区三区| 中文字幕中文在线不卡住| 欧美亚洲高清一区| 九九精品视频在线看| 成人欧美一区二区三区小说| 91精品国产日韩91久久久久久| 国产一区高清在线| 亚洲成av人片| 中文字幕日韩av资源站| 欧美精选在线播放| 不卡免费追剧大全电视剧网站| 樱花影视一区二区| 欧美精品一区二区三区在线| 在线影院国内精品| 成人免费看黄yyy456| 日本中文字幕一区| 国产激情视频一区二区在线观看| 一区二区三区电影在线播| 久久一二三国产| 日韩一二三区不卡| 欧美日韩国产美| 欧洲一区二区av| 色婷婷激情综合| 色综合久久久久综合99| av色综合久久天堂av综合| 国产一区二区三区黄视频| 青青草国产成人99久久| 日本不卡高清视频| 日韩中文字幕1| 亚洲一区二区三区在线看| 最近中文字幕一区二区三区| 国产精品久久久久久久蜜臀| 国产精品传媒入口麻豆| 欧美激情中文不卡| 国产亚洲视频系列| 欧美激情在线看| 国产精品美女www爽爽爽| 中文字幕在线观看一区| 一区二区三区四区不卡在线| 亚洲美女视频在线观看| 一卡二卡欧美日韩| 日韩电影免费在线观看网站| 七七婷婷婷婷精品国产| 国产精品123| 色综合夜色一区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 色婷婷亚洲精品| 精品国产91洋老外米糕| 国产精品全国免费观看高清 | 一区二区三区不卡在线观看| 日韩精品电影一区亚洲| 国模冰冰炮一区二区| 91美女精品福利| 日韩欧美色综合网站| 国产精品女同一区二区三区| 午夜精品一区二区三区免费视频| 久久国产精品无码网站| 99re这里都是精品| 日韩欧美国产1| 一区二区三区自拍| 奇米影视在线99精品| 色综合天天综合网天天看片| 亚洲精品在线免费观看视频| 一区二区欧美国产| 懂色av一区二区三区蜜臀| 亚洲精品国产a久久久久久 | 国产精品一区二区三区99| 欧美三级日韩在线| 国产精品不卡视频| 成人激情小说乱人伦| 久久精品亚洲精品国产欧美| 三级一区在线视频先锋| 91黄色小视频| 亚洲欧美视频一区| 91蜜桃在线免费视频| 久久久三级国产网站| 免费欧美高清视频| 欧美一区二区三区四区视频 | 精品少妇一区二区三区视频免付费 | 亚洲影院免费观看| 91在线小视频| 亚洲影院免费观看| 日韩一区二区在线观看视频播放| 亚洲成人午夜影院| 91精品蜜臀在线一区尤物| 日本欧美肥老太交大片|