在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【Z站推薦】AWTK最新動態:使用serial_widget簡化串口編程

ZLG致遠電子 ? 2022-08-08 10:06 ? 次閱讀

把串口做成一個控件并不新鮮,在VB里有個通信組件,就是用來簡化串口編程的。最近AWTK也提供了這樣一個控件serial_widget,本文介紹一下它的使用方法。

1d247994-1516-11ed-9ade-dac502259ad0.jpg 基本功能我們編寫一個簡單的應用程序,它有兩個功能:

  • 把收到的數據顯示出來。
  • 把界面輸入的數據發送給對方。


1d247994-1516-11ed-9ade-dac502259ad0.jpg UI界面描述文件1d3d20f2-1516-11ed-9ade-dac502259ad0.png

  

"open" text="Open Device" x="10" y="100" w="160" h="36" /> "device"x="180"y="100"w="-200"h="36"text="/dev/ttys032"/> "send"text="SendMessage"x="10"y="150"w="160"h="36"/> "send_msg"x="180"y="150"w="-200"h="36"text="helloserial"/> "recv_msg"x="c"y="b:100"w="90%"h="100"/> "serial"/>1d247994-1516-11ed-9ade-dac502259ad0.jpg 接收數據?先注冊數據事件的處理函數。

widget_child_on(win, "serial", EVT_DATA, on_data, win);

?在處理函數中讀取數據并顯示到界面上。

static ret_t on_data(void* ctx, event_t* e) { char text[128] = {0}; widget_t* win = WIDGET(ctx); serial_widget_t* serial = SERIAL_WIDGET(e->target); widget_t* label = widget_lookup(win, "recv_msg", TRUE); int32_t len = tk_istream_read(serial->istream, text, sizeof(text)-1); if(len > 0) {
    text[len] = '\0';
    widget_set_text_utf8(label, text);
  }returnRET_OK;
}

1d247994-1516-11ed-9ade-dac502259ad0.jpg 發送數據

從界面讀取數據,并發送到串口

static ret_t on_send(void* ctx, event_t* e) { char text[128] = {0}; widget_t* win = WIDGET(ctx); serial_widget_t* serial = SERIAL_WIDGET(widget_lookup(win, "serial", TRUE)); widget_t* edit = widget_lookup(win, "send_msg", TRUE);
  widget_get_text_utf8(edit, text, sizeof(text)-1);
  tk_ostream_write_len(serial->ostream, text, strlen(text), 3000); return RET_OK;
}

完整代碼請參考 serial 可以下載 awtk-c-demos 編譯運行。

./bin/demo_serial

1d247994-1516-11ed-9ade-dac502259ad0.jpg 測試

下面操作是在 Linux/MacOS 上測試的,Windows 下需要安裝虛擬串口軟件,具體做法有些不同,請自行調整。

?使用socat創建虛擬串口

socat -d -d pty,raw,echo=0 pty,raw,echo=0

該命令會生成兩個設備文件,對應串口的兩端(每次生成的設備名可能不同)。

2022/07/08 16:32:33 socat[1879] N PTY is /dev/ttys0322022/07/08 16:32:33 socat[1879] N PTY is /dev/ttys0332022/07/08 16:32:33 socat[1879] N starting data transfer loop with FDs [5,5] and [7,7]

?在AWTK 這端我們使用設備/dev/ttys032
?在另外一端讀取數據
打開一個新的終端,并運行下面的命令(有數據時自動顯示出來):

cat /dev/ttys033

?在另外一端發送數據

打開一個新的終端,并運行下面的命令(發送當前時間字符串):

date >/dev/ttys033

1d247994-1516-11ed-9ade-dac502259ad0.jpg 使用fscript進行串口編程

也可以使用 fscript 進行串口編程(配合 AWBlock 就簡單了)。AWTK 里提供一個與前面功能相同的例子,總體來看要簡潔不少。

  

"打開設備" x="16" y="15" w="76" h="34" > "on:click"> var device = widget_get('device', 'text') widget_set('serial','device', device)

  "device" x="119" y="13" w="178" h="38" text="/dev/ttys028" />
  "recv" x="5" y="123" w="303" h="101" />
  "send" text="hello serial" x="5" y="273" w="200" h="34" />
  

"button" tr_text="send" x="220" y="274" w="81" h="34" > "on:click"> var os = widget_get('serial','ostream') var msg = widget_get('send', 'text') ostream_write_string(os, msg)

  "serial">
    "on:data">
      var is = widget_get('self','istream')
      var msg = istream_read_string(is, 100, 0)
      widget_set('recv', 'text', msg)    
  

