<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

AWTK 串口屏開發(5) - MCU端 SDK 用法

ZLG致遠電子 ? 2024-01-06 08:24 ? 次閱讀

AWTK開源智能串口屏,不但開放了串口屏端全部源碼,還提供了MCUSDK,大大加快MCU軟件的開發。本介紹一下MCU端SDK在不同平臺上的用法。

完整示例可以參考下面的幾個例子:

普通嵌入式系統

mcu/stm32h743/USER/main.c

低端嵌入式系統

mcu/mini-sdk/hmi/examples/socket/main.c

MCU 模擬

simulator/src/pages/home_page.c

f92d1648-ac29-11ee-aa22-92fbcf53809c.gif

基本用法

1. 創建 hmi 對象

創建 hmi 對象時,需要提供一個回調函數,當屬性變化時,會調用這個函數。示例:

static ret_t hmi_on_prop_change(hmi_t* hmi, const char* name, const value_t* v) { /*處理參數變化*/ if (tk_str_eq(name, "溫度")) { int32_t temp = value_int(v); log_debug("temp=%d\n", temp); }
return RET_OK;}
... io = tk_stream_factory_create_iostream(url); hmi = hmi_create(io, hmi_on_prop_change, NULL);

2. 設置屬性

示例:

hmi_set_prop_int(hmi, "溫度", 36);

3. 獲取屬性示例:

int32_t temp = hmi_get_prop_int(hmi, "溫度", 0);

4. 在主循環中分發事件

示例:

hmi_dispatch(hmi);

完整示例

