国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    1662

    瀏覽量

    57960
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Zilog Z80C30/Z85C30 SCC:高性能串行通信控制器的深度解析

    80C30和Z85C30 CMOS SCC(Serial Communications Controller)就是這樣兩款值得深入研究的產品,它們在串行通信領域展現出了卓越的性能和豐富的功能。 文件下載
    的頭像 發表于 01-13 17:00 ?547次閱讀

    深入解析Zilog Z80C30/Z85C30:多功能串口通信控制器的技術精髓

    Z80C30和Z85C30這兩款CMOS SCC(Serial Communications Controller)串口通信控制器。它們在通信領域有著廣泛的應用,下面就讓我們一起來揭
    的頭像 發表于 01-08 15:00 ?275次閱讀

    深入剖析Z80C30/Z85C30 CMOS SCC串行通信控制器

    深入剖析Z80C30/Z85C30 CMOS SCC串行通信控制器 在當今的電子通信領域,串行通信控制器扮演著至關重要的角色。Zilog公司的Z80C30和Z85C30 CMOS SC
    的頭像 發表于 11-26 16:22 ?1016次閱讀
    深入剖析<b class='flag-5'>Z</b>80C30/<b class='flag-5'>Z</b>85C30 CMOS SCC串行通信控制器

    【EASY EAI】基于瑞芯微RV1126B的串口調試

    。1.2putty使用下面以putty來演示如何打開調試串口COM7。配置左側的“serial”,波特率是1.5Mbps,如下圖所示。配置左側的“Session”,選擇“Se
    的頭像 發表于 11-14 11:46 ?7220次閱讀
    【EASY EAI】基于瑞芯微RV1126B的<b class='flag-5'>串口</b>調試

    【EASY EAI】基于瑞芯微RV1126B 的串口調試說明

    putty來演示如何打開調試串口COM7。配置左側的“serial”,波特率是1.5Mbps,如下圖所示。配置左側的“Session”,選擇“Serial”并點擊
    的頭像 發表于 11-06 15:53 ?5173次閱讀
    【EASY EAI】基于瑞芯微RV1126B 的<b class='flag-5'>串口</b>調試說明

    模擬秘籍:Air8000實現Modbus服務器的深度教程

    將Air8000開發板配置為Modbus從,能高效模擬服務器響應主請求。本篇圍繞slave_rtu示例,詳解初始化、數據區(保持寄存器、線圈區)添加、從啟動及數據動態更新流程,助
    的頭像 發表于 10-28 16:32 ?602次閱讀
    從<b class='flag-5'>站</b>模擬秘籍:Air8000實現Modbus服務器的深度教程

    【CW32】uart_obj_fw 輕量級串口框架

    以下文章內容由CW32生態社區用戶提供: https://gitee.com/teletubbies-die-of-murder/lightweight-serial-framework 介紹
    的頭像 發表于 09-29 18:02 ?7823次閱讀

    普源示波器DS1102Z-E調試串口通信信號

    串口通信作為嵌入式系統調試的核心手段,其信號質量直接影響數據傳輸的可靠性。普源DS1102Z-E示波器憑借其豐富的觸發功能和精準的波形分析能力,成為調試串口通信的理想工具。本文將結合實際操作經驗
    的頭像 發表于 09-17 16:49 ?1039次閱讀
    普源示波器DS1102<b class='flag-5'>Z</b>-E調試<b class='flag-5'>串口</b>通信信號

    穩聯技術的Profinet轉Modbus轉換網關與信捷PLC從的連接配置進行了案例分析

    USB-232線),PLC的485串口(COM2口A/B端子)連接到遠程DTU的485A和485B接線端子。 二、PLC的modbus遠程從創建 開啟《XC系列編程工具》編程
    的頭像 發表于 09-01 18:40 ?572次閱讀
    穩聯技術的Profinet轉Modbus轉換網關與信捷PLC從<b class='flag-5'>站</b>的連接配置進行了案例分析

    上海泗博網關ENS-317——解鎖串口設備數據直通 Modbus TCP 網絡

    ENS-317是一款實現通用串口與Modbus TCP協議轉換網關,配備雙路RS485接口,可將多個采用自定義協議的串口設備與Modbus TCP主之間數據交互,從而輕松實現各類非標串口
    的頭像 發表于 08-29 15:56 ?718次閱讀
    上海泗博網關ENS-317——解鎖<b class='flag-5'>串口</b>設備數據直通 Modbus TCP 網絡

    PLC與從遠距離通信:PXB-6030D的妙用

    在工業現場,Modbus串口通信的短距離限制一直是工程師們面臨的難題。本期我們將探討如何通過ZLG致遠電子PXB-6030D解決主PLC與從設備之間的遠距離通信問題。Modbus串口
    的頭像 發表于 07-17 11:39 ?540次閱讀
    PLC與從<b class='flag-5'>站</b>遠距離通信:PXB-6030D的妙用

    PLC串口資源受限?用PXB-6030D輕松解決

    在工業自動化中,設備接口不匹配常常讓人頭疼。本期我們來聊聊當PLC只有串口可用,而從設備只有以太網口時,如何通過ZLG致遠電子PXB-6030D實現Modbus設備的連接。PLC串口與從
    的頭像 發表于 07-16 11:41 ?512次閱讀
    PLC<b class='flag-5'>串口</b>資源受限?用PXB-6030D輕松解決

    串口網關是什么

    串口網關是什么? 串口網關(Serial Gateway) 是一種硬件或軟件設備,用于將 串口通信協議 (如RS-232、RS-485、TTL等)轉換為 網絡通信協議 (如TCP/IP
    的頭像 發表于 06-05 11:31 ?784次閱讀

    AWTK,開啟屬于你的GUI之美

    在當今數字化時代,軟件界面設計的高效性和一致性至關重要。本文將探討GUI設計從傳統代碼編寫到所見即所得工具的演變,并介紹AWTK如何通過一致的渲染技術,為開發者帶來高效且直觀的開發體驗。傳統GUI
    的頭像 發表于 05-13 11:31 ?1242次閱讀
    <b class='flag-5'>AWTK</b>,開啟屬于你的GUI之美

    還在為工業網關的ETHERNET/IP從配置和CANopen主設置感到困擾?本文將為您詳細解析工業協議轉換的配置技巧

    產品主要功能 疆鴻智能JH -EIP-COP 連接到EtherNet/IP總線中做為從使用,連接到CANopen總線中做為主使用。自主研發的一款EtherNet/IP從功能的通訊網關,將各種
    的頭像 發表于 05-07 13:58 ?2167次閱讀
    還在為工業網關的ETHERNET/IP從<b class='flag-5'>站</b>配置和CANopen主<b class='flag-5'>站</b>設置感到困擾?本文將為您詳細解析工業協議轉換的配置技巧