当前位置: 首页 > news >正文

【触摸屏功能测试】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客户端属性配置”界面
在“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&#xff0c;R)&#xff0c;D{01&#xff0c;02&#xff0c;03&#xff0c;04&#xff0c;05&#xff0c;06&#xff0c;07&#xff0c;08&#xff0c;09}&#xff0c;R{r}&#xff0c;r{<01&#xff0c;02>&#xff0c;<01&a…...

Java链表模拟实现+LinkedList介绍

文章目录一、模拟实现单链表成员属性成员方法0&#xff0c;构造方法1&#xff0c;addFirst——头插2&#xff0c;addLast——尾插3&#xff0c;addIndex——在任意位置插入3.1&#xff0c;checkIndex——判断index合法性3.2&#xff0c;findPrevIndex——找到index-1位置的结点…...

MySQL——单表、多表查询

一、单表查询 素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varcha…...

关于表的操作 数据库(3)

目录 前期准备工作&#xff1a; 一、单表查询&#xff1a; 二、多表查询&#xff1a; 前期准备工作&#xff1a; 修改数据库的配置文件&#xff0c;&#xff0c;使其可以显示库名&#xff0c;其中//d代表当前使用的数据库名 注&#xff1a;vim /etc/my.cnf.d/mysql-server.c…...

C++:红黑树

红黑树的概念 红黑树是一棵二叉搜索树&#xff0c;但是红黑树通过增加一个存储位表示结点的颜色RED或BLACK。通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出2倍&#xff0c;因而是接近平衡的。 红黑树的性质 ⭐…...

每天一道算法题の中缀表达式

中缀表达式&#xff08;、-、*、/&#xff09; &#xff1a;中缀表达式是指操作符位于操作数之间的数学表达式。例如&#xff0c;在中缀表达式"2 3"中&#xff0c;操作符""位于操作数"2"和"3"之间。现给定一个中缀表达式&#xff0c…...

Dar语法基础-泛型

泛型 如果查看基本数组类型 List 的 API 文档&#xff0c;您会发现该类型实际上是 List<E>。 <…> 表示法将 List 标记为泛型&#xff08;或参数化&#xff09;类型——具有正式类型参数的类型。 按照惯例&#xff0c;大多数类型变量的名称都是单字母的&#xff0…...

rt-thread------串口(一)配置

系列文章目录 rt-thread 之 fal移植 rt-thread 之 生成工程模板 文章目录系列文章目录前言一、串口的配置step1&#xff1a;通过串口名字找到串口句柄step2&#xff1a;配置串口参数step3&#xff1a;设置串口接收回调函数step4&#xff1a;打开串口设备前言 UART&#xff08…...

Android - 自动系统签名

一、系统签名 以下是两类应用开发场景&#xff1a; 普通应用开发&#xff1a;使用公司自定义 keystore 进行签名&#xff0c;如&#xff1a;微信、支付宝系统应用开发&#xff1a;使用 AOSP 系统签名或厂商自定义 keystore 进行签名&#xff0c;如&#xff1a;设置、录音 系…...

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 生成输入信号 在汽车的电控软件开发中&#xff0c;经常会在Simulink模型内部进行单元测试。单元测试的本…...

云计算培训靠谱吗?

怎么算靠谱的培训呢&#xff1f; 举个例子&#xff1a; 我想参加云计算培训找个工作&#xff0c;机构满足了我的要求&#xff0c;有工作了&#xff0c;但是不是做云计算相关的。 小强也参加了云计算培训&#xff0c;想学好云计算成为技术大牛&#xff0c;最后专业学得普普通…...

力扣SQL刷题10

目录标题618. 学生地理信息报告--完全不会的新题型1097. 游戏玩法分析 V - 重难点1127. 用户购买平台--难且不会618. 学生地理信息报告–完全不会的新题型 max()函数的功效&#xff1a;&#xff08;‘jack’, null, null&#xff09;中得出‘jack’&#xff0c;&#xff08;nul…...

31 岁生日快乐,Linux!

Linux 迎来了 31 岁生日&#xff0c;所以和我一起庆祝 Linux 的 31 岁生日吧&#xff0c;喝上一杯好香槟和一个美味的蛋糕&#xff01;虽然有些人不承认 8 月 25 日是 Linux 的生日&#xff0c;但我知道。1991 年 8 月 25 日&#xff0c;21 岁的芬兰学生 Linus Benedict Torval…...

