AWTK開源智能串口屏,不但開放了串口屏端全部源碼,還提供了MCU端SDK,大大加快MCU軟件的開發(fā)。本介紹一下MCU端SDK在不同平臺上的用法。
完整示例可以參考下面的幾個例子:
mcu/stm32h743/USER/main.c
低端嵌入式系統(tǒng)
mcu/mini-sdk/hmi/examples/socket/main.c
MCU 模擬器
simulator/src/pages/home_page.c
基本用法
1. 創(chuàng)建 hmi 對象
創(chuàng)建 hmi 對象時(shí),需要提供一個回調(diào)函數(shù),當(dāng)屬性變化時(shí),會調(diào)用這個函數(shù)。示例:
static ret_t hmi_on_prop_change(hmi_t* hmi, const char* name, const value_t* v) { /*處理參數(shù)變化*/ 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. 設(shè)置屬性
示例:
hmi_set_prop_int(hmi, "溫度", 36);
3. 獲取屬性示例:
int32_t temp = hmi_get_prop_int(hmi, "溫度", 0);
4. 在主循環(huán)中分發(fā)事件
示例:
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 "溫度"
/*回調(diào)函數(shù)*/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); //設(shè)置時(shí)鐘,400Mhz delay_init(400); //延時(shí)初始化 LED_Init(); //初始化LED KEY_Init(); //初始化按鍵}
int main(void) { u8 key = 0; hmi_t* hmi = NULL;
system_init();
/*初始化內(nèi)存*/ tk_mem_init(s_heap_mem, sizeof(s_heap_mem));
/*創(chuàng)建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; } }
/*修改數(shù)據(jù)*/ hmi_set_prop_int(hmi, HMI_PROP_TEMP, s_value); } else { delay_ms(10); }
/*分發(fā)事件*/ hmi_dispatch(hmi); }}
API 參考
串口屏客戶端(供 MCU 使用)。
1. 函數(shù)
函數(shù)名稱 | 說明 |
hmi_create | 創(chuàng)建hmi對象。 |
hmi_create_with_serial | 創(chuàng)建hmi對象。 |
hmi_destroy | 銷毀hmi對象。 |
hmi_dispatch | 處理事件。 |
hmi_get_prop | 獲取屬性。 |
hmi_get_prop_bool | 獲取布爾屬性。 |
hmi_get_prop_float | 獲取浮點(diǎn)數(shù)屬性。 |
hmi_get_prop_int | 獲取整數(shù)屬性。 |
hmi_get_prop_int64 | 獲取64位整數(shù)屬性。 |
hmi_get_prop_str | 獲取字符串屬性。 |
hmi_set_prop | 設(shè)置屬性。 |
hmi_set_prop_bool | 設(shè)置布爾屬性。 |
hmi_set_prop_float | 設(shè)置浮點(diǎn)數(shù)屬性。 |
hmi_set_prop_int | 設(shè)置整數(shù)屬性。 |
hmi_set_prop_int64 | 設(shè)置64位整數(shù)屬性。 |
hmi_set_prop_str | 設(shè)置字符串屬性。 |
2.屬性
屬性名稱 | 類型 | 說明 |
remote_ui | remote_ui_t* | emote ui 對象。 |
2.1 hmi_create 函數(shù)
- 函數(shù)功能:
創(chuàng)建hmi對象。
函數(shù)原型:
hmi_t* hmi_create (tk_iostream_t* io, hmi_on_prop_changed_t on_prop_changed, void* ctx);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | hmi_t* | 返回hmi對象。 |
io | tk_iostream_t* | 流對象。 |
on_prop_changed | hmi_on_prop_changed_t | 屬性變化回調(diào)函數(shù)。 |
ctx | void* | 上下文。 |
2.2 hmi_create_with_serial函數(shù)
函數(shù)功能:
創(chuàng)建hmi對象。
函數(shù)原型:
hmi_t* hmi_create_with_serial (const char* device, hmi_on_prop_changed_t on_prop_changed, void* ctx);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | hmi_t* | 返回hmi對象。 |
device | const char* | 串口設(shè)備。 |
on_prop_changed | hmi_on_prop_changed_t | 屬性變化回調(diào)函數(shù)。 |
ctx | void* | 上下文。 |
2.3 hmi_destroy函數(shù)
函數(shù)功能:
銷毀hmi對象。
函數(shù)原型:
ret_t hmi_destroy (hmi_t* hmi);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | ret_t | 返回RET_OK表示成功,否則表示失敗。 |
hmi | hmi_t* | hmi對象。 |
2.4hmi_dispatch函數(shù)
函數(shù)功能:
處理事件。。
函數(shù)原型:
ret_t hmi_dispatch (hmi_t* hmi);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | ret_t | 返回RET_OK表示成功,否則表示失敗。 |
hmi | hmi_t* | hmi對象。 |
2.5 hmi_get_prop函數(shù)
函數(shù)功能:
獲取屬性。
函數(shù)原型:
ret_t hmi_get_prop (hmi_t* hmi, const char* target, const char* name, value_t* v);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | ret_t | 返回RET_OK表示成功,否則表示失敗。 |
hmi | hmi_t* | hmi對象。 |
target | const char* | 目標(biāo)對象。 |
name | const char* | 屬性名稱。 |
v | value_t* | 屬性值。 |
2.6 hmi_get_prop_bool函數(shù)
函數(shù)功能:
獲取布爾屬性。
函數(shù)原型:
bool_t hmi_get_prop_bool (hmi_t* hmi, const char* name, bool_t defvalue);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | bool_t | 返回屬性值。 |
hmi | hmi_t* | hmi對象。 |
name | constchar* | 屬性名稱。 |
defvalue | bool_t | 默認(rèn)值。 |
2.7 hmi_get_prop_float函數(shù)
函數(shù)功能:
獲取浮點(diǎn)數(shù)屬性。
函數(shù)原型:
float hmi_get_prop_float (hmi_t* hmi, const char* name, float defvalue);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | float | 返回屬性值。 |
hmi | hmi_t* | hmi對象。 |
name | constchar* | 屬性名稱。 |
defvalue | float | 默認(rèn)值。 |
2.8hmi_get_prop_int函數(shù)
函數(shù)功能:
獲取整數(shù)屬性。
函數(shù)原型:
int32_t hmi_get_prop_int (hmi_t* hmi, const char* name, int32_t defvalue);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | int32_t | 返回屬性值。 |
hmi | hmi_t* | hmi對象。 |
name | constchar* | 屬性名稱。 |
defvalue | int32_t | 默認(rèn)值。 |
2.9hmi_get_prop_int64函數(shù)
函數(shù)功能:
獲取64位整數(shù)屬性。
函數(shù)原型:
int64_t hmi_get_prop_int64 (hmi_t* hmi, const char* name, int64_t defvalue);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | int64_t | 返回屬性值。 |
hmi | hmi_t* | hmi對象。 |
name | constchar* | 屬性名稱。 |
defvalue | int64_t | 默認(rèn)值。 |
2.10hmi_get_prop_str函數(shù)
函數(shù)功能:
獲取字符串屬性。
函數(shù)原型:
const char* hmi_get_prop_str (hmi_t* hmi, const char* name, const char* defvalue);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | constchar* | 返回屬性值。 |
hmi | hmi_t* | hmi對象。 |
name | constchar* | 屬性名稱。 |
defvalue | constchar* | 默認(rèn)值。 |
2.11 hmi_set_prop函數(shù)
函數(shù)功能:
設(shè)置屬性。
函數(shù)原型:
ret_t hmi_set_prop (hmi_t* hmi, const char* target, const char* name, const value_t* v);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | ret_t | 返回RET_OK表示成功,否則表示失敗。 |
hmi | hmi_t* | hmi對象。 |
target | const char* | 目標(biāo)對象。 |
name | const char* | 屬性名稱。 |
v | constvalue_t* | 屬性值。 |
2.12hmi_set_prop_bool函數(shù)
函數(shù)功能:
設(shè)置布爾屬性。
函數(shù)原型:
ret_t hmi_set_prop_bool (hmi_t* hmi, const char* name, bool_t value);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | ret_t | 返回RET_OK表示成功,否則表示失敗。 |
hmi | hmi_t* | hmi對象。 |
name | constchar* | 屬性名稱。 |
value | bool_t | 默認(rèn)值。 |
2.13hmi_set_prop_float函數(shù)
函數(shù)功能:
設(shè)置浮點(diǎn)數(shù)屬性。
函數(shù)原型:
ret_t hmi_set_prop_float (hmi_t* hmi, const char* name, float value);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | ret_t | 返回RET_OK表示成功,否則表示失敗。 |
hmi | hmi_t* | hmi對象。 |
name | constchar* | 屬性名稱。 |
value | float | 默認(rèn)值。 |
2.14hmi_set_prop_int函數(shù)
函數(shù)功能:
設(shè)置整數(shù)屬性。
函數(shù)原型:
ret_t hmi_set_prop_int (hmi_t* hmi, const char* name, int32_t value);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | ret_t | 返回RET_OK表示成功,否則表示失敗。 |
hmi | hmi_t* | hmi對象。 |
name | constchar* | 屬性名稱。 |
value | int32_t | 默認(rèn)值。 |
2.15hmi_set_prop_int64函數(shù)
函數(shù)功能:
設(shè)置64位整數(shù)屬性。
函數(shù)原型:
ret_t hmi_set_prop_int64 (hmi_t* hmi, const char* name, int64_t value);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | ret_t | 返回RET_OK表示成功,否則表示失敗。 |
hmi | hmi_t* | hmi對象。 |
name | constchar* | 屬性名稱。 |
value | int64_t | 默認(rèn)值。 |
2.16hmi_set_prop_str函數(shù)
函數(shù)功能:
設(shè)置字符串屬性。
函數(shù)原型:
ret_t hmi_set_prop_str (hmi_t* hmi, const char* name, const char* value);
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
返回值 | ret_t | 返回RET_OK表示成功,否則表示失敗。 |
hmi | hmi_t* | hmi對象。 |
name | constchar* | 屬性名稱。 |
value | constchar* | 默認(rèn)值。 |
2.17 remote_ui屬性
remote ui 對象。 高級用戶可以使用此對象直接操作遠(yuǎn)程UI。
- 類型:remote_ui_t*
特性 | 是否支持 |
可直接讀取 | 是 |
可直接修改 | 否 |
-
mcu
+關(guān)注
關(guān)注
146文章
16790瀏覽量
349318 -
串口屏
+關(guān)注
關(guān)注
8文章
522瀏覽量
37167 -
awtk
+關(guān)注
關(guān)注
0文章
38瀏覽量
200
發(fā)布評論請先 登錄
相關(guān)推薦
評論