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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AWTK 開(kāi)源串口屏開(kāi)發(fā)(18) - 用 C 語(yǔ)言自定義命令

ZLG致遠(yuǎn)電子 ? 2024-05-11 08:24 ? 次閱讀

如果 AWTK-HMI 內(nèi)置模型無(wú)法滿足需求,可以使用 C 語(yǔ)言來(lái)擴(kuò)展默認(rèn)模型。本文通過(guò)一個(gè)簡(jiǎn)單的例子,介紹一下用 C 語(yǔ)言擴(kuò)展默認(rèn)模型的方法。

AWTK-HMI 內(nèi)置了不少模型,利用這些模型開(kāi)發(fā)應(yīng)用程序,不需要編寫代碼即可實(shí)現(xiàn)常見(jiàn)的應(yīng)用。但是,有時(shí)候我們需要自定義一些命令,以實(shí)現(xiàn)一些特殊的功能。本文檔介紹如何使用 C 語(yǔ)言自定義命令。

1. 實(shí)現(xiàn) hmi_model_cmd_t 接口

1.1 exec 函數(shù)

本函數(shù)用于執(zhí)行命令。函數(shù)原型如下:

typedef ret_t (*hmi_model_cmd_exec_t)(hmi_model_cmd_t* cmd, tk_object_t* obj, const char* args);

參數(shù):

  • cmd:命令對(duì)象;
  • obj:默認(rèn)模型對(duì)象;
  • args:參數(shù)。

返回:

  • RET_OBJECT_CHANGED 表示模型對(duì)象發(fā)生了變化,界面自動(dòng)更新。
  • RET_OK 表示命令執(zhí)行成功,但模型對(duì)象沒(méi)有發(fā)生變化。
  • 其他值表示命令執(zhí)行失敗。

1.2 can_exec 函數(shù)

本函數(shù)用于判斷命令是否可以執(zhí)行。函數(shù)原型如下:

typedef bool_t (*hmi_model_cmd_can_exec_t)(hmi_model_cmd_t* cmd, tk_object_t* obj, const char* args);

參數(shù):

  • cmd:命令對(duì)象;
  • obj:默認(rèn)模型對(duì)象;
  • args:參數(shù)。

返回:

  • TRUE 表示命令可以執(zhí)行;
  • FALSE 表示命令不能執(zhí)行。

1.3 聲明命令對(duì)象

命令對(duì)象一般定義為全局變量。

示例

static const hmi_model_cmd_t s_inc_temp_cmd = { .name = "inc_temp", .exec = inc_temp_exec, .can_exec = inc_temp_can_exec,};


2.注冊(cè)命令

調(diào)用函數(shù) hmi_model_add_cmd 注冊(cè)命令。

ret_t custom_cmds_init(void) { tk_object_t* model = hmi_service_get_default_model(); hmi_model_add_cmd(model, &s_inc_temp_cmd);
return RET_OK;}


3.完整示例

下面的代碼實(shí)現(xiàn)了一個(gè)命令 inc_temp,用于增加溫度屬性的值。溫度的值小于 100 時(shí),命令可以執(zhí)行。