分布式ID生成方案

文章目录前言一、分布式ID需要满足的条件二、分布式ID生成方式基于UUID数据库自增数据库集群数据库号段模式redis ID生成基于雪花算法&#xff08;Snowflake&#xff09;模式百度&#xff08;uid-generator&#xff09;美团&#xff08;Leaf&#xff09;滴滴&#xff08;Tinyid…...

合宙Air103|fbd数据库| fskv - 替代fdb库|LuatOS-SOC接口|官方demo|学习(16):类redis的fbd数据库及fskv库

基础资料 基于Air103开发板&#xff1a;&#x1f697; Air103 - LuatOS 文档 上手&#xff1a;开发上手 - LuatOS 文档 探讨重点 对官方社区库接口类redis的fbd数据库及fskv库的调用及示例进行复现及分析&#xff0c;了解两库的基本原理及操作方法。 软件及工具版本 Luat…...

【论文精读】Deep Residual Learning for Image Recognition

1 Degradation Problem&#x1f4a6; 深度卷积神经网络在图像分类方面取得了一系列突破。深度网络自然地将低/中/高级特征和分类器以端到端的多层方式集成在一起&#xff0c;特征的“层次”可以通过堆叠层数(深度)来丰富。最近的研究揭示了网络深度是至关重要的&#xff0c;在具…...

Lesson2:基础语法、输出输入

一、基础语法 1、行结构 一个Python程序可分为许多逻辑行&#xff0c;一般来说&#xff1a;一个语句就是一行代码&#xff0c;不会跨越多行。 """比如下面的Python程序&#xff0c;一共有3个逻辑行&#xff0c;每一行都通过print()输出一个结果。""…...

android 9.0去掉前置摄像头闪光灯功能

1.1概述 在9.0的系统rom定制化开发中,在系统中camera2也是非常重要的一部分功能,在很多场合会用到camera2拍照视频,等等功能, 但是在使用过程中发现系统camera2在使用的时候,在前置摄像头进行拍照的时候,会出现闪光灯的情况,对于产品来说,者就是一个大问题,所以产品要求…...

静态分析工具Cppcheck在Windows上的使用

之前在https://blog.csdn.net/fengbingchun/article/details/8887843 介绍过Cppcheck&#xff0c;那时还是1.x版本&#xff0c;现在已到2.x版本&#xff0c;这里再总结下。 Cppcheck是一个用于C/C代码的静态分析工具&#xff0c;源码地址为https://github.com/danmar/cppcheck …...

做棋牌开发的网站/seo推广系统排名榜

M A T LAB直接转矩控制开关状态的选择实现苗敬利1 刘增环1 马文辉21.河北工程学院2.河北邯郸市农业学校摘要:详细论述了开关状态选择的基本原理,给出了一种基于M ATLAB的SIM U LINK环境下的开关状态选择的实现方法,并给出了仿真结果。关键词:开关状态选择 M ATLAB 仿真 直…...

网站制作建/seo最新教程

docker镜像加速 阿里云&#xff0c;容器镜像服务 进入控制台 开通容器镜像服务 https://homenew.console.aliyun.com/ 配置镜像加速器 阿里云容器镜像服务为我们提供了镜像加速器&#xff0c;使用加速器可以提升获取 Docker 官方镜像的速度&#xff0c;不搞慢得很。。。 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翻译过来就是类加载器&#xff0c;普通的Java开发者其实用到的不多&#xff0c;但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制&#xff0c;也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去&#xff0c…...

无锡哪里做网站/seo专员是什么

胆大心细做事&#xff0c;低调谦虚做人&#xff01;转载于:https://blog.51cto.com/09112012/2051790...

2021年最火的网页游戏/旅游企业seo官网分析报告

1. SET DEADLOCK_PRIORITY 说明&#xff1a;控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据&#xff0c;并且直到其它进程释放自己的锁时&#xff0c;每个进程才能释放自己的锁&#xff0c;即发生死锁情况。 语法&#xff1a;SET DEADLOCK_PRIORITY { LOW | NORM…...