女人被爽到高潮视频免cn费95,久久99精品久久久久久久不卡,内射人妻骚骚骚,久久精品一区二区三区四区啪啪 ,美女视频黄频a美女大全

  • 正文
    • 1. 實(shí)現(xiàn) hmi_model_cmd_t 接口
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【技術(shù)分享】AWTK 開(kāi)源串口屏開(kāi)發(fā)(18) - 用 C 語(yǔ)言自定義命令

2024/05/10
1649
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

如果 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)用程序,不需要編寫(xiě)代碼即可實(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;}

完整示例請(qǐng)參考:demo_custom_cmdhttps://gitee.com/zlgopen/awtk-hmi/tree/master/hmi/demo_custom_cmd

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
AFBR-5803Z 1 Foxconn Transceiver, 1270nm Min, 1380nm Max, 125Mbps(Tx), 125Mbps(Rx), SC Connector, Through Hole Mount, ROHS COMPLIANT, SIP-9
$34.98 查看
DSC1123DI2-050.0000 1 Microchip Technology Inc OSC MEMS 50.000MHZ LVDS SMD
$2.21 查看
TJA1050T/CM,118 1 NXP Semiconductors TJA1050 - High-speed CAN transceiver SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.96 查看
致遠(yuǎn)電子

致遠(yuǎn)電子

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開(kāi)發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開(kāi)發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫(xiě)文章/發(fā)需求
立即登錄