AWTK 开源串口屏 MODBUS Server 模型

news/2024/9/18 12:50:51/ 标签: AWTK, 串口屏, 开源

名称:modbus_server

功能:通过 modbus 协议提供服务,供远程客户端(主站)访问。

1. 创建

通过 modbus_server 创建模型。

示例:

<window v-model="modbus_server" name="home_page">

配置文件路径固定为:design/default/data/modbus.json

2. 配置文件格式

使用 JSON 文件描述配置。

2.1 基本配置

  • URL slave 设备的 URL。
  • unit_id slave 设备 ID(TCP 协议无需设置)

示例:

  "url":"tcp://localhost:502",

2.2 通道描述

通道可以有多个,放在 channels 数组中。

  • name 用于访问通道中的数据,取值为:

    • bits 可以用功能码 1 读取,用功能码 15 写入。
    • input_bits 可以用功能码 2 读取。
    • registers 可以用功能码 3 读取,用功能码 16 写入。
    • input_registers 可以用功能码 4 读取。
  • start 起始地址

  • length 数据个数

示例:

  "channels": [{   "name": "bits","writable": true,"start": 0,"length": 100 },  {   "name": "input_bits","start": 0,"length": 200 },  {   "name": "registers","writable": true,"start": 0,"length": 300 },  {   "name": "input_registers","start": 0,"length": 400 }   ], 

2.3 变量定义

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

  • 定义变量
  "variables": {"当前温度": "input_registers.word[0]","当前湿度": "input_registers.word[1]","预设温度": "registers.word[0]","预设湿度": "registers.word[1]"}  
  • 使用变量
  <label text="URL" /><label v-data:value="{url}" /><label text="UNIT ID" /><label v-data:value="{unit_id}" /><label text="当前温度" /><edit input_type="int" v-data:text="{当前温度}" /><label text="当前湿度" /><edit input_type="int" v-data:text="{当前湿度}" /><label text="预设温度(客户端发送请求修改)" /><label v-data:text="{预设温度}" /><label text="预设湿度(客户端发送请求修改)" /><label v-data:text="{预设湿度}" />

3. 访问通道中的数据。

请参考:modbus_client

内置属性

属性类型说明
url字符串URL
unit_idint设备 ID

示例

  <label text="URL" /><label v-data:value="{url}" /><label text="UNIT ID" /><label v-data:value="{unit_id}" />

内置命令

完整示例

请参考:demo_modbus_server_registers


http://www.ppmy.cn/news/1424231.html

相关文章

第十二章-Broker-同步刷盘(一)

