AWTK MODBUS Client channel 模型

名称:modbus_client_channel

在这里插入图片描述

功能:通过 modbus 协议访问远程 slave 设备上的数据,需要配合 modbus_client模型一起使用。用于将 modbus client 中的 channel 包装成view_model或者view_model_array

一般来说不需要,直接使用modbus_client模型即可。只有在需要将通道中的数据当成多条记录,方便绑定到 ListView 时,才需要使用。

1. 参数

  • name 用于加载配置文件。路径为:design/default/data/<name>.json

modbus_client_channel必须在modbus_client模型之下创建。

示例:

<window v-model="modbus_client(name=modbus_demo,share=true)" name="home_page"><view x="0" y="0" w="100%" h="100%" v-model="modbus_client_channel(name=modbus_demo_input_register)">...</view>
</window>  

这里配置文件路径为:design/default/data/modbus_demo_input_register.json

2. 配置文件格式

使用 JSON 文件描述配置。

2.1 基本配置

  • channel 通道的名字。在modbus_client模型的配置中必须存在。

  • items 通道中记录的个数。

items > 1 为数组模型,否则为非数组模型。为数组模型时,可以绑定到 ListView,每一项数据绑定到一个列表项中。
当 items > 1,整个通道的数据被分成 items 等份。每一份的长度为:通道总数据长度/items,数据访问的范围必须在一份数据的长度范围内。

示例:

{"channel":"read_input_registers","items": 100,"variables": {"level": "byte[0].uint32","time": "byte[4].uint32","message": "byte[8].str[54]"}
}  

2.3 变量定义

UI 可以直接绑定通道中的数据。为了提高可读性和灵活性,可以定义一些变量,将变量映射到通道地址。

  • 定义变量
  "variables": {"level": "byte[0].uint32","time": "byte[4].uint32","message": "byte[8].str[54]"}
  • 使用变量
  <progress_circle name="progress_circle" x="c" y="100" w="100" h="100" max="10000" v-data:value="{温度}" /><progress_circle name="progress_circle" x="c" y="220" w="100" h="100" max="10000" v-data:value="{湿度}" />

3. 访问通道中的数据。

格式:<通道数据类型>[offset].(bit_offset|<变量数据类型>)

详情 modbus client 中的 访问通道中的数据。不同之处是不需要指定通道名称前缀。

示例:

  • byte[0].uint32 从偏移为 0 的地址读取 32 位无符号整数。
  • byte[4].uint32 从偏移为 4 的地址读取 32 位无符号整数。
  • byte[8].str[54] 从偏移为 8 的地址读取最大长度为 54 字节的字符串。字符串本身必须于以空字符’\0’结束。

内置属性

属性类型说明
url字符串URL
connected布尔当前是否连接。
name字符串名称。

示例

  <label x="c" y="10" w="50%" h="40" v-data:tr_text="{url}" /><label x="c" y="60" w="50%" h="40" v-data:tr_text="{connected ? 'connected' : 'no connection'}" />

内置命令

命令参数说明
update更新通道数据 (read/write)

示例

<button x="c:-100" y="b:10" w="168" h="36" text="Update" v-on:click="{update}" />

完整示例

请参考:demo_modbus_client_channel_input_registers

注意

如果数据需要进行字节序转换,可以调用 fscript 函数,具体请参考:https://gitee.com/zlgopen/awtk/blob/master/docs/fscript_endian.md

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

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

相关文章

MySQL怎么提升主从复制性能

在MySQL主从复制结构中&#xff0c;随着连接至数据源的副本数增加&#xff0c;尽管负载相对较小&#xff0c;但仍会增加负载&#xff0c;因为每个副本都要和数据源建立一个客户端连接。此外&#xff0c;由于每个副本都必须接收到源二进制日志的完整副本&#xff0c;源上的网络负…

CentOS 系统的优缺点

CentOS &#xff08;社区企业操作系统的缩写&#xff09;是一个基于红帽企业 Linux (RHEL)的免费开源发行版&#xff0c; 旨在为服务器和工作站提供稳定、可靠和安全的平台。 不应将其与CentOS Stream 混淆&#xff0c;后者是即将发布的 RHEL 版本的上游开发平台。 CentOS Li…

C++初阶之入门

零、什么是C C是基于C语言而产生的&#xff0c;它既可以进行C语言的过程化程序设计&#xff0c;又可以进行以抽象数据类型为特点的基于对象的程序设计&#xff0c;还可以进行面向对象的程序设计。 C缺点之一&#xff0c;是相对许多语言复杂&#xff0c;而且难学难精。许多人说学…

一般神经网络的微分与网络参数的初始化

(文章的主要内容来自电科的顾亦奇老师的 Mathematical Foundation of Deep Learning, 有部分个人理解) 一般深度神经网络的微分 上周讨论的前向和反向传播算法可以推广到任意深度神经网络的微分。 对于一般的网络来说&#xff0c;可能无法逐层分割&#xff0c;但仍然可以用流…

抖音小店运营过程中,每天必须要做的7件事情!少一件都不行!

大家好&#xff0c;我是电商小V 最近很多新手小伙伴刚做店&#xff0c;操作抖音小店每天需要做的事情都是哪些呢&#xff1f;感觉自己一天很忙&#xff0c;但是也没有忙出来结果&#xff0c;思绪很乱&#xff0c;关于这个问题咱们今天就来详细的说一下&#xff0c;给你们梳理总…

02 贪吃蛇

前言 呵呵 这是不知道 在哪里看到的 别人做的一个贪吃蛇 因此 也把我 之前的 贪吃蛇 移植上来了 当然 这个不过是为了 简单的入门了解, 呵呵 然后 c版本的贪吃蛇 需要先移植成 c 版本, 然后 再根据 单片机相关 设计调整 比如 led 点阵的输出, 比如 c99 语法的一些不兼容…

