AWTK 开源串口屏开发(4) - 采用数据

AWTK 开源串口屏开发 - 数据采集

1. 功能

数据采集是一个常用的功能,MCU 定时采集数据(如环保设备定时采样空气中的污染物),并发送采样数据到串口屏,串口屏可以显示采样数据,也可以对采样数据进行管理(保存或清除)。

在这里插入图片描述

基本工作原理:

  • 1.MCU 端设置属性名为 history_data,数据类型为字符串,数据格式为用 | 分隔的多个字段的数据。

  • 2.串口屏收到数据后,会把采样数据放到一个名为 history_data 的模型(数据)中。

  • 3.界面通过绑定规则将 history_data 模型中的数据关联到控件上。

在这里插入图片描述

时间为 epoch 时间,方便内部存储和查询。

下面演示一下具体的实现方法。

2. 创建项目

从模板创建项目,将 hmi/template_app 拷贝 hmi/history_data 即可。

第一个项目最好不要放到其它目录,因为放到其它目录需要修改配置文件中的路径,等熟悉之后再考虑放到其它目录。路径中也不要中文和空格,避免不必要的麻烦。

3. 制作界面

用 AWStudio 打开上面 history_data 目录下的 project.json 文件。里面有一个空的窗口,在上面设计类似下面的界面:

在这里插入图片描述

中间是一个列表视图列表视图中放一个列表项列表项中放 6 个文本控件,分别用来显示序数、时间、一氧化碳、二氧化氮、悬浮颗粒物、二氧化硫。

3. 添加绑定规则

第一次用到列表视图,有几点需要特别说明一下:

列表视图中的滚动视图需要指定 v-for-items 属性:

属性说明
v-for-itemstrue它保证其下的列表项,会根据数据自动生成|

3.0.1 几个特殊的变量

  • index 特指序数。
  • item 特指当前的数据。比如在这里 ‘item.time’ 表示时间,‘item.一氧化碳’ 表示一氧化碳,‘item.二氧化氮’ 表示二氧化氮,‘item.悬浮颗粒物’ 表示悬浮颗粒物。
  • selected_index 表示当前选中的序数(可在列表视图之外绑定)。
  • items 表示当前列表视图中的数据个数(可在列表视图之外绑定)。

3.0.2 几个特殊的命令

  • set_selected 设置当前选中的序数(在列表项中使用)。
  • save 保存数据到文件(在列表视图之外的按钮上绑定)。
  • reload 重新加载数据(在列表视图之外的按钮上绑定)。
  • clear 清除所有数据(在列表视图之外的按钮上绑定)。
  • remove 删除指定序数的数据(在列表视图之外的按钮上绑定)。

3.1 序数

绑定属性绑定规则说明
v-data:value{index}index 特指序数。

3.2 时间

时间是整数(秒数),可以通过 item.time 来获取。

绑定属性绑定规则说明
v-data:value{date_time_format(item.time, ‘Y-M-D hⓂ️s’)}需要用date_time_format将 epoch 时间转换成人类可读的时间。

3.3 一氧化碳

可以通过 item.一氧化碳 来获取。

绑定属性绑定规则说明
v-data:value{item.一氧化碳}

3.4 二氧化氮

可以通过 item.二氧化氮 来获取

绑定属性绑定规则说明
v-data:value{item.二氧化氮}

3.5 悬浮颗粒物

可以通过 item.悬浮颗粒物 来获取

绑定属性绑定规则说明
v-data:value{item.悬浮颗粒物}

3.6 二氧化硫

可以通过 item.二氧化硫 来获取

绑定属性绑定规则说明
v-data:value{item.二氧化硫}

3.7 列表项

为了配合删除选中的采样数据,需要在列表项加两个绑定规则。

绑定属性绑定规则说明
v-on:click{set_selected}点击时将当前项目设置为选中
v-data:focused{index==selected_index}当前项目选中时高亮

3.8 删除当前选择的采样数据

绑定属性绑定规则说明
v-on:click{remove, Args=selected_index}selected_index 表示当前选中的项目

3.9 清除所有采样数据

绑定属性绑定规则说明
v-on:click{clear}