12.1 刷盘 CommitLog.handleDiskFlush public void handleDiskFlush(AppendMessageResult result, PutMessageResult putMessageResult, MessageExt messageExt) {// 同步刷盘if (FlushDiskType.SYNC_FLUSH this.defaultMessageStore.getMessageStoreConfig().getFlushDiskT…

vue3使用阿里oss上传资源(上传图片、视频、文件、pdf等等),删除oss资源。获取STS token的接口

vue3使用阿里oss上传资源 全部oss.ts代码如下&#xff1a; import OSS from "ali-oss";// 获取STS token export const getSTSToken async () > {const STS_TOKEN_URL "....."; // 获取STS token的接口&#xff0c;后端提供// fetch方式可按需更换成…

C#使用ftp进行文件上传和下载功能(一)

一.FTP概述 FTP (File Transfer Protocol&#xff0c;文件传输协议)是典型的C/S架构的应用层协议&#xff0c;需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的&#xff0c;面向连接的&#xff0c;为数据的传输提供了可靠的保证…

ChatGPT4.5:能力大提升,全新体验

说明 ChatGPT4是2023年的5月份发布的&#xff0c;马上就发布一周年了。其他的大语言模型&#xff0c;比如Claude和开源的Lama也相继更新了最新版本。而根据目前国外发布的各种消息来看&#xff0c;ChatGPT4.5也即将发布。 GPT-4.5 Turbo 发布时间 最新消息显示&#xff0c;Op…

阿里云ECS迁移至AWS EC2,九河云详细教程

在客户在求更大的海外市场&#xff0c;综合考虑后决定选择AWS云&#xff0c;但对迁移方面不太了解&#xff0c;甚至比较担心如果到AWS云是否业务要从0开始&#xff1f;本文九河云将为您介绍如何将阿里云ECS平滑迁移至AWS。 工具介绍 AWS Application Migration Service &…

React中子传父的方式及原理

方式挺多的&#xff0c;先说最常用的通过props进行父子组件的数据传递和修改以及原理 在React中&#xff0c;props不仅用于传递数据&#xff0c;它们也可以传递可以执行的函数&#xff0c;这使得子组件能够间接更新父组件的状态。这种方法强化了React的单向数据流策略&#xf…

【Qt】Qt中代替C语言scanf和gets函数的方法

1、图形界面 Qt可以使用图像界面控件获取输入(这不废话吗?) 1)QLineEdit获取单行输入 QLineEdit *lineEdit = new QLineEdit(); // 单行输入框 QString strTextInput = lineEdit->text(); // 获取输入内容2)QTextEdit 获取多行输入框 QTextEdit *textEdit =

跨平台SIP 客户端-linphone下载、使用、开启视频H264

linphone 介绍 Linphone 是一种开源的语音和视频通信应用程序&#xff0c;它提供了基于互联网协议&#xff08;IP&#xff09;的实时通信功能。用于语音/视频通话、即时消息和电话会议的开源 SIP 电话。它适用于移动和桌面环境&#xff08;iOS、Android、GNU/Linux、macOS、Win…

厂区3D全景线上漫游体验突破现实时空阻碍

智慧园区&#xff0c;作为现代城市发展的重要引擎&#xff0c;其管理效率和安全监控的需求日益凸显。而720VR全景展示技术的引入&#xff0c;无疑为智慧园区的建设注入了新的活力。通过360全空间无死角的视觉展示&#xff0c;用户可以身临其境地感受园区的每一个角落&#xff0…

GRU之我见(含案例讲解)

GRU&#xff08;Gated Recurrent Unit&#xff09;是一种常用于处理序列数据的深度学习模型&#xff0c;特别是在自然语言处理&#xff08;NLP&#xff09;和时间序列分析领域。它是一种循环神经网络&#xff08;RNN&#xff09;的变种&#xff0c;旨在解决长期依赖和梯度消失问…

C++格式化输出开源库fmt入手教程

fmt项目快速上手指南 1. cmake环境配置 include(FetchContent) FetchContent_Declare(fmtGIT_REPOSITORY https://github.com/fmtlib/fmtGIT_TAG 10.0.0GIT_SHALLOW TRUE) # 1. 下载fmt库 FetchContent_MakeAvailable(fmt)add_executable(fmt_guide main.cpp) # 2. 链接fmt库…

消息队列的选择与应用

在现今的软件开发领域&#xff0c;消息队列&#xff08;Message Queue&#xff09;作为一种重要的中间件技术&#xff0c;被广泛应用于异步通信、解耦、流量削峰等场景。随着技术的不断发展&#xff0c;市面上出现了多种消息队列产品&#xff0c;它们各自具有不同的优缺点&…

拼多多开店好做吗

在拼多多开店相对容易&#xff0c;但要做好并不简单&#xff0c;需要投入时间和精力来学习和改进。 拼多多推广可以使用3an推客。3an推客&#xff08;CPS模式&#xff09;给商家提供的营销工具&#xff0c;由商家自主设置佣金比例&#xff0c;激励推广者去帮助商家推广商品链接…

【RabbitMQ】RabbitMQ基础认识

文章目录 前言初识MQSpringAMQP如何首发消息&#xff1f;消费者交换机Fanout&#xff1a;广播Direct交换机Topic交换机声明队列和交换机 总结 前言 微服务一旦拆分&#xff0c;必然涉及到服务之间的相互调用&#xff0c;目前我们服务之间调用采用的都是基于OpenFeign的调用。这…

sklearn中决策树算法实例--泰坦尼克号人员生存预测

目录 数据集 题目 算法步骤 数据集 下载地址 titanic.csv Yuyi Ye/ML-Decision-Tree - 码云 - 开源中国 (gitee.com) 题目 根据数据集中的数据&#xff0c;预测哪些乘客可以从泰坦尼克号沉船事故中幸免。 算法步骤 import pandas as pd import numpy as np from skle…

MySQL——全文检索

不是所有的数据表都支持全文检索 MySQL支持多种底层数据库引擎&#xff0c;但是并非所有的引擎支持全文检索 &#xff0c;目前最常用引擎是是MyISAM和InnoDB&#xff1b;前者支持全文检索&#xff0c;后者不支持。 booolean模式操作符 实验&#xff1a; 表productnotes &…

华为欧拉系统(openEuler-22.03)安装深信服EasyConnect软件(图文详解)

欧拉镜像下载安装 iso镜像官网下载地址 选择最小化安装&#xff0c;标准模式 换华为镜像源 更换华为镜像站&#xff0c;加速下载&#xff1a; sed -i "s#http://repo.openeuler.org#https://mirrors.huaweicloud.com/openeuler#g" /etc/yum.repos.d/openEuler.r…

Build a Large Language Model (From Scratch) 从头开始构建大型语言模型(第一章)学习笔记

构建大型语言模型&#xff08;从头开始&#xff09; 1 理解大型语言模型(Understanding Large Language Models)1.1 什么是LLM&#xff1f;(What is an LLM?)1.2 LLM的应用(Applications of LLMs)1.3 建立和使用LLM的阶段(Stages of building and using LLMs)1.4 将LLM用于不同…

Linux 网络编程项目--简易ftp

主要代码 config.h #define LS 0 #define GET 1 #define PWD 2#define IFGO 3#define LCD 4 #define LLS 5 #define CD 6 #define PUT 7#define QUIT 8 #define DOFILE 9struct Msg {int type;char data[1024];char secondBuf[128]; }; 服务器: #i…

封装原生html的table处理方法【参数类似eltable】

直接跑html即可 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>封装原生talbe</title> </…