您好,
会员登录 快速注册
退出 ( 条未读消息)
关于本站 意见反馈 首页

公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!
全部文章分类
  • 人工智能 >

  • 编程语言 >

  • WPF系列 >

  • ASP.NET系列 >

  • Linux >

  • 数据库 >

  • 嵌入式 >

  • WEB技术 >

  • PLC系列 >

  • 微服务与框架 >

  • 小宅DIY >

  • 学习资料 >

OpenCv基础 ANN车牌识别 yolov5车牌识别 指针式仪表识别 ROS系列 YOLO Halcon Detectron2 昇腾AI ChatGPT在线体验 英伟达JETSON ChatGLM ChatTTS FunASR 地平线 ByteTrack 魔搭社区 LangChain
C C# C++ Python Java Go
WPF
ASP.NET小功能 GPS定位系统-MVC GPS定位系统-VUE ASP.NET WebRTC
Linux Linux内核 Shell MakeFile
MySql SqlServer Oracle
STM8 STM32 51单片机
VUE入门 HTML JavaScript CSS layui镜像网站 ElementUi中文官网 element-plus 图标
三菱 欧姆龙 西门子 施耐德 松下 台达
IOTSharp IOTGateway ABP FRAMEWORK Docker
亚克力音响 编程仙途:智驭万法
面试题与技巧 Python入门技能树 微软C#教程
首页 编程之美 工具下载 全国就业 流量地图 文心一言
GPS定位系统-MVC
.NET6.0 GPS定位系统介绍(物联网) 系列源码下载 1、新建.net core web工程 2、添加自定义登录页面 3、添加百度地图页面 4、添加后台日志系统 5、添加mysql数据存储 6、添加SqlServer数据存储(额外内容) 7、用户注册与登录功能实现 8、添加坐标报表页面(用于遍历地图坐标) 9、前后端数据交互与报表数据展示 10、报表数据的编辑与修改 11、用户登录与退出 12、自定义GPRS通讯协议 13、添加TCP通讯功能(接收) 14、添加TCP通讯功能(发送) 15、模拟GPRS数据通讯 16、设备链接状态检测与提示 17、新建Windows Server虚拟机 18、服务器IIS运行环境配置 19、服务器.net程序发布 20、关于如何配置.net3.1框架 21、关于如何配置.net5.0框架 22、WinForm版地图上位机(带数据库和TCP功能) 23、WPF版地图上位机(带数据库和TCP功能) 24、公网映射与外网通讯 25、GPS协议与AT命令流程说明 26、GPRS协议与AT命令流程说明 27、STM32、A9G硬件连接图 28、STM32开发环境搭建 29、STM32 GPS/GPRS通讯功能实现 30、STM32 GPS定位数据上报服务器 31、室外最终效果演示 32、结束语
11、用户登录与退出
13、添加TCP通讯功能(接收)
激萌の小宅 小宅博客网 GPS定位系统-MVC

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

自定义GPRS通讯协议 - (第十二讲)

视频讲解如下:


工程源码下载:GPS定位系统系列教程源码下载


        整个项目的前端部分,在上一节中已经基本完成了,当前章节主要是教大家如何通信协议,不讲代码,同时也是为了后续TCP通信做准备。在物联网通讯中,通讯协议的设计,有时也是直接决定你系统稳定性的一个关键指标。

        关于我们协议中使用的数据类型说明如下:

数据类型

描述及要求

BYTE

无符号单字节整型(字节,8位)

WORD

无符号双字节整型(字,16位)

DWORD

无符号四字节整型(双字,32位)

BYTE[n]

n字节

BCD[n]

8421码,n字节

STRING

GBK编码,若无数据,置空

        

        我们物联网通信协议一般都是按modbus的协议格式来设计的,通常都会包含如下几个内容:

1、网络识别码:

        网络识别码也是校验方式的一种,其主要功能是用于识别数据包的包头,在串口等低速率或者高速率的情况下,如果接收处理的不好,就很容易出现数据被拆包和和拼包的现象。此时,这个字段就会变的非常有用,可以用来识别一个包的起始位置,然后对拼包或者拆包数据进行重新组装,从而实现数据还原,当然,该字段你不一定只用一个字符来表示,同样的,你也可以改成任意N个字符来作为包头使用。


2、数据包长度:

        通常该字段并非一定需要,可有可无。该字段通常是为了说明当前数据包有多长,当出现拼包或者拆包现象时,你就可以通过该字段知道,当前数据包一共有多少个字符,这个能让你更准确的还原完整的数据包。当然了,当你同类型功能码的数据载荷长度是固定的时候,该字段的作用就不是特别大了,完全可以忽略,当你载荷长度属于动态的时候,并且很容易发生拆包和拼包现象的时候,最好还是加上该字段,这对你还原数据还是很有用的。

        在当前GPS定位系统项目中,由于数据载荷长度基本都是固定的,所以在设计协议时,该字段我们目前可以忽略。


3、设备类型:

        该字段的作用是用于区分下位机类型的,比如GPS设备你可以定义为1,温湿度设备,你可以定义为2,以此类推。

        一般情况下,同种类型的设备共用同种设备类型ID。


4、设备号:

        设备号的作用是:当同种设备的类型的数量很多时,设备号的作用是对每个设备进行独立编号。这样,系统就能对下位机设备进行详细区分了。


