0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_10471008 来源:jf_10471008 作者:jf_10471008 2022-12-02 18:22 次阅读

一.功能简介

通过将报文分解为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的循环策略周期发送,

pYYBAGOJ0e6AYZLXAAAoCAcVqbY108.png


poYBAGOJ0e-ASD6cAAATOQWb7Ro640.png


订阅报文

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

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

MCGS脚本配置如下:

pYYBAGOJ0fCABaHxAABFMO4KYUs675.png

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

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

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

第四步:保存计算结果;

poYBAGOJ0fGAfnq3AAAJ-VVBbJg419.png

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

pYYBAGOJ0fGAbrvEAAALt0ZpRX0438.png

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

pYYBAGOJ0fKAK4_JAAAFTWvUvhE592.png

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

poYBAGOJ0fOAMU8JAAAEJDW1DbY103.png

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

pYYBAGOJ0fOAf89SAAAutXPMCeA001.png

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

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

三.实例演示

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

pYYBAGOJ0fqAL0v9ABJl9Oyq-_g532.png


审核编辑黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 封装
    +关注

    关注

    124

    文章

    7283

    浏览量

    141104
  • MQTT
    +关注

    关注

    5

    文章

    538

    浏览量

    21981
收藏 人收藏

    评论

    相关推荐

    调试触摸屏时触摸屏一直发01 03 FF FF FF FF 00 01 73 38硬件环境是:触摸屏---MODBUS协议的单片机开发板,触摸屏做主机

    在使用MCGS嵌入式组态环境开发TPC7062应用时,设备选用莫迪康ModbusRTU,用串口调试助手接收触摸屏发来的数据,触摸屏一直发01 03 FF FF FF FF 00 01 73 38
    发表于 07-13 12:16

    MQTT是什么?MQTT协议的特点有哪些

    MQTT是什么?MQTT协议的特点有哪些?MQTT协议有几种消息发布服务质量啊?
    发表于 09-29 07:43

    mqtt-v3.1.1版协议

    mqtt-v3.1.1版协议,英文版,时间2014.10.29,物联网通信协议MQTT
    发表于 10-29 11:22 0次下载

    物联网硬件接入之通信协议MQTT,CoAP,LwM2M协议)的详细资料概述

    本文档的作用内容详细技术的是物联网硬件接入之通信协议MQTT,CoAP,LwM2M协议)的详细资料概述。
    发表于 09-11 16:25 18次下载
    物联网硬件接入之通信<b class='flag-5'>协议</b>(<b class='flag-5'>MQTT</b>,CoAP,LwM2M<b class='flag-5'>协议</b>)的<b class='flag-5'>详细</b>资料概述

    物联网硬件接入之通信协议MQTT,CoAP,LwM2M协议)的详细资料概述

    本文档的作用内容详细技术的是物联网硬件接入之通信协议MQTT,CoAP,LwM2M协议)的详细资料概述。
    发表于 09-11 16:25 283次下载
    物联网硬件接入之通信<b class='flag-5'>协议</b>(<b class='flag-5'>MQTT</b>,CoAP,LwM2M<b class='flag-5'>协议</b>)的<b class='flag-5'>详细</b>资料概述

    TPC TP协议族简单解读及网络数据格式及封装和解包的资料概述

    本文档的主要内容详细介绍的是TPC TP协议族简单解读及网络数据格式及封装和解包的资料概述。
    发表于 04-24 18:30 1次下载
    <b class='flag-5'>TPC</b> TP<b class='flag-5'>协议</b>族简单解读及网络数据格式及<b class='flag-5'>封装</b>和解包的资料概述

    干货MQTT协议开发入门

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级通讯协议,该协议
    的头像 发表于 10-25 09:16 3170次阅读

    无线通讯协议MQTT详细说明

    无线通讯协议MQTT详细说明
    发表于 01-10 09:42 41次下载

    MQTT 5协议你知道多少?

    MQTT协议是当今世界上最流行、接受度最高的物联网协议。自推出以来,MQTT协议在各行业应用广泛。本文带大家了解
    的头像 发表于 02-23 13:14 592次阅读

    MQTT 5协议中的基础更改(二)

    上期文章中给大家介绍了MQTT 5协议中基础更改的信息和CONNACK返回码,本篇文章我们继续介绍MQTT 5协议中其他新功能的细节。
    的头像 发表于 05-16 10:46 362次阅读
    <b class='flag-5'>MQTT</b> 5<b class='flag-5'>协议</b>中的基础更改(二)

    虹科干货 | MQTT 5协议你知道多少?

    虹科IIoTMQTT5协议你知道多少?虹科干货01MQTT5简介MQTT协议是当今世界上最流行、接受度最高的物联网
    的头像 发表于 03-29 15:44 616次阅读
    虹科<b class='flag-5'>干货</b> | <b class='flag-5'>MQTT</b> 5<b class='flag-5'>协议</b>你知道多少?

    智联物联分享之物联网协议MQTT简述,MQTT协议特点

    )基于客户端/服务器的信息发布/订阅的物联网常用传输协议。1999年由开发商IBM发布,MQTT协议是轻量、简单、开放和易于实现的,这些特点也使得MQTT
    的头像 发表于 03-28 18:10 806次阅读
    智联物联分享之物联网<b class='flag-5'>协议</b><b class='flag-5'>MQTT</b>简述,<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>特点

    虹科干货 | MQTT 5协议中的基础更改(一)

    虹科IIoTMQTT5协议中的基础更改(一)虹科干货01协议的基础性变化MQTT5是对现有协议规范的重大更新,新版本
    的头像 发表于 04-21 09:51 336次阅读
    虹科<b class='flag-5'>干货</b> | <b class='flag-5'>MQTT</b> 5<b class='flag-5'>协议</b>中的基础更改(一)

    虹科干货 | MQTT 5协议中的基础更改(二)

    IIoTMQTT5协议中的基础更改(二)上期文章中给大家介绍了MQTT规范版本5中基础更改的信息和CONNACK返回码,本篇文章我们继续介绍MQTT5协议中的基础更改中其他新功能的细节
    的头像 发表于 05-15 09:40 378次阅读
    虹科<b class='flag-5'>干货</b> | <b class='flag-5'>MQTT</b> 5<b class='flag-5'>协议</b>中的基础更改(二)

    物联网中的MQTT协议概述

    MQTT协议已经成了物联网通信中的一个热词,今天我们一起来学习一下关于MQTT协议的一些知识。
    的头像 发表于 11-25 14:09 882次阅读