1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        DTFrame鴻蒙設(shè)備開發(fā)的“一鍵調(diào)用”框架

        聯(lián)合創(chuàng)作 · 2023-09-28 10:25

        DTFrame 是一個(gè)為鴻蒙設(shè)備開發(fā)而打造的“一鍵調(diào)用”框架。

        框架設(shè)計(jì)文章

        1. 實(shí)現(xiàn)按鍵“按下事件”和“釋放事件”的通用框架(V0.0.1)
        2. 實(shí)現(xiàn)物理按鍵的“長(zhǎng)按事件”(按鍵通用框架 V0.0.2
        3. 實(shí)現(xiàn)S1,S2,User三個(gè)物理按鍵的獨(dú)立事件-上(解決思路分析)
        4. 實(shí)現(xiàn)S1,S2,User三個(gè)物理按鍵的獨(dú)立事件-下(DTButton-V0.0.3)

        代碼示例

        DTButton

        static void Button_Callback(const char* sender, BtnEvent event)
        {
            printf("[dt4sw] Button_Callback() : %s -> %d\n", sender, event);
        
            if( event == Pressed )     { /* Pressed == 1     按下事件處理代碼 */ }
            if( event == LongPressed ) { /* LongPressed == 2 長(zhǎng)按事件處理代碼 */ }
            if( event == Released )    { /* Released == 4    釋放事件處理代碼 */ }
        }
        
        static void* DTBtnDemo_Task(const char* arg)
        {
            int ret = 0;
        
            printf("[dt4sw] DTBtnDemo_Task()\n");
        
            ret += DTButton_Init(); // 初始化按鍵事件處理上下文
        
            /* 設(shè)置GPIO_8按鍵的回調(diào)函數(shù),同時(shí)需要響應(yīng)按下,釋放以及長(zhǎng)按三個(gè)事件 */
            /* 按鍵觸發(fā)順序: Pressed -> LongPressed(optional) -> Released */
            ret += DTButton_Enable("GPIO_8", Button_Callback, Pressed | LongPressed | Released);
        
            /* 分別設(shè)置S1, S2, USER按鍵的回調(diào)函數(shù) */
            ret += DTButton_Enable("S1", Button_Callback, Released);
            ret += DTButton_Enable("S2", Button_Callback, Pressed | LongPressed | Released);
            ret += DTButton_Enable("USR", Button_Callback, LongPressed);
        
            if( ret == 0 )
            {
                while(1) 
                {
                    usleep(100000);
                }
        
                DTButton_Disable("GPIO_8");  // 取消 GPIO_8 按鍵的所有按鍵事件
                DTButton_Disable("S1");      // 取消 S1 按鍵的所有按鍵事件
                DTButton_Disable("S2");      // 取消 S2 按鍵的所有按鍵事件
                DTButton_Disable("USR");     // 取消 USER 按鍵的所有按鍵事件
        
                DTButton_Deinit(); // 關(guān)閉按鈕事件處理上下文
            }
            else
            {
                printf("[dt4sw] Falied to enable button!\n");
            }
        
            return (void*)arg;
        }
        瀏覽 12
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            处破女A片30分钟粉嫩 | 周妍希浴缸洗澡三点尽露无水印 | 在线h片 | 欧美不卡免费 | 五月天色度导航 | 少妇资源站 | 国产成人精品视频 | 啊灬啊灬啊灬快灬高潮了小喜 | 婷婷成人电影 | 五月婷婷一区二区 |