#define PROP_TEMP "溫度"
static ret_t inc_temp_exec(hmi_model_cmd_t* cmd, tk_object_t* obj, const char* args) { int temp = tk_object_get_prop_int(obj, PROP_TEMP, 0); tk_object_set_prop_int(obj, PROP_TEMP, temp + 1);
return RET_OBJECT_CHANGED;}
static bool_t inc_temp_can_exec(hmi_model_cmd_t* cmd, tk_object_t* obj, const char* args) { int temp = tk_object_get_prop_int(obj, PROP_TEMP, 0); return temp < 100;}
static const hmi_model_cmd_t s_inc_temp_cmd = { .name = "inc_temp", .exec = inc_temp_exec, .can_exec = inc_temp_can_exec,};
ret_t custom_cmds_init(void) { tk_object_t* model = hmi_service_get_default_model(); hmi_model_add_cmd(model, &s_inc_temp_cmd);
return RET_OK;}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7630

    瀏覽量

    140333
  • 串口屏
    +關(guān)注

    關(guān)注

    8

    文章

    578

    瀏覽量

    38110
  • awtk
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    352
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    串口可以自定義協(xié)議嗎?

    求問(wèn):串口可以自定義協(xié)議嗎?
    發(fā)表于 03-27 15:24

    LISP語(yǔ)言自定義AutoCAD命令

    LISP語(yǔ)言自定義AutoCAD命令 AutoLISP語(yǔ)言作為AutoCAD的二次開(kāi)發(fā)工具,
    發(fā)表于 02-14 17:08 ?2468次閱讀

    DOS下自定義時(shí)間重啟

    DOS環(huán)境下,C語(yǔ)言編寫,自定義時(shí)間重啟。
    發(fā)表于 03-16 09:40 ?6次下載

    C#教程之自定義屏保

    C#教程之自定義屏保,很好的C#資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-20 09:59 ?7次下載

    創(chuàng)建自定義的u-boot命令

    為什么會(huì)有這篇文章,因?yàn)樾∩籾-boot源碼的設(shè)計(jì)所吸引了(源碼對(duì)命令的處理過(guò)程)。自定義u-boot命令屬于u-boot源碼的開(kāi)發(fā)技術(shù)啦,可能u-boot官方
    的頭像 發(fā)表于 08-08 14:46 ?1273次閱讀

    基于AWTK和AWPLC開(kāi)發(fā)自定義功能塊

    AWPLC 是 ZLG 自主研發(fā)的 PLC 系統(tǒng)(兼容 IEC61131-3),本文定時(shí)器為例介紹一下如何擴(kuò)展自定義功能塊。
    的頭像 發(fā)表于 10-26 11:50 ?1174次閱讀

    ESP32上的自定義UART協(xié)議開(kāi)源

    電子發(fā)燒友網(wǎng)站提供《ESP32上的自定義UART協(xié)議開(kāi)源.zip》資料免費(fèi)下載
    發(fā)表于 02-13 16:38 ?4次下載
    ESP32上的<b class='flag-5'>自定義</b>UART協(xié)議<b class='flag-5'>開(kāi)源</b>

    自定義算子開(kāi)發(fā)

    一個(gè)完整的自定義算子應(yīng)用過(guò)程包括注冊(cè)算子、算子實(shí)現(xiàn)、含自定義算子模型轉(zhuǎn)換和運(yùn)行含自定義op模型四個(gè)階段。在大多數(shù)情況下,您的模型應(yīng)該可以通過(guò)使用hb_mapper工具完成轉(zhuǎn)換并順利部署到地平線芯片上……
    的頭像 發(fā)表于 04-07 16:11 ?3202次閱讀
    <b class='flag-5'>自定義</b>算子<b class='flag-5'>開(kāi)發(fā)</b>

    【產(chǎn)品應(yīng)用】 AWTK 和 AWPLC 快速開(kāi)發(fā)嵌入式應(yīng)用程序 (4)- 自定義功能塊(上)

    AWPLC是ZLG自主研發(fā)的PLC系統(tǒng)(兼容IEC61131-3),本文定時(shí)器為例介紹一下如何擴(kuò)展自定義功能塊。背景AWTK全稱ToolkitAnyWhere,是ZLG開(kāi)發(fā)
    的頭像 發(fā)表于 11-02 09:56 ?1065次閱讀
    【產(chǎn)品應(yīng)用】<b class='flag-5'>用</b> <b class='flag-5'>AWTK</b> 和 AWPLC 快速<b class='flag-5'>開(kāi)發(fā)</b>嵌入式應(yīng)用程序 (4)- <b class='flag-5'>自定義</b>功能塊(上)

    【產(chǎn)品應(yīng)用】 AWTK 和 AWPLC 快速開(kāi)發(fā)嵌入式應(yīng)用程序 (5)- 自定義功能塊(下)

    AWPLC是ZLG自主研發(fā)的PLC系統(tǒng)(兼容IEC61131-3),本文以定時(shí)器為例介紹一下如何擴(kuò)展自定義功能塊,以及代碼生成器的用法。背景AWTK全稱ToolkitAnyWhere,是ZLG開(kāi)發(fā)
    的頭像 發(fā)表于 11-04 10:12 ?1200次閱讀
    【產(chǎn)品應(yīng)用】<b class='flag-5'>用</b> <b class='flag-5'>AWTK</b> 和 AWPLC 快速<b class='flag-5'>開(kāi)發(fā)</b>嵌入式應(yīng)用程序 (5)- <b class='flag-5'>自定義</b>功能塊(下)

    串口LUA教程10-自定義串口指令

    串口LUA教程10-自定義串口指令
    發(fā)表于 04-29 13:17 ?16次下載

    AWTK 開(kāi)源智能串口方案

    AWTK開(kāi)源智能串口方案發(fā)布,旨在解決傳統(tǒng)串口諸多痛點(diǎn),為用戶提供更開(kāi)放、更易用、更強(qiáng)大的
    的頭像 發(fā)表于 12-02 08:24 ?1280次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開(kāi)源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案

    ?【AWTK開(kāi)源智能串口方案】方案介紹和工作原理

    本篇文章介紹一下AWTK開(kāi)源智能串口方案的基本原理和實(shí)際使用效果,包括主要特點(diǎn)、應(yīng)用場(chǎng)景、工作原理以及簡(jiǎn)單的Demo演示。引言:AWTK-
    的頭像 發(fā)表于 12-21 08:24 ?1384次閱讀
    ?【<b class='flag-5'>AWTK</b><b class='flag-5'>開(kāi)源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】方案介紹和工作原理

    AWTK開(kāi)源智能串口方案】HMI端程序移植編譯及運(yùn)行

    本篇文章介紹一下AWTK開(kāi)源智能串口方案的串口端(即HMI端)的編譯運(yùn)行步驟,并介紹如何將H
    的頭像 發(fā)表于 01-18 08:24 ?1335次閱讀
    【<b class='flag-5'>AWTK</b><b class='flag-5'>開(kāi)源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】HMI端程序移植編譯及運(yùn)行

    AWTK使用經(jīng)驗(yàn)】如何自定義combo_box下拉框樣式

    AWTK是基于C語(yǔ)言開(kāi)發(fā)的跨平臺(tái)GUI框架。《AWTK使用經(jīng)驗(yàn)》系列文章將介紹開(kāi)發(fā)
    的頭像 發(fā)表于 05-23 08:25 ?738次閱讀
    【<b class='flag-5'>AWTK</b>使用經(jīng)驗(yàn)】如何<b class='flag-5'>自定義</b>combo_box下拉框樣式
    主站蜘蛛池模板: 毛片毛片 | 黄黄的网站在线观看 | 亚洲欧美人成网站综合在线 | 免费毛片网站在线观看 | 国产欧美亚洲精品 | 爱爱视频天天看 | 亚洲夜夜操 | 午夜影视啪啪免费体验区深夜 | 免费性网站| 你懂的网站在线观看网址 | 亚洲色图在线观看视频 | 国产午夜久久影院 | 手机看片a永久免费看大片 手机毛片 | 色成网| 午夜精品视频在线 | 亚洲vv| 日本一区二区三区欧美在线观看 | 午夜逼逼 | 欧美视频区 | 在线小毛片| 黄色免费网站在线播放 | 免费xxxx大片 | 日本黄页网 | 男人的j桶女人的j视频 | 影音先锋ady69色资源网站 | 色多多www视频在线观看免费 | 中文字幕有码在线视频 | 日本黄色三级视频 | 色综合美国色农夫网 | 色婷婷综合久久久久中文一区二区 | 欧美日韩在线一本卡 | 日韩欧美在线中文字幕 | 天天爽夜夜爽每晚高澡 | 男人日女人视频免费看 | 你懂的在线观看网站 | 国产一区二区在线观看免费 | 精品国产中文一级毛片在线看 | 美女视频黄的免费视频网页 | 国产香港日本三级在线观看 | 精品国产综合区久久久久99 | 国产精品秒播无毒不卡 |