3.10 保存采样数据

绑定属性绑定规则说明
v-on:click{save}

3.11 重新加载采样数据

绑定属性绑定规则说明
v-on:click{reload}

3.12 退出应用程序

绑定属性绑定规则说明
v-on:click{nothing, QuitApp=true}

3.12 指定窗口的模型

  • 指定窗口的模型为 history_data

在这里插入图片描述

4. 启用数据采样

修改 design/default/data/settings.json 文件,启用数据采样:

{"name": "hmi_histroy_data1","history_data": {"enable": true, /*是否启用数据采集*/"fields": {"time": {}, /*时间必须用 'time',放在第一位*/"一氧化碳" : {"min": 0,"max": 100,"unit": "mg/m³"},"二氧化氮" : {"min": 0,"max": 110,"unit": "mg/m³"},"悬浮颗粒物" : {"min": 0,"max": 120,"unit": "mg/m³"},"二氧化硫": {"min": 0,"max": 130,"unit": "mg/m³"}},"fields_seperator": "|", /*字段之间的分隔符*/"max_rows": 1000 /*数据采集最大行数*/,"auto_save_interval": 60000}
}

5. 编译运行

运行 bin 目录下的 demo 程序。

在这里插入图片描述

6. 使用 MCU 模拟器与之进行交互

运行 mcu/simulator 目录下的 mcu_sim 程序,连接到 Localhost:2233。

  • 通过模拟器发送数据,可以看到串口屏界面,自动添加采样数据。

在这里插入图片描述

测试数据:

1702032398|3.1|3.2|3.3|3.4

7. 注意

  • 本项目并没有编写界面相关的代码,AWStudio 在 src/pages 目录下生成了一些代码框架,这些代码并没有用到,可以删除也可以不用管它,但是不能加入编译。

  • 实际使用时,在 demo_history_data1/design/default/ui/home_page.xml 基础上进行调整即可,无需重复上面的过程,但是最好了解其中的原理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/585396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

68.乐理基础-打拍子-大附点与变体

上一节内容:66.乐理基础-打拍子-小切分-CSDN博客,只所以没有67因为67可以不用知道,67节内容在:※-打拍子(8)-一拍内的变体1-乐理教程-腾讯课堂 (qq.com) 大附点:大附点这个名字不是通用的&…

基于element-ui table组件的二次封装

文章目录 配置数据基础分析封装 el-table-column使用插槽强化结语 相信 element-ui 大家都有所耳闻,table 也是老朋友了,不过在使用它的时候大家是怎么使用的呢?是直接在官网上cv使用吗?这种方式,我相信写起来会有点小…

【教学类-43-02】20231226 九宫格数独2.0(n=9)(ChatGPT AI对话大师生成 回溯算法)

作品展示: 背景需求: 大4班20号说:我不会做这种(九宫格),我做的是小格子的, 他把手工纸翻过来,在反面自己画了矩阵格子。向我展示: “我会做这种!” 原来他…

OCR在审核应用落地

本文字数:6686字 预计阅读时间:35分钟 01 背景 1、业务背景 在传统视频审核场景中,审核人员需要对进审视频中的文字内容进行逐一审核,避免在文字上出现敏感词、违禁词或者广告等相关词汇。这种人工审核费时费力,并且由…

python+django网上购物商城系统o9m4k

语言:Python 框架:django/flask可以定制 软件版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发工具pycharm/vscode都可以 前端框架:vue.js 系统使用过程主要涉及到管理员和用户两种角色,主要包含个…

TSR勾画学习