在 AWTK 根目錄下可以運行該例子,測試方法與前面相同。

./bin/preview_ui design/default/ui/serial.xml

1d247994-1516-11ed-9ade-dac502259ad0.jpg 移植

目前串口只實現了Windows, Linux, MacOS, Android 和 AWorks 等平臺,其它平臺需要自己移植。

請參考AWorks平臺的移植:

src/platforms/aworkslp/serial_helper.c

【版權聲明】本文為ZLG開發者社區用戶原創內容,未經授權不得轉載。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 串口通信
    +關注

    關注

    34

    文章

    1627

    瀏覽量

    55656
收藏 人收藏

    評論

    相關推薦

    AWTK 最新動態:支持瀏覽器控件

    導讀AWTK瀏覽器控件,基于webview項目實現,將瀏覽器嵌入到AWTK應用程序中,讓開發者可以方便的集成在線幫助和調用地圖等功能。awtk-widget-web-view是基于webview實現的
    的頭像 發表于 11-20 01:05 ?255次閱讀
    <b class='flag-5'>AWTK</b> 最新<b class='flag-5'>動態</b>:支持瀏覽器控件

    AWTK 最新動態:支持鴻蒙系統(HarmonyOS Next)

    導讀HarmonyOS是全球第三大移動操作系統,有巨大的市場潛力,在國產替代的背景下,機會多多,AWTK支持HarmonyOS,讓AWTK開發者也能享受HarmonyOS生態的紅利。AWTK全稱
    的頭像 發表于 11-06 08:03 ?310次閱讀
    <b class='flag-5'>AWTK</b> 最新<b class='flag-5'>動態</b>:支持鴻蒙系統(HarmonyOS Next)

    AWTK最新動態AWTK 1.8版本發布

    AWTK是一套基于C語言開發的跨平臺GUI框架,目前正式推出1.8版本。本次更新不僅對許多細節進行了優化,還增添了眾多重要特性和文檔資料。此外,還引入了三款創新控件和兩個與AWTK相關項目。AWTK
    的頭像 發表于 08-30 12:48 ?477次閱讀
    【<b class='flag-5'>AWTK</b>最新<b class='flag-5'>動態</b>】<b class='flag-5'>AWTK</b> 1.8版本發布

    AWTK使用經驗】如何更換AWTK SDK與渲染模式

    AWTK是基于C語言開發的跨平臺GUI框架?!?b class='flag-5'>AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何播放攝像頭畫面?如何更換AWTK的版本?這些都會在系列
    的頭像 發表于 08-01 08:25 ?1132次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何更換<b class='flag-5'>AWTK</b> SDK與渲染模式

    AWTK使用經驗】如何響應物理按鍵

    AWTK是基于C語言開發的跨平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資源?如何設計自定義進度條?這些都會在系列文章進行解答。在
    的頭像 發表于 06-06 08:25 ?838次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何響應物理按鍵

    【插針機HMI開發】用AWTK開發人機界面

    AWTK介紹致遠電子的AWTK是開源GUI引擎,提供了AWTK-C、AWTK-MVVM和AWTK-HMI等多種解決方案來實現界面
    的頭像 發表于 04-19 08:23 ?604次閱讀
    【插針機HMI開發】用<b class='flag-5'>AWTK</b>開發人機界面

    AWTK 開源串口屏開發(16) - 提供 MODBUS 服務

    AWTK串口屏內置MODBUS從模型,不用編寫一行代碼即可讓串口屏提供MODBUS服務,讓遠程設備通過MODBUS協議訪問串口屏上的數據。
    的頭像 發表于 04-13 08:24 ?479次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏開發(16) - 提供 MODBUS 服務

    AWTK 開源串口屏開發(15) - 通過 MODBUS 訪問遠程數據

    AWTK串口屏內置MODBUSClient模型,支持用MODBUS協議從遠程設備獲取數據。不用編寫代碼即可實現對遠程設備數據的顯示和修改。在AWTK串口屏中,內置了MODBUSClie
    的頭像 發表于 03-30 08:23 ?445次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏開發(15) - 通過 MODBUS 訪問遠程數據

    AWTK 開源串口屏開發(14) - 界面重用

    AWTK串口屏支持同一個界面綁定不同的數據,本文以家居控制為例,介紹一下界面重用的方法。在家居控制應用中,我們演示了空調和咖啡機界面?,F在我們來想一想,如果有多個空調怎么辦呢?當然最直觀的方法,就是
    的頭像 發表于 03-23 08:23 ?394次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏開發(14) - 界面重用

    AWTK 開源串口屏開發(13) - 計算器應用

    計算器是一個常見的應用程序,在AWTK串口屏中,利用fscript表達式計算函數,無需編寫一行傳統的代碼,即可實現一個簡單的計算器應用程序。1.功能計算器是一個很常見的應用,比如在電子秤中,可能
    的頭像 發表于 03-16 08:23 ?5923次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏開發(13) - 計算器應用

    AWTK 開源串口屏開發(12) - 記事本應用

    記事本是一個常用的應用程序,在AWTK串口屏中,內置文件模型和文件選擇對話框,無需編寫一行傳統的代碼,即可實現一個簡單的記事本應用程序。記事本是一個很常用的應用,用來編輯和查看文本文件非常方便。在
    的頭像 發表于 03-09 08:23 ?384次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏開發(12) - 記事本應用

    AWTK 開源串口屏開發(11) - 天氣預報

    AWTK串口屏內置了XML/JSON/INI等各種數據文件的模型,并支持用HTTP/HTTPS從網絡獲取數據。不用編寫一行代碼,即可實現天氣預報、股票行情、航班查詢和快遞查詢等功能。天氣預報是一個很
    的頭像 發表于 03-05 08:24 ?435次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏開發(11) - 天氣預報

    AWTK開源智能串口屏方案】設計UI界面并上傳到串口

    本篇文章將介紹如何使用AWStudio設計串口屏端的UI界面和添加綁定規則,以及怎么將資源文件上傳到串口屏端。引言:AWTK-HMI是基于AWTK
    的頭像 發表于 02-22 08:24 ?777次閱讀
    【<b class='flag-5'>AWTK</b>開源智能<b class='flag-5'>串口</b>屏方案】設計UI界面并上傳到<b class='flag-5'>串口</b>屏

    AWTK開源智能串口屏方案】MCU SDK使用與編譯運行

    本篇文章將介紹AWTK-HMI中的MCU端開發方法,包括MCUSDK常用API的說明、使用流程及如何編譯到Linux和STM32平臺。引言:AWTK-HMI是基于AWTKAWTK-M
    的頭像 發表于 02-19 12:11 ?1294次閱讀
    【<b class='flag-5'>AWTK</b>開源智能<b class='flag-5'>串口</b>屏方案】MCU SDK使用與編譯運行

    AWTK 開源串口屏開發(9) - 用戶和權限管理

    AWTK串口屏中,內置用戶管理和權限控制的模型,無需編碼即可實現登錄、登出、修改密碼、權限控制、創建用戶、刪除用戶等功能,本文介紹一下用戶管理和權限控制的基本用法。用戶管理和權限控制是一個常用
    的頭像 發表于 02-19 12:10 ?534次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏開發(9) - 用戶和權限管理
    主站蜘蛛池模板: jizz性欧美12 | 直接黄91麻豆网站 | 欧美日剧在线免费 | 免费精品美女久久久久久久久久 | 91日本在线观看亚洲精品 | 波多野结衣中文字幕教师 | 七月婷婷在线视频综合 | 精品乱人伦一区二区三区 | 日韩欧美视频在线一区二区 | 韩国特黄特色a大片免费 | 国产午夜精品理论片 | 在线观看精品视频看看播放 | 天堂资源地址在线 | 久久99精品久久久久久臀蜜桃 | 加勒比黑人喝羽月希奶水 | 婷婷在线网 | 国产激烈无遮挡免费床戏视频 | 好爽毛片一区二区三区四区 | 色综合天天综合网国产成人网 | 中文字幕天堂 | 在线www 天堂网在线 | 免费观看一区二区 | 老色批在线播放视频网站免费 | 视频在线观看免费网址 | 他也色在线视频 | 婷婷免费视频 | 色吧五月天 | 狠狠色丁香久久婷婷综 | 关晓彤被调教出奶水的视频 | 国产三级 在线播放 | 天天操天天干天天爽 | 午夜宅男在线视频 | 精品国产一区二区三区国产馆 | 神马影视午夜 | 夜夜爱网站 | 欧美黑人5o厘米全进去 | 久久婷婷人人澡人人爱91 | 2021最新久久久视精品爱 | 日韩一级欧美一级 | 荡女妇边被c边呻吟久久 | 色婷婷六月丁香七月婷婷 |