5、包号:

        包号的作用主要是为了确保每个通讯包的唯一性,当相同的命令需要重复发送时,此时就可以通过包号来做区分,该字段通常是按不断累加的方式进行递增的,当达到最大值时,再从0开始重新计数,通常,我们可以通过判断包号的连续性,来判断通讯的稳定情况,从而确保系统的稳定性。


6、功能码:

        功能码的作用主要是为了说明当前数据包属于哪种功能,比如:开、关或者查询等等。


7、数据:    

        该字段属于当前数据包主体部分,保存了当前数据包需要发送的所有数据内容,并且数据长度可以动态变化。

        当前GPS定位系统项目中,我们的GPS坐标数据就是放在该字段中。


8、校验码:

        校验方式,你可以采用单字节的异或校验,或者双字节的CRC16校验,在数据较为简单的情况下,我们一般采用异或校验。如果通讯数据种类较多,数据长度经常动态变化,我这里推荐采用CRC16校验。


        按照前面的说明,我们最终的协议格式如下:

网络识别码

设备类型

设备号

包号

功能码

数据

校验码

BYTE

BYTE

WORD

WORD

BYTE

BYTE[n]

BYTE


11、用户登录与退出
13、添加TCP通讯功能(接收)

友情链接: CSDN激萌の小宅 95知识库 自考题库 罗分明个人网络博客 精益编程leanboot

小宅博客  www.bilibili996.com All Rights Reserved. 备案号: 闽ICP备2024034575号

网站经营许可证  福建省福州市 Copyright©2021-2025 版权所有

小宅博客
首页 智能家居 地图定位
公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

自定义GPRS通讯协议 - (第十二讲)

视频讲解如下:


工程源码下载:GPS定位系统系列教程源码下载


        整个项目的前端部分,在上一节中已经基本完成了,当前章节主要是教大家如何通信协议,不讲代码,同时也是为了后续TCP通信做准备。在物联网通讯中,通讯协议的设计,有时也是直接决定你系统稳定性的一个关键指标。

        关于我们协议中使用的数据类型说明如下:

数据类型

描述及要求

BYTE

无符号单字节整型(字节,8位)

WORD

无符号双字节整型(字,16位)

DWORD

无符号四字节整型(双字,32位)

BYTE[n]

n字节

BCD[n]

8421码,n字节

STRING

GBK编码,若无数据,置空

        

        我们物联网通信协议一般都是按modbus的协议格式来设计的,通常都会包含如下几个内容:

1、网络识别码:

        网络识别码也是校验方式的一种,其主要功能是用于识别数据包的包头,在串口等低速率或者高速率的情况下,如果接收处理的不好,就很容易出现数据被拆包和和拼包的现象。此时,这个字段就会变的非常有用,可以用来识别一个包的起始位置,然后对拼包或者拆包数据进行重新组装,从而实现数据还原,当然,该字段你不一定只用一个字符来表示,同样的,你也可以改成任意N个字符来作为包头使用。


2、数据包长度:

        通常该字段并非一定需要,可有可无。该字段通常是为了说明当前数据包有多长,当出现拼包或者拆包现象时,你就可以通过该字段知道,当前数据包一共有多少个字符,这个能让你更准确的还原完整的数据包。当然了,当你同类型功能码的数据载荷长度是固定的时候,该字段的作用就不是特别大了,完全可以忽略,当你载荷长度属于动态的时候,并且很容易发生拆包和拼包现象的时候,最好还是加上该字段,这对你还原数据还是很有用的。

        在当前GPS定位系统项目中,由于数据载荷长度基本都是固定的,所以在设计协议时,该字段我们目前可以忽略。


3、设备类型:

        该字段的作用是用于区分下位机类型的,比如GPS设备你可以定义为1,温湿度设备,你可以定义为2,以此类推。

        一般情况下,同种类型的设备共用同种设备类型ID。


4、设备号:

        设备号的作用是:当同种设备的类型的数量很多时,设备号的作用是对每个设备进行独立编号。这样,系统就能对下位机设备进行详细区分了。


5、包号:

        包号的作用主要是为了确保每个通讯包的唯一性,当相同的命令需要重复发送时,此时就可以通过包号来做区分,该字段通常是按不断累加的方式进行递增的,当达到最大值时,再从0开始重新计数,通常,我们可以通过判断包号的连续性,来判断通讯的稳定情况,从而确保系统的稳定性。


6、功能码:

        功能码的作用主要是为了说明当前数据包属于哪种功能,比如:开、关或者查询等等。


7、数据:    

        该字段属于当前数据包主体部分,保存了当前数据包需要发送的所有数据内容,并且数据长度可以动态变化。

        当前GPS定位系统项目中,我们的GPS坐标数据就是放在该字段中。


8、校验码:

        校验方式,你可以采用单字节的异或校验,或者双字节的CRC16校验,在数据较为简单的情况下,我们一般采用异或校验。如果通讯数据种类较多,数据长度经常动态变化,我这里推荐采用CRC16校验。


        按照前面的说明,我们最终的协议格式如下:

网络识别码

设备类型

设备号

包号

功能码

数据

校验码

BYTE

BYTE

WORD

WORD

BYTE

BYTE[n]

BYTE