AWTK-MVVM 配置文件模型

本文介绍了AWTK-MVVM框架内置的多种配置文件模型,包括JSON、XML、INI、CSV和UBJSON,详细说明了如何引用文件、使用内置属性和命令,以及支持的数据结构如json_array和xml_array以适应列表视图。
摘要由CSDN通过智能技术生成

配置文件模型

AWTK-MVVM 内置了一些配置文件模型,用于读写各种配置文件,比如,JSON/XML/INI/CSV/UBJSON 等。

文件名中可以引用下面的变量。

  • ${app_dir} 应用程序目录
  • ${user_dir} 用户目录
  • ${temp_dir} 临时目录
json(url=${app_dir}/demos/demo_conf/demo.json)

支持 http/https 协议。支持 HTTP 协议时,要启用 socket。支持 HTTPS 协议时,要启用 ssl。

示例

json(url=http://t.weather.sojson.com/api/weather/city/101030100)

支持从资源加载数据。

1. json 配置

示例

{
    "network" : {
        "device" : "eth0",
        "ip" : "192.168.1.1"
    },
    "serial" : {
        "device" : "COM1",
        "baudrate" : "115200"
    }
}

功能:用于读写 JSON 文件。

1.1 内置属性

可以通过路径引用属性值。比如上面的例子,可以用下面的方式访问:

属性名属性的值
network.deviceeth0
network.ip192.168.1.1
serial.deviceCOM1
serial.baudrate115200

1.2 内置命令

命令参数说明
save保存
reload重新加载

1.3 创建参数

参数类型说明
urlstring文件路径(必须)

示例

json(url=${app_dir}/demos/demo_conf/demo.json)

2. ubjson 配置

示例

{
    "network" : {
        "device" : "eth0",
        "ip" : "192.168.1.1"
    },
    "serial" : {
        "device" : "COM1",
        "baudrate" : "115200"
    }
}

功能:用于读写 UBJSON 文件。

2.1 内置属性

可以通过路径引用属性值。比如上面的例子,可以用下面的方式访问:

属性名属性的值
network.deviceeth0
network.ip192.168.1.1
serial.deviceCOM1
serial.baudrate115200

2.2 内置命令

命令参数说明
save保存
reload重新加载

2.3 创建参数

参数类型说明
urlstring文件路径(必须)

示例

ubjson(url=${app_dir}/demos/demo_conf/demo.ubjson)

3. xml 配置

示例

<root>
  <network device="eth0" ip="192.168.1.1" />
  <serial device="COM1" baudrate="115200" />
</root>

功能:用于读写 XML 文件。

3.1 内置属性

可以通过路径引用属性值。比如上面的例子,可以用下面的方式访问:

属性名属性的值
network.deviceeth0
network.ip192.168.1.1
serial.deviceCOM1
serial.baudrate115200

3.2 内置命令

命令参数说明
save保存
reload重新加载

3.3 创建参数

参数类型说明
urlstring文件路径(必须)

示例

xml(url=${app_dir}/demos/demo_conf/demo.xml)

4. ini 配置

示例

[network]
  device = eth0
  ip = 192.168.1.1
[serial]
  device = COM1
  baudrate = 115200

功能:用于读写 INI 文件。

4.1 内置属性

可以通过路径引用属性值。比如上面的例子,可以用下面的方式访问:

属性名属性的值
network.deviceeth0
network.ip192.168.1.1
serial.deviceCOM1
serial.baudrate115200

4.2 内置命令

命令参数说明
save保存
reload重新加载

4.3 创建参数

参数类型说明
urlstring文件路径(必须)

示例

ini(url=${app_dir}/demos/demo_conf/demo.ini)

5. csv 配置

示例

eth0,192.168.1.1
eth1,192.168.1.2
eth2,192.168.1.3

功能:用于读写 CSV 文件。

5.1 内置属性

可以通过路径引用属性值。比如上面的例子,可以用下面的方式访问:

用于列表项绑定

属性名属性的值
item.device访问第一列
item.ip访问第二列
item.0访问第一列
item.1访问第二列
item.[0]访问第一列
item.[1]访问第二列

5.2 内置命令

命令参数说明
save保存
reload重新加载

5.3 创建参数

参数类型说明
urlstring文件路径(必须)
col_namesstring列名,用分隔符分隔
sepchar分隔符,默认为逗号

示例

csv(url=${app_dir}/demos/demo_conf/demo.csv, col_names='device,ip', sep=',')

6. json_array 配置

示例

{
  "networks": [
    {
      "device": "eth0",
      "ip": "192.168.1.1"
    },
    {
      "device": "eth1",
      "ip": "192.168.1.2"
    },
    {
      "device": "eth2",
      "ip": "192.168.1.3"
    }
  ]
}

功能:用于读写 JSON 文件(方便绑定到列表视图)。

6.1 内置属性

可以通过路径引用属性值。比如上面的例子,可以用下面的方式访问:

用于列表项绑定

属性名属性的值
item.devicedevice
item.ipip

6.2 内置命令

命令参数说明
save保存
reload重新加载

6.3 创建参数

参数类型说明
urlstring文件路径 (必须)
prefixstring路径前缀(可选)

示例

json_array(url=${app_dir}/demos/demo_conf/demo_array.json, prefix=networks)

7. xml_array 配置

示例

<networks>
  <network device="eth0" ip="192.168.1.1" />
  <network device="eth1" ip="192.168.1.2" />
  <network device="eth2" ip="192.168.1.3" />
</networks>

功能:用于读写 XML 文件(方便绑定到列表视图)。

7.1 内置属性

可以通过路径引用属性值。比如上面的例子,可以用下面的方式访问:

用于列表项绑定

属性名属性的值
item.devicedevice
item.ipip

7.2 内置命令

命令参数说明
save保存
reload重新加载

7.3 创建参数

参数类型说明
urlstring文件路径 (必须)
prefixstring路径前缀(可选)

示例

xml_array(url=${app_dir}/demos/demo_conf/demo_array.xml, prefix=networks)
AWTK开发手册-AWTK开发实践指南-中文手册.pdf AWTK = Toolkit AnyWhere 随着手机、智能手表等便携式设备的普及,用户对 GUI 的要求越来越高,嵌入式系统对高性能、高可靠性、低功耗、美观炫酷的 GUI 的需求也越来越迫切,ZLG开源 GUI 引擎 AWTK 应运而生。AWTK 全称为 Toolkit AnyWhere,是 ZLG 倾心打造的一套基于 C 语言开发的 GUI 框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎,并支持跨平台同步开发,一次编程,终生使用。 最终目标: 支持开发嵌入式软件。 支持开发Linux应用程序。 支持开发MacOS应用程序。 支持开发Windows应用程序。 支持开发Android应用程序。 支持开发iOS应用程序。 支持开发2D游戏。 其主要特色有: 小巧。在精简配置下,不依赖第三方软件包,仅需要32K RAM + 256K FLASH即可开发一些简单的图形应用程序。 高效。采用脏矩形裁剪算法,每次只绘制和更新变化的部分,极大提高运行效率和能源利用率。 稳定。通过良好的架构设计和编程风格、单元测试、动态(valgrind)检查和Code Review保证其运行的稳定性。 丰富的GUI组件。提供窗口、对话框和各种常用的组件(用户可以配置自己需要的组件,降低对运行环境的要求)。 支持多种字体格式。内置位图字体(并提供转换工具),也可以使用stb_truetype或freetype加载ttf字体。 支持多种图片格式。内置位图图片(并提供转换工具),也可以使用stb_image加载png/jpg等格式的图片。 紧凑的二进制界面描述格式。可以手工编辑的XML格式的界面描述文件,也可以使用Qt Designer设计界面,然后转换成紧凑的二进制界面描述格式,提高运行效率,减小内存开销。 支持主题并采用紧凑的二进制格式。开发时使用XML格式描述主题,然后转换成紧凑的二进制格式,提高运行效率,减小内存开销。 支持裸系统,无需OS和文件系统。字体、图片、主题和界面描述数据都编译到代码中,以常量数据的形式存放,运行时无需加载到内存。 内置nanovg实现高质量的矢量动画,并支持SVG矢量图。 支持窗口动画、控件动画、滑动动画和高清LCD等现代GUI常见特性。 支持国际化(Unicode、字符串翻译和输入法等)。 可移植。支持移植到各种RTOS和嵌入式Linux系统,并通过SDL在各种流行的PC/手机系统上运行。 脚本化。从API注释中提取API的描述信息,通过这些信息可以自动生成各种脚本的绑定代码。 支持硬件2D加速(目前支持STM32的DMA2D和NXP的PXP)和GPU加速(OpenGL/OpenGLES/DirectX/Metal),充分挖掘硬件潜能。 丰富的文档和示例代码。 采用LGPL协议开源发布,在商业软件中使用时无需付费。 目前核心功能已经完成,内部开始在实际项目中使用了,欢迎有兴趣的朋友评估和尝试,期待您的反馈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值