12 c++版本的坦克大战

前言 呵呵 这大概是 大学里面的 c 贪吃蛇了吧 有一些 面向对象的理解, 但是不多 这里 具体的实现 就不赘述, 仅仅是 发一下代码 以及 具体的使用 坦克大战 #include<iostream> #include<windows.h> #include<conio.h> #include<ctime> #include…

Python编程的终极十大工具

Python一直以来都是程序员们的首选编程语言之一&#xff0c;其灵活性和功能强大的库使其成为解决各种问题的理想选择。在本文中&#xff0c;我们将介绍Python编程的终极十大工具&#xff0c;这些工具可以帮助您在各种领域取得成功&#xff0c;无论您是初学者还是经验丰富的开发…

面试(四)

目录 1. 组长安排了一个不可能完成的任务&#xff0c;怎么拒绝&#xff1f; 2.讲一下Freertos的机器人 3. Freertos的中断 4. Freertos功能 5. 树莓派怎么识别二维码&#xff1f; 6. Linux脚本作用&#xff1f; 7. Modbus&#xff1f; 8. freertos的动态创建和静态创建…

【C++】C++的内存管理

目录 内存分布 动态内存管理 C语言的动态内存管理 C的动态内存管理 对内置类型操作 对自定义类型操作 new[]和delete[] 开空间的细节 探讨匹配问题 定位new表达式 内存分布 栈&#xff1a;存放非静态局部变量&#xff0c;函数参数&#xff0c;返回值等。栈是向下增长…

【数字电路与系统】【北京航空航天大学】实验:时序逻辑设计——三色灯开关(五)、小结

本次实验&#xff08;一&#xff09;见博客&#xff1a;【数字电路与系统】【北京航空航天大学】实验&#xff1a;时序逻辑设计——三色灯开关&#xff08;一&#xff09;、实验指导书 本次实验&#xff08;二&#xff09;见博客&#xff1a;【数字电路与系统】【北京航空航天…

大语言模型——涌现能力

在现有文献中,大语言模型的涌现能力被非形式化定义为在小型模型中不存在但在大模型中出现的能力”,具体是指当模型扩展到一定规模时,模型的特定任务性能突然出现显著跃升的趋势,远超过随机水平。类比而言,这种性能涌现模式与物理学中的相变现象有一定程度的相似,但是仍然…

如何在Android应用中安全地使用SQLite数据库,并通过SQLCipher进行加密保护

Android内置SQLite轻量级关系型数据库,可以在Android应用中存储、检索和管理结构化数据。SQLite是一个无服务器的、零配置的、事务性的SQL数据库引擎,非常适合用于移动设备和桌面应用程序中。 SQLite特点: 「轻量级」:SQLite不需要单独的服务器进程或操作系统级别的配置。…

Vim学习笔记01~04

第01章&#xff1a; 遁入空门&#xff0c;模式当道 1.什么是vim Vim是一个高效的文本编辑工具&#xff0c;并且可以在编程开发过程中发挥越来越重要的作用。 事实上&#xff0c;有不少编程高手使用他们来进行代码的开发&#xff0c;并且对此赞不绝口。 2.本系列目的 但是让…

微信小程序按钮点击时的样式hover-class=“hover“

小程序的button组件很好用&#xff0c;按钮点击的时候会显示点击状态&#xff0c;默认的就是颜色加深 但是我们改变了button的背景色之后&#xff0c;就看不出点击效果了&#xff0c;解决起来也很简单 关键代码就是小程序的 hover-class 属性&#xff0c;需要注意的是&#xff…

C 语言实例 - 计算 int, float, double 和 char 字节大小

使用 sizeof 操作符计算int, float, double 和 char四种变量字节大小。 sizeof 是 C 语言的一种单目操作符&#xff0c;如C语言的其他操作符、–等&#xff0c;它并不是函数。 sizeof 操作符以字节形式给出了其操作数的存储大小。 #include <stdio.h>int main() {int …

代码随想录算法训练营Day8 | ● 344.反转字符串● 541. 反转字符串II● 54.替换数字● 151.翻转字符串里的单词● 55.右旋转字符串

&#xff08;记得重学&#xff09; ● 344.反转字符串 题目&#xff1a;编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一…

让Springboot JpaAuditing 支持ZonedDateTime

我们项目需要支持国际化&#xff0c;那么日期时间就需要有时区了&#xff0c;否则我们在今天早上9点干的事&#xff0c;人家美国人看到的是明天的时间。所以我们在Auditable中的创建时间和更新时间我们都定义为ZonedDateTime. 然而在保存的时候却抛出如下错误&#xff1a; Cau…

Qt [获取Dump] 使用WindowsAPI实现生成MiniDump文件

说明 客户现场的软件偶发崩溃是程序开发者&#xff0c;比较头疼的事情。如何更快速的定位到问题点和解决掉&#xff0c;是开发应该具备的基本能力。 Windows提供了一系列的API&#xff0c;可以记录软件崩溃前的堆栈信息。下面就实现一个生成Dump文件的程序实例。 主要代码 回…

计算机系列之输入输出、中断、总线、可靠性、操作系统、进程管理、同步互斥

9、输入输出-中断-总线-可靠性 1、输入输出技术、中断 1、内存与接口地址的编址方法&#xff08;了解概念即可&#xff09; 计算机系统中存在多种内存与接口地址的编址方法&#xff0c;常见的是下面两种&#xff1a;&#xff08;了解概念即可&#xff09; 1&#xff09;内存…