/*本文必須保存為 UTF-8 BOM 格式 */
#include "tkc/mem.h"#include "hmi/hmi.h"
static int s_value = 0;static uint32_t s_heap_mem[10240];
#define HMI_PROP_TEMP "溫度"
/*回調函數*/static ret_t hmi_on_prop_change(hmi_t* hmi, const char* name, const value_t* v) { if (strcmp(name, "溫度") == 0) { s_value = value_int(v); }
return RET_OK;}
static void system_init(void) { Cache_Enable(); //打開L1-Cache HAL_Init(); //初始化HAL庫 Stm32_Clock_Init(160, 5, 2, 4); //設置時鐘,400Mhz delay_init(400); //延時初始化 LED_Init(); //初始化LED KEY_Init(); //初始化按鍵}
int main(void) { u8 key = 0; hmi_t* hmi = NULL;
system_init();
/*初始化內存*/ tk_mem_init(s_heap_mem, sizeof(s_heap_mem));
/*創建HMI對象*/ hmi = hmi_create_with_serial("1", hmi_on_prop_change, NULL);
while (1) { key = KEY_Scan(0); if (key) { switch (key) { case KEY2_PRES: { s_value = 0; break; } case KEY1_PRES: { s_value--; break; } case KEY0_PRES: { s_value++; break; } default: { break; } }
/*修改數據*/ hmi_set_prop_int(hmi, HMI_PROP_TEMP, s_value); } else { delay_ms(10); }
/*分發事件*/ hmi_dispatch(hmi); }}

API 參考

串口屏客戶端(供 MCU 使用)。

1. 函數

函數名稱

說明

hmi_create

創建hmi對象。

hmi_create_with_serial

創建hmi對象。

hmi_destroy

銷毀hmi對象。

hmi_dispatch

處理事件。

hmi_get_prop

獲取屬性。

hmi_get_prop_bool

獲取布爾屬性。

hmi_get_prop_float

獲取浮點數屬性。

hmi_get_prop_int

獲取整數屬性。

hmi_get_prop_int64

獲取64位整數屬性。

hmi_get_prop_str

獲取字符串屬性。

hmi_set_prop

設置屬性。

hmi_set_prop_bool

設置布爾屬性。

hmi_set_prop_float

設置浮點數屬性。

hmi_set_prop_int

設置整數屬性。

hmi_set_prop_int64

設置64位整數屬性。

hmi_set_prop_str

設置字符串屬性。

2.屬性

屬性名稱

類型

說明

remote_ui

remote_ui_t*

emote ui 對象。

2.1 hmi_create 函數

  • 函數功能:

創建hmi對象。

函數原型:

hmi_t* hmi_create (tk_iostream_t* io, hmi_on_prop_changed_t on_prop_changed, void* ctx);

參數

類型

說明

返回值

hmi_t*

返回hmi對象。

io

tk_iostream_t*

流對象。

on_prop_changed

hmi_on_prop_changed_t

屬性變化回調函數。

ctx

void*

上下文。

2.2 hmi_create_with_serial函數

函數功能:

創建hmi對象。

函數原型:

hmi_t* hmi_create_with_serial (const char* device, hmi_on_prop_changed_t on_prop_changed, void* ctx);

  • 參數說明:

參數

類型

說明

返回值

hmi_t*

返回hmi對象。

device

const char*

串口設備。

on_prop_changed

hmi_on_prop_changed_t

屬性變化回調函數。

ctx

void*

上下文。

2.3 hmi_destroy函數

函數功能:

銷毀hmi對象。

函數原型:

ret_t hmi_destroy (hmi_t* hmi);

  • 參數說明:

參數

類型

說明

返回值

ret_t

返回RET_OK表示成功,否則表示失敗。

hmi

hmi_t*

hmi對象。

2.4hmi_dispatch函數

函數功能:

處理事件。。

函數原型:

ret_t hmi_dispatch (hmi_t* hmi);

  • 參數說明:
參數類型說明
返回值ret_t返回RET_OK表示成功,否則表示失敗。
hmihmi_t*hmi對象。

2.5 hmi_get_prop函數

函數功能:

獲取屬性。

函數原型:

ret_t hmi_get_prop (hmi_t* hmi, const char* target, const char* name, value_t* v);

  • 參數說明:

參數

類型

說明

返回值

ret_t

返回RET_OK表示成功,否則表示失敗。

hmi

hmi_t*

hmi對象。

target

const char*

目標對象。

name

const char*

屬性名稱。

v

value_t*

屬性值。

2.6 hmi_get_prop_bool函數

函數功能:

獲取布爾屬性。

函數原型:

bool_t hmi_get_prop_bool (hmi_t* hmi, const char* name, bool_t defvalue);

  • 參數說明:
參數類型說明
返回值bool_t返回屬性值。
hmihmi_t*hmi對象。
nameconstchar*屬性名稱。
defvaluebool_t默認值。

2.7 hmi_get_prop_float函數

函數功能:

獲取浮點數屬性。

函數原型:

float hmi_get_prop_float (hmi_t* hmi, const char* name, float defvalue);

  • 參數說明:
參數類型說明
返回值float返回屬性值。
hmihmi_t*hmi對象。
nameconstchar*屬性名稱。
defvaluefloat默認值。

2.8hmi_get_prop_int函數

函數功能:

獲取整數屬性。

函數原型:

int32_t hmi_get_prop_int (hmi_t* hmi, const char* name, int32_t defvalue);

  • 參數說明:
參數類型說明
返回值int32_t返回屬性值。
hmihmi_t*hmi對象。
nameconstchar*屬性名稱。
defvalueint32_t默認值。

2.9hmi_get_prop_int64函數

函數功能:

獲取64位整數屬性。

函數原型:

int64_t hmi_get_prop_int64 (hmi_t* hmi, const char* name, int64_t defvalue);

  • 參數說明:
參數類型說明
返回值int64_t返回屬性值。
hmihmi_t*hmi對象。
nameconstchar*屬性名稱。
defvalueint64_t默認值。

2.10hmi_get_prop_str函數

函數功能:

獲取字符串屬性。

函數原型:

const char* hmi_get_prop_str (hmi_t* hmi, const char* name, const char* defvalue);

  • 參數說明:
參數類型說明
返回值constchar*返回屬性值。
hmihmi_t*hmi對象。
nameconstchar*屬性名稱。
defvalueconstchar*默認值。

2.11 hmi_set_prop函數

函數功能:

設置屬性。

函數原型:

ret_t hmi_set_prop (hmi_t* hmi, const char* target, const char* name, const value_t* v);

  • 參數說明:
參數類型說明
返回值ret_t返回RET_OK表示成功,否則表示失敗。
hmihmi_t*hmi對象。
targetconst char*目標對象。
name
const char*屬性名稱。
vconstvalue_t*屬性值。

2.12hmi_set_prop_bool函數

函數功能:

設置布爾屬性。

函數原型:

ret_t hmi_set_prop_bool (hmi_t* hmi, const char* name, bool_t value);

  • 參數說明:
參數類型說明
返回值ret_t返回RET_OK表示成功,否則表示失敗。
hmihmi_t*hmi對象。
nameconstchar*屬性名稱。
valuebool_t默認值。

2.13hmi_set_prop_float函數

函數功能:

設置浮點數屬性。

函數原型:

ret_t hmi_set_prop_float (hmi_t* hmi, const char* name, float value);

  • 參數說明:
參數類型說明
返回值ret_t返回RET_OK表示成功,否則表示失敗。
hmihmi_t*hmi對象。
nameconstchar*屬性名稱。
valuefloat默認值。

2.14hmi_set_prop_int函數

函數功能:

設置整數屬性。

函數原型:

ret_t hmi_set_prop_int (hmi_t* hmi, const char* name, int32_t value);

  • 參數說明:
參數類型說明
返回值ret_t返回RET_OK表示成功,否則表示失敗。
hmihmi_t*hmi對象。
nameconstchar*屬性名稱。
valueint32_t默認值。

2.15hmi_set_prop_int64函數

函數功能:

設置64位整數屬性。

函數原型:

ret_t hmi_set_prop_int64 (hmi_t* hmi, const char* name, int64_t value);

  • 參數說明:
參數類型說明
返回值ret_t返回RET_OK表示成功,否則表示失敗。
hmihmi_t*hmi對象。
nameconstchar*屬性名稱。
valueint64_t默認值。

2.16hmi_set_prop_str函數

函數功能:

設置字符串屬性。

函數原型:

ret_t hmi_set_prop_str (hmi_t* hmi, const char* name, const char* value);

  • 參數說明:
參數類型說明
返回值ret_t返回RET_OK表示成功,否則表示失敗。
hmihmi_t*hmi對象。
nameconstchar*屬性名稱。
valueconstchar*默認值。

2.17 remote_ui屬性

remote ui 對象。 高級用戶可以使用此對象直接操作遠程UI。

  • 類型:remote_ui_t*

特性

是否支持

可直接讀取

可直接修改

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

    關注

    146

    文章

    16090

    瀏覽量

    344458
  • 串口屏
    +關注

    關注

    8

    文章

    481

    瀏覽量

    36655
  • awtk
    +關注

    關注

    0

    文章

    28

    瀏覽量

    179
收藏 人收藏

    評論

    相關推薦

    涂鴉標準模組MCU SDK開發流程 精選資料推薦

    MCU SDK 是根據涂鴉 IoT 開發平臺定義的產品功能,自動生成的 MCU 代碼。目前主要支持的MCU有STM32、51單片機、Ardu
    發表于 07-20 06:28

    涂鴉標準模組MCU SDK開發流程

    MCU SDK 是根據涂鴉 IoT 開發平臺定義的產品功能,自動生成的 MCU 代碼。目前主要支持的MCU有STM32、51單片機、Ardu
    發表于 10-28 20:36 ?12次下載
    涂鴉標準模組<b class='flag-5'>MCU</b> <b class='flag-5'>SDK</b><b class='flag-5'>開發</b>流程

    AWTK 開源智能串口屏方案

    AWTK開源智能串口屏方案發布,旨在解決傳統串口屏諸多痛點,為用戶提供更開放、更易用、更強大的開源串口屏方案?;?b class='flag-5'>AWTK和
    的頭像 發表于 12-02 08:24 ?519次閱讀
    <b class='flag-5'>AWTK</b> 開源智能<b class='flag-5'>串口</b>屏方案

    AWTK 串口開發(1) - Hello World

    本文以一個簡單的溫度設置程序為例,介紹AWTK串口屏的開發流程和MVVM數據綁定的基本方法。功能這個例子很簡單,制作一個調節溫度的界面。在這里例子中,模型(也就是數據)里只有一個溫度變量:變量名
    的頭像 發表于 12-08 15:52 ?247次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b>屏<b class='flag-5'>開發</b>(1) - Hello World

    AWTK 串口開發(2) - 家居控制

    本文以一個家居控制應用程序為例,介紹AWTK串口屏的開發流程和MVVM數據綁定的高級用法。1.功能這個例子稍微復雜一點,重點關注數據綁定。在這個例子中,模型(也就是數據)里包括一臺空調
    的頭像 發表于 12-16 08:24 ?314次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b>屏<b class='flag-5'>開發</b>(2) - 家居控制

    ?【AWTK開源智能串口屏方案】方案介紹和工作原理

    串口屏方案,本系列文章介紹如何從零開發HMI程序,包括搭建開發環境、創建HMI運行時工程、修改應用界面以及開發MCU程序。
    的頭像 發表于 12-21 08:24 ?453次閱讀
    ?【<b class='flag-5'>AWTK</b>開源智能<b class='flag-5'>串口</b>屏方案】方案介紹和工作原理

    AWTK 串口開發(3) - 告警信息

    告警信息是一個常用的功能。在AWTK開源串口屏中,內置告警信息模型,只需設計用戶界面即可實現告警信息的顯示和管理。1.功能告警信息是一個常用的功能,MCU在設備異常時,會發送告警信息到串口
    的頭像 發表于 12-23 08:24 ?209次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b>屏<b class='flag-5'>開發</b>(3) - 告警信息

    AWTK 串口開發(4) - 數據采集

    數據采用是一個常用的功能。在AWTK開源串口屏中,內置數據采樣模型,只需設計用戶界面即可實現采樣數據的顯示和管理。1.功能數據采集是一個常用的功能,MCU定時采集數據(如環保設備定時采樣空氣
    的頭像 發表于 12-30 08:24 ?187次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b>屏<b class='flag-5'>開發</b>(4) - 數據采集

    AWTK 開源串口開發(6) - 定時器的用法

    定時器是個常用的功能,AWTK串口屏提供了豐富的定時器函數,用于定時器的啟動、停止、暫停、恢復、修改和重置等功能,本文以計時器的例子來介紹定時器的基本用法。定時器也是一個常用的功能,在AWTK
    的頭像 發表于 01-13 08:24 ?203次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏<b class='flag-5'>開發</b>(6) - 定時器的<b class='flag-5'>用法</b>

    AWTK開源智能串口屏方案】HMI端程序移植編譯及運行

    -HMI是基于AWTKAWTK-MVVM開發的低代碼智能串口屏方案,本系列文章介紹如何從零開發HMI程序,包括搭建
    的頭像 發表于 01-18 08:24 ?356次閱讀
    【<b class='flag-5'>AWTK</b>開源智能<b class='flag-5'>串口</b>屏方案】HMI端程序移植編譯及運行

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

    AWTK串口屏中,內置用戶管理和權限控制的模型,無需編碼即可實現登錄、登出、修改密碼、權限控制、創建用戶、刪除用戶等功能,本文介紹一下用戶管理和權限控制的基本用法。用戶管理和權限控制是一個常用
    的頭像 發表于 02-19 12:10 ?235次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏<b class='flag-5'>開發</b>(9) - 用戶和權限管理

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

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

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

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

    AWTK 開源串口開發(10) - 告警信息的高級用法

    告警信息是串口屏常用的功能,之前我們介紹了告警信息的基本用法,實現了告警信息的顯示和管理。本文介紹一下實現查詢告警信息和查看告警信息詳情的方法。1.功能之前我們介紹了告警信息的基本用法,實現了告警
    的頭像 發表于 02-24 08:23 ?129次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏<b class='flag-5'>開發</b>(10) - 告警信息的高級<b class='flag-5'>用法</b>

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

    。在傳統的的串口屏中,開發一個記事本應用,即使可能,也是非常麻煩的事情。在AWTK串口屏中,內置文件模型和文件選擇對話框,實現一個簡單的記事本,不需要編寫代碼,設計好界
    的頭像 發表于 03-09 08:23 ?142次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b>屏<b class='flag-5'>開發</b>(12) - 記事本應用
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>