首页 > 其他分享 >【干货】超详细!TPC7062封装MQTT协议教程

【干货】超详细!TPC7062封装MQTT协议教程

时间:2022-12-02 18:33:52浏览次数:58  
标签:字符 封装 TPC7062 报文 MQTT 干货 串口 服务器

【干货】超详细!TPC7062封装MQTT协议教程

一.功能简介

通过将报文分解为16进制格式的字符串(比如:101C00044D51545404C2),再通过TPC-7062进行组包,利用串口服务器的TCP/IP协议栈连接服务器,实现TCP客户端透明传输连接MQTT服务器。

实现MQTT协议直连的前提是设备本身具有或者是外接串口联网设备实现,比如笔者所使用的TPC7062是不具备TCP/IP协议栈的纯串口控制屏,可通过连接亿佰特公司所生产的串口服务器(NB114)实现TCP客户端连接服务器。

NB114串口服务器本身就具对MQTT协议进行封装,可直接实现串口设备连接MQTT服务器,本文为了分析MQTT报文将不使用MQTT模式连接服务器,仅使用TCP客户端模式连接MQTT服务器通过MCGS脚本对数据进行组包发送。

二.报文详解

TPC驱动使用和字符转换:

TPC7062使用官方提供的扫码枪设备驱动,实现该功能不可使用Modbus等具有协议的驱动需,要使用支持串口数据透明传输的设备驱动。由于设备多处会使用到字符转换,因此独立配置三个“用户策略”用于字符转换:MQTT协议报文中TPC驱动和字符转换教程

MQTT字符长度计算:PC7062封装MQTT协议字符长度计算教程

连接报文:PC7062封装MQTT协议链接报文步骤教程

心跳报文:

PINGREQ:C0 00

服务器返回:D0 00

心跳报文基于MCGS的循环策略周期发送,

【干货】超详细!TPC7062封装MQTT协议教程_串口


【干货】超详细!TPC7062封装MQTT协议教程_服务器_02

订阅报文

SUBSCRIBE:82 +字符总长度(遵循剩余字符算法)+00 00+订阅地址长度(2字节)+订阅地址+服务等级(00、01、02).....+订阅地址+服务等级(00、01、02)(可同时订阅多个主题)。

服务器响应:9003000000(最大Qos0),9003000001(最大QoS1)。

MCGS脚本配置如下:

【干货】超详细!TPC7062封装MQTT协议教程_串口_03


第一步:初始化发送缓存变量;

第二步:为发送缓存变量写入报文标识符(0000);

第三步:传入SUB-TOPIC字符到计算缓存变量,用于计算和字符转换(调用前文提到的长度计算脚本和ASCII转HEX脚本);

第四步:保存计算结果;

【干货】超详细!TPC7062封装MQTT协议教程_串口_04


第五步:封装服务等级仅支持0、1;

【干货】超详细!TPC7062封装MQTT协议教程_服务器_05


第六步:将之前的缓存的字符串传入长度计算算出字符总长;

【干货】超详细!TPC7062封装MQTT协议教程_封装_06


第七步:封装报文头及可变长度;

【干货】超详细!TPC7062封装MQTT协议教程_服务器_07


第八步:等待服务器响应;

【干货】超详细!TPC7062封装MQTT协议教程_封装_08


若订阅请求报文发送错误(非服务器许可主题和服务等级)服务器会断开连接,因此超时后发送心跳更新在线状态;

发布报文:PC7062封装MQTT协议发布报文教程  

三.实例演示

通过连接阿里云MQTT服务器,并使用阿里云NTP服务获取当前时间,请求格式参考阿里云用户手册NTP服务

查看技术文章和免费咨询技术问题可以访问我司官网及各官方平台:

微信号:cdebyte

今日头条:亿佰特

新浪微博:成都亿佰特

亿佰特人每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多产品更多资料,感兴趣的小伙伴可以登录我们的官网http://www.ebyte.com/行了解,还有客服小姐姐在线答疑哦!成都亿佰特--物联网应用专家,随时在身边,时刻准备为您服务!

标签:字符,封装,TPC7062,报文,MQTT,干货,串口,服务器
From: https://blog.51cto.com/ebyte/5907393

相关文章

  • #yyds干货盘点# 名企真题专题:
    1.简述:描述22娘和33娘接到了小电视君的扭蛋任务:一共有两台扭蛋机,编号分别为扭蛋机2号和扭蛋机3号,22娘使用扭蛋机2号,33娘使用扭蛋机3号。扭蛋机都不需要投币,但有一项特殊能力......
  • #yyds干货盘点#【愚公系列】2022年12月 微信小程序-项目篇(公交查询)-01周边站点
    前言1.公交车站的意义转变现有出行模式,倡导公共交通和混合动力汽车、电动车、自行车等低碳或无碳方式,同时也丰富出行生活,增加出行项目。扭转奢华浪费之风,强化清洁、方便......
  • #yyds干货盘点# 名企真题专题:序列找数
    1.简述:描述从非负整数序列 0,1,2,...,n中给出包含其中n个数的子序列,请找出未出现在该子序列中的那个数。输入描述:输入为n+1个非负整数,用空格分开。其中:首个数字为非负......
  • 干货|成为优秀软件测试工程师的六大必备能力
    “软件吞噬世界”、“软件定义一切”。随着软件行业的迅速发展,保障软件质量的关键环节——软件测试也变得越来越重要。而执行测试工作的测试工程师,便是软件质量的把关者。......
  • #yyds干货盘点# LeetCode程序员面试金典:一次编辑
    题目:字符串有三种编辑操作:插入一个英文字符、删除一个英文字符或者替换一个英文字符。给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。 示例 1:输入......
  • 干货 | 企业如何快速采集分析日志?
    数字化时代,企业对快速采集日志的需求日益递增,对于个人开发者和企业来说,日志采集也有的截然不同的复杂度。“快速”这个需求的本质在于,如何利用比较方便部署且成熟可靠的技术......
  • 干货 | 五大关键点,帮助企业快速构建可落地的IT服务管理体系
    随着数字化转型的发展,IT运维管理环境日益复杂,对管理的要求也随之增高如何提升运维效率,快速落地做好运维管理,搭建一套IT服务管理必不可少,以往我们也对IT服务管理框架进行过总......
  • 干货 | 博云基于OVS自研容器网络插件在金融企业的落地实践
     过去几年博云在企业中落地容器云平台遇到了很多痛点,其中一个比较典型的痛点来自网络方面,今天很高兴跟大家聊聊这个话题并介绍下我们基于OVS自研的CNI插件——内部称之为fa......
  • 十二条后端开发经验分享,纯干货,总有一条你不知道
    前言本文是博主从事后端开发以来,对公司、个人项目的经验总结,包含代码编写、功能推荐、第三方库使用及优雅配置等,希望大家看到都能有所收获博主github地址:https://gith......
  • MQTT 基础知识
    参考文档:https://mqtt.org/getting-started/MQTT是物联网(IoT)最常用的消息传输协议。MQTT是MQ遥测传输的缩写。该协议是一套规则,定义了物联网设备如何通过互联网发布和订阅......