【触摸屏功能测试】MQTT_STD本地调试说明-测试记录
1、MQTT简介
MQTT是一种基于发布/订阅模式的“轻量级”通讯协议。它是针对受限的、低带宽的、高延迟的、网络不可靠的环境下的网络通讯设备设计的。
发布是指客户端将消息传递给服务器,订阅是指客户端接收服务器推送的消息。每个消息有一个主题,包含若干个数据。客户端A发布某主题的消息后,客户端B通过订阅该主题的消息,即可获取该主题消息的所有数据。在本应用中,TPC为客户端。
消息中的数据与TPC的设备通道相连,实现服务器与TPC之间的数据交换。数据连接通道后,再经由通道连接到实时数据库中的数据对象(变量),从而被画面和策略所使用。
2、MQTT使用
QTT_STD驱动用于使客户端通过MQTT协议向特定服务器发布或订阅消息。要实现消息的发布和订阅,首先需要用户自行搭建好服务器,再将服务器的信息,输入MQTT_STD驱动属性配置界面。
本样例以MQTT_STD驱动与本地服务器的通讯为例进行介绍。
2.1 、驱动属性配置
随本文档打包的方案包中自带已配置好的本地服务器。服务器IP地址为127.0.0.1,端口号为1883,无用户名、用户密码等。稍后的设置需要使用到服务器IP地址和端口号。
使用McgsPro软件新建工程——设备窗口,添加MQTT_STD驱动,如下图所示。
进入“MQTT客户端属性配置”界面,步骤如下图所示。
在“MQTT客户端属性配置”界面的“一般属性”功能页,输入服务器IP、服务器端口号等信息,以实现客户端和服务器的连接。
本样例设置服务器IP为127.0.0.1,服务端口为1883,其他设置保持默认即可。本地IP和端口为空,则驱动不绑定本地IP地址和端口,否则驱动在连接服务之前会绑定本地IP地址。如果用户需要设置用户名和用户密码,需要勾选界面的“验证”复选框才会出现对应的设置界面。
2.3、消息发布/订阅
配置完客户端属性后,客户端TPC就可以和服务器正常连通了,但若想实现消息的发布和订阅,还需要进一步的配置。
1)配置发布、订阅选项卡
首先在MCGS中找到发布和订阅选项卡。
发布选项卡用于编辑发布消息的消息列表,用户可在此处对发布消息进行添加、编辑、删除、清空等操作。
需要添加发布的消息时,将鼠标置于列表视图上,使用右键打开快捷菜单,点击“添加发布主题”进入“发布消息”配置界面。配置完成后,也可通过右键菜单的“编辑发布主题”或直接双击需要修改的主题名进入主题设置界面。
订阅选项卡用于编辑订阅消息的消息列表,用户可在此处对订阅消息进行添加、编辑、删除、清空等操作。
需要添加订阅的消息时,将鼠标置于列表视图上,使用右键打开快捷菜单,点击“添加订阅主题”进入“订阅消息”配置界面。配置完成后,也可通过右键菜单的“编辑发布主题”或直接双击需要修改的主题名进入主题设置界面。
2)发布/订阅消息属性配置界面
在发布消息属性配置界面可以设置消息的主题名、主题别名、传输质量、消息格式、触发方式以及消息编辑等。
其中,“触发方式”只有发布消息配置界面才有,用于指定消息发布的触发方式,支持变数触发和所有报警触发两种方式。
本例设置主题名为“/test”,主题别名为“sample”,其他设置保持默认不变。
在订阅消息属性配置界面可以设置消息的主题名、主题别名、传输质量、消息格式以及消息编辑等。订阅消息没有触发方式选项。
本例设置主题名为“/test”,主题别名为“sample”,其他设置保持默认不变。
“主题名称说明”中的内容,不是必须出现在主题名称中的,仅需要时才使用。使用方法以“%1”为例,它代表客户端ID。将主题名称设置为“/%1/test”,而前面“mqtt客户端属性配置”页面中的客户端ID为“mqtt_client”,则相当于此时主题名称为“/mqtt_client/test”。
3)消息编辑
点击“消息编辑”按钮进入消息编辑界面。
消息编辑界面主要用于编辑消息的数据结构。消息节点可以为对象、数组或普通数据,普通数据可放置在对象或数组之下,对象或数组可以相互嵌套。此处使用到的数据格式为JSON,JSON简介可参考文档《JSON格式简介》(随本说明文档一起打包提供)。
数据结构的编辑方式为从“数据类型选择器”窗口将对应的数据类型拖拽到“消息定义窗口”的指定节点。
右击可对消息节点进行编辑(消息节点名称、类型等)、删除等操作。完成节点编辑后,“JSON格式浏览”窗口会显示当前结构对应的JSON格式。
同时,也可以单击“启用逆向”,将在外部文本编辑器中编辑好的的JSON格式内容粘贴到JSON格式浏览框中,单击逆向生成即可从JSON格式生成对应的消息结构。注意,生成的结构的节点数据类型可能与用户预期的格式存在差异。这时需要在消息定义窗口右键修改节点的数据类型。
设置订阅消息的方法和设置发布消息的方法相同。
设置完成后,选项卡列表中出现刚才定义的消息。点击保存按钮保存配置并退出配置界面。
由于本例中发布和订阅的主题及消息的设置相同,所以工程在本地模拟运行后,客户端将订阅到本机发布的消息。设置为相同仅为本例演示需求,用户使用时,根据自己的需求设置即可。
3)驱动通道
配置完消息的发布和订阅后,驱动根据客户的配置自动生成三种通道:订阅数据通道、发布数据通道和发布触发通道。
a.订阅数据通道
订阅数据通道的通道名以“subscribe”开头,主要用于客户订阅相关主题消息数据,用户通过关联数据变量接收数据包中的各个数据。
b.发布数据通道
发布数据通道的通道名以“publish”开头,主要用于客户关联要发布的数据变量,与要发布的消息数据相关。
c.发布触发通道
发布触发通道的通道名以“trigger”开头,主要用于客户发布消息使能。如果主题触发方式配置为变数触发,那么一旦触发通道所关联变量的值发生改变即可触发一条数据发布。如果主题触发方式配置为报警触发,那么触发通道所关联变量的值符合报警条件即可发布一条数据。
将通道连接变量以便使用。
4)组态画面
为了直观的观察到客户端发布和订阅的效果,我们组态一个简单的窗口画面来显示数据。
a.首先进入用户窗口。
b.然后组态一个简单的画面用以显示变量的值。
3、 MQTT调试
3.1、 数据的发布和订阅
想要测试工程数据的发布和订阅情况,可以使用随本说明文档一起打包提供的本地服务器进行测试。
1)启动本地服务器:进入随本文档一起打包提供的文件夹“MQTT本地服务器”,双击server.bat启动本地MQTT服务器。
2)启动本地客户端:模拟运行刚才组态好的McgsPro工程。
3)发布数据:在关联变量“p_df”的输入框中输入需要的数值,如66,然后点击按钮触发数据的发布。
4)订阅数据:由于本例中发布和订阅的主题及消息的设置相同,所以会订阅到本机发布的消息。此时,“s_df”输入框显示66,表示订阅成功。
3.2、 数据包查看
想要查看发布出来的消息数据包,可以使用mqtt.fx软件(随本说明文档一起打包提供)。
设置mqtt.fx参数:安装mqtt.fx软件,运行软件后设置服务器的IP地址和端口号等参数。本例仅需设置服务器IP地址为127.0.0.1,服务端口为1883即可。
2)连接服务器。
3)查看客户端发布的消息。订阅对应主题后,使用McgsPro模拟工程发布一条消息,就可以从mqtt.fx查看到客户端发布的消息。
4)使用mqtt.fx也可发布消息,可以将Subscribe收到的消息复制到Publish界面,修改对应数据的值后发布给模拟工程,模拟工程收到消息后也会更新数据显示。
能使用mqtt.fx软件订阅和发布模拟工程对应主题的消息,则表示工程组态正确。
3.3、 远端服务器验证
也可以使用mqtt.fx软件验证远端服务器是否部署正确,只需要将设置界面中的服务器通信参数设置为远端服务器的参数,即可对远端服务器进行发布和订阅测试。
2)开启订阅
3)发布消息
4)查看消息:查看是否订阅到发布的消息,若成功则证明服务器正常,不成功则检查服务器。
相关文章:
【触摸屏功能测试】MQTT_STD本地调试说明-测试记录
1、MQTT简介 MQTT是一种基于发布/订阅模式的“轻量级”通讯协议。它是针对受限的、低带宽的、高延迟的、网络不可靠的环境下的网络通讯设备设计的。 发布是指客户端将消息传递给服务器,订阅是指客户端接收服务器推送的消息。每个消息有一个主题,包含若干…...
六十分之十三——黎明前
目录一、目标二、计划三、完成情况四、提升改进(最少3点)五、意外之喜(最少2点)六、总结一、目标 明确可落地,对于自身执行完成需要一定的努力才可以完成的 1.8本技术管理书籍阅读(使用番茄、快速阅读、最后输出思维导图)2.吴军系列硅谷来信1听书、香帅的北大金融…...
【Call for papers】CRYPTO-2023(CCF-A/网络与信息安全/2023年2月16日截稿)
Crypto 2023 will take place in Santa Barbara, USA on August 19-24, 2023. Crypto 2023 is organized by the International Association for Cryptologic Research (IACR). The proceedings will be published by Springer in the LNCS series. 文章目录1.会议信息2.时间节…...
线程的信号量和互斥量
文章目录线程的信号量初始化信号量:sem_init减少信号量:sem_wait增加信号量:sem_post删除信号量:sem_destroy代码示例线程的互斥量初始化互斥量:pthread_mutex_init锁住互斥量:pthread_mutex_lock解锁互斥量…...
关于Linux,开源社区与国产化的本质区别
因为生产力驱动而非理想主义驱动。 开源运动的蓬勃发展来自于GNU(GNU is not unix),RichardMatthewStallman领导着一群黑客,带着对比尔盖茨的鄙视,制定了GPL协议,以后人人都能从伟大的前人身上学习到源代码的精髓,让软…...
Win11下Linux子系统迁移方法及报错解决
Win11 将Linux子系统从C盘迁移到其他盘Win11下Linux子系统迁移方法及报错解决1、下载LxRunOffline2、ERROR:directory is not empty 报错解决参考链接Win11下Linux子系统迁移方法及报错解决 C盘满了,Ubuntu子系统占了100多G怎么办?直接将子系…...
python维护的一些基础方法
1】通过命令行查看python安装库的基本信息 pip show numpy # 查看python中numpy库的安装版本信息 2】python 环境的开发与维护 python的开发与C\MATLAB等最大的不同就是,python中版本的更新不对历史版本负责,就是说你以历史版本开发的python程序&#…...
C语言 数组元素的指针
1.一个变量有地址,一个数组包含若干个元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。 2.指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放入一个指针变量中)。 3.所谓…...
(C语言)指针进阶
问:1. ( ),[ ],->,,--,. ,*的操作符优先级是怎么样的?2. Solve the problems:只有一个常量字符串与一个字符指针,该怎么打印常量字符串所有内容…...
DS期末复习卷(三)
选择题 某数据结构的二元组形式表示为A(D,R),D{01,02,03,04,05,06,07,08,09},R{r},r{<01,02>,<01&a…...
Java链表模拟实现+LinkedList介绍
文章目录一、模拟实现单链表成员属性成员方法0,构造方法1,addFirst——头插2,addLast——尾插3,addIndex——在任意位置插入3.1,checkIndex——判断index合法性3.2,findPrevIndex——找到index-1位置的结点…...
MySQL——单表、多表查询
一、单表查询 素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varcha…...
关于表的操作 数据库(3)
目录 前期准备工作: 一、单表查询: 二、多表查询: 前期准备工作: 修改数据库的配置文件,,使其可以显示库名,其中//d代表当前使用的数据库名 注:vim /etc/my.cnf.d/mysql-server.c…...
C++:红黑树
红黑树的概念 红黑树是一棵二叉搜索树,但是红黑树通过增加一个存储位表示结点的颜色RED或BLACK。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出2倍,因而是接近平衡的。 红黑树的性质 ⭐…...
每天一道算法题の中缀表达式
中缀表达式(、-、*、/) :中缀表达式是指操作符位于操作数之间的数学表达式。例如,在中缀表达式"2 3"中,操作符""位于操作数"2"和"3"之间。现给定一个中缀表达式,…...
Dar语法基础-泛型
泛型 如果查看基本数组类型 List 的 API 文档,您会发现该类型实际上是 List<E>。 <…> 表示法将 List 标记为泛型(或参数化)类型——具有正式类型参数的类型。 按照惯例,大多数类型变量的名称都是单字母的࿰…...
rt-thread------串口(一)配置
系列文章目录 rt-thread 之 fal移植 rt-thread 之 生成工程模板 文章目录系列文章目录前言一、串口的配置step1:通过串口名字找到串口句柄step2:配置串口参数step3:设置串口接收回调函数step4:打开串口设备前言 UART(…...
Android - 自动系统签名
一、系统签名 以下是两类应用开发场景: 普通应用开发:使用公司自定义 keystore 进行签名,如:微信、支付宝系统应用开发:使用 AOSP 系统签名或厂商自定义 keystore 进行签名,如:设置、录音 系…...
SSH 服务详解 (八)-- vscode 通过 SSH 远程连接 linux 服务器
vscode 通过 SSH 远程连接 linux 服务器 SSH服务详解(一)–Linux SSH 服务器与客户端的安装与启动 SSH服务详解(二)–使用私钥登录 SSH 服务器(免密登录) SSH 服务详解 (三)-- 使用 SSH 代理 SSH 服务详解 (四)-- 本地调用远程主机的命令 SSH 服务详解 (五)-- 远程文件拷贝…...
【PTA Advanced】1060 Are They Equal(C++)
目录 题目 Input Specification: Output Specification: Sample Input 1: Sample Output 1: Sample Input 2: Sample Output 2: 思路 C 知识点UP 代码 题目 If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered …...
仿真与测试:通过Signal Builder模块生成输入信号
本文研究通过Signal Builder模块生成输入信号的方法。 文章目录1 生成输入信号2 仿真过程2.1 搭建被测模型2.2 搭建Signal Builder输入模块2.3 配置仿真log及仿真3 总结1 生成输入信号 在汽车的电控软件开发中,经常会在Simulink模型内部进行单元测试。单元测试的本…...
云计算培训靠谱吗?
怎么算靠谱的培训呢? 举个例子: 我想参加云计算培训找个工作,机构满足了我的要求,有工作了,但是不是做云计算相关的。 小强也参加了云计算培训,想学好云计算成为技术大牛,最后专业学得普普通…...
力扣SQL刷题10
目录标题618. 学生地理信息报告--完全不会的新题型1097. 游戏玩法分析 V - 重难点1127. 用户购买平台--难且不会618. 学生地理信息报告–完全不会的新题型 max()函数的功效:(‘jack’, null, null)中得出‘jack’,(nul…...
31 岁生日快乐,Linux!
Linux 迎来了 31 岁生日,所以和我一起庆祝 Linux 的 31 岁生日吧,喝上一杯好香槟和一个美味的蛋糕!虽然有些人不承认 8 月 25 日是 Linux 的生日,但我知道。1991 年 8 月 25 日,21 岁的芬兰学生 Linus Benedict Torval…...
分布式ID生成方案
文章目录前言一、分布式ID需要满足的条件二、分布式ID生成方式基于UUID数据库自增数据库集群数据库号段模式redis ID生成基于雪花算法(Snowflake)模式百度(uid-generator)美团(Leaf)滴滴(Tinyid…...
合宙Air103|fbd数据库| fskv - 替代fdb库|LuatOS-SOC接口|官方demo|学习(16):类redis的fbd数据库及fskv库
基础资料 基于Air103开发板:🚗 Air103 - LuatOS 文档 上手:开发上手 - LuatOS 文档 探讨重点 对官方社区库接口类redis的fbd数据库及fskv库的调用及示例进行复现及分析,了解两库的基本原理及操作方法。 软件及工具版本 Luat…...
【论文精读】Deep Residual Learning for Image Recognition
1 Degradation Problem💦 深度卷积神经网络在图像分类方面取得了一系列突破。深度网络自然地将低/中/高级特征和分类器以端到端的多层方式集成在一起,特征的“层次”可以通过堆叠层数(深度)来丰富。最近的研究揭示了网络深度是至关重要的,在具…...
Lesson2:基础语法、输出输入
一、基础语法 1、行结构 一个Python程序可分为许多逻辑行,一般来说:一个语句就是一行代码,不会跨越多行。 """比如下面的Python程序,一共有3个逻辑行,每一行都通过print()输出一个结果。""…...
android 9.0去掉前置摄像头闪光灯功能
1.1概述 在9.0的系统rom定制化开发中,在系统中camera2也是非常重要的一部分功能,在很多场合会用到camera2拍照视频,等等功能, 但是在使用过程中发现系统camera2在使用的时候,在前置摄像头进行拍照的时候,会出现闪光灯的情况,对于产品来说,者就是一个大问题,所以产品要求…...
静态分析工具Cppcheck在Windows上的使用
之前在https://blog.csdn.net/fengbingchun/article/details/8887843 介绍过Cppcheck,那时还是1.x版本,现在已到2.x版本,这里再总结下。 Cppcheck是一个用于C/C代码的静态分析工具,源码地址为https://github.com/danmar/cppcheck …...
做棋牌开发的网站/seo推广系统排名榜
M A T LAB直接转矩控制开关状态的选择实现苗敬利1 刘增环1 马文辉21.河北工程学院2.河北邯郸市农业学校摘要:详细论述了开关状态选择的基本原理,给出了一种基于M ATLAB的SIM U LINK环境下的开关状态选择的实现方法,并给出了仿真结果。关键词:开关状态选择 M ATLAB 仿真 直…...
网站制作建/seo最新教程
docker镜像加速 阿里云,容器镜像服务 进入控制台 开通容器镜像服务 https://homenew.console.aliyun.com/ 配置镜像加速器 阿里云容器镜像服务为我们提供了镜像加速器,使用加速器可以提升获取 Docker 官方镜像的速度,不搞慢得很。。。 htt…...
常州想做个企业的网站找谁做/百度seo排名软
1 23456789查询汽车页面1011<?php 12 //造链接对象。取出用户传的值13 $db new MySQLi("localhost","root","511108","text");14 //1先定个$name "";变量15 //$name $_POST["name"];//取name的值16 $tj &…...
人社局网站建设/网推是什么
ClassLoader翻译过来就是类加载器,普通的Java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,…...
无锡哪里做网站/seo专员是什么
胆大心细做事,低调谦虚做人!转载于:https://blog.51cto.com/09112012/2051790...
2021年最火的网页游戏/旅游企业seo官网分析报告
1. SET DEADLOCK_PRIORITY 说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。 语法:SET DEADLOCK_PRIORITY { LOW | NORM…...