1:勾画建议 文献:Scoring the tumor-stroma ratio in colon cancer: procedure and recommendations 主要讲述的是结肠癌(CRC)的勾画建议和流程。 1,切片选择建议: 原发肿瘤的载玻片最具侵袭性的部分(即常规病理学…

PiflowX组件-ReadFromKafka

ReadFromKafka组件 组件说明 从kafka中读取数据。 计算引擎 flink 有界性 Unbounded 组件分组 kafka 端口 Inport:默认端口 outport:默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子kafka_hostKAFKA_HOST“”无是逗号分隔的Ka…

【目标检测】yolov8结构及代码分析

yolov8代码:https://github.com/ultralytics/ultralytics yolov8的整体结构如下图(来自mmyolo): yolov8的配置文件: # Ultralytics YOLO 🚀, AGPL-3.0 license # YOLOv8 object detection model with P3-P5 outputs.…

偏好对齐RLHF-OpenAI·DeepMind·Anthropic对比分析

OpenAI paper: InstructGPT, Training language models to follow instructions with human feedback paper: Learning to summarize from human feedback Introducing ChatGPT 解密Prompt系列4介绍了InstructGPT指令微调的部分,这里只看偏好对齐的部分 样本构建…

Zookeeper-Zookeeper特性与节点数据类型详解

1.Zookeeper介绍 ZooKeeper 是一个开源的分布式协调框架,是Apache Hadoop 的一个子项目,主要用来解决分布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂目容易出错的分布式一致性服务封装起来,构成一高效可靠的原语集&…

Python列表的介绍与操作 增改查,连接,赋值,复制,清空

列表 在日常中我们通过给变量赋值来存储数据,比如 a "hello" b "world" c "你好啊" d "....."由于变量一次只能存储一个数据,但我们如果想一次存储多个数据,的话这样存储会很复杂,所以,我们可以通过列表 列表(List)是Python中的…

Linux驱动开发学习笔记6《蜂鸣器实验》

目录 一、蜂鸣器驱动原理 二、硬件原理分析 三、实验程序编写 1、 修改设备树文件 (1)添加pinctrl节点 (2)添加BEEP设备节点 (3)检查PIN 是否被其他外设使用 2、蜂鸣器驱动程序编写 3、编写测试AP…

基于js和html的骰子游戏

介绍: 1.游戏者选择“大”时,三个骰子点数之和为11-18时,游戏者获胜。2.游戏者选择“小”时,三个骰子点数之和为3-10时,游戏者获胜。3.如果游戏者选择具体点数,则根据三个骰子的点数计算,如果与…

Linux 安装Jupyter notebook 并开启远程访问

文章目录 安装Python安装pip安装Jupyter启动Jupyter Notebook1. 生成配置文件2. 创建密码3. 修改jupyter notebook的配置文件4. 启动jupyter notebook5. 远程访问jupyter notebook 安装Python 确保你的系统上已经安装了Python。大多数Linux发行版都预装了Python。你可以在终端…

【深度学习-图像分类】02 - AlexNet 论文学习与总结

论文地址:ImageNet Classification with Deep Convolutional Neural Networks 论文学习 1. 摘要 本研究训练了一个大型深度卷积神经网络(CNN),用于对ImageNet LSVRC-2010比赛中的1.2百万高分辨率图像进行分类,这些图…

MYSQL 深入探索系列六 SQL执行计划

概述 好久不见了,近期一直在忙项目的事,才有时间写博客,近期频繁出现sql问题,今天正好不忙咱们看看千万级别的表到底该如何优化sql。 案例 近期有个小伙伴生产环境收到了告警,有个6千万的日志表,查询耗时大…

“undefined reference to XXX“问题总结

"undefined reference to XXX"问题总结 引言 我们在Linux下用C/C工作的时候,经常会遇到"undefined reference to XXX"的问题,直白地说就是在链接(从.cpp源代码到可执行的ELF文件,要经过预处理->编译->链接三个阶…

1panel使用指南(一)面板安装

一、1panel简介 1Panel是杭州飞致云信息科技有限公司推出的产品 [1],帮助用户实现快速建站。 [2]是一款现代化、开源的Linux服务器运维管理面板,于2023年3月推出,深度集成WordPress和Halo,一键完成域名绑定、SSL证书配置等操作&a…

draw.io学习笔记

1、链接 1.1、自动连接图形 鼠标放在图形上,点击出现的箭头,会自动出常用图形 1.2、固定连接 如果拖动其中一个图形的话,固定链接的形状会是曲线连过去。 方法:不要点击左边图形鼠标放在边框上面左边出现绿圆点鼠标左键点击图形的…

【Linux】深度解剖环境变量

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟悉并掌握Linux的环境变量。 > 毒鸡汤&#x…