吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1229|回复: 8
收起左侧

[求助] 求大佬帮看看蓝牙协议,小白看不懂

[复制链接]
nibiewabc 发表于 2021-6-1 18:03
这最近公司突然要说弄个蓝牙接收发送的项目,就直接丢个了蓝牙通信协议过来自己看,但是看了半天查了下资料还是搞不太懂啥意思,几进制什么的倒是明白,但是这怎么又分byte字节序号位的,还有要校验的完全搞不懂呀,这发送什么指令过去根本不知道怎么发送,文档是下面这样的说明。

APP发送:(参数变化时发送数据)
头码
命令
数据长度
数据(11bytes)
校验
尾码
0x5A
0xCx
0x10
Byte1
Byte2
……
Byte11
1bytes
0xA5
校验=头码^命令……^ Byte11命令0xC1:
字节序号
Bit位
位描述
Byte1
7
关机标志位:0-开机;1-关机
6
锁车标志位:0-解锁;1-锁车
5
速度单位标志位:0-公里;1-英里
4
巡航功能标志位:0-关闭;1-开启
3
零启动标志位:0-非零启动;1-零启动
0-2
档位值(1、2、3)
Byte2
7
前灯标志位:0-关灯;1-开灯
6
前灯模式标志位:0-手动;1-自动(光感)
5
氛围灯标志位:0-关灯;1-开灯
4
电子刹标志位:0-无电子刹;1-有电子刹
3
恢复出厂设置标志位:0-不恢复;1-恢复出厂设置
0-2
侧灯设置:000-关闭侧灯;001-A模式;010-B模式;011-C模式;100-D模式;101-E模式;110-F模式;111-G模式。
Byte3
7
总里程清零标志位:0-不清零;1-清零
0-6
备用标志位
Byte4
0-7
备用标志位
Byte5
0-7
侧灯色卡号状态-0-255
Byte6
0-7
自动关机时间(单位:分钟)0-255
Byte7
0-7
起步力度:0-100
Byte8
0-7
刹车力度:0-100
Byte9
0-7
大灯亮度:0-100
Byte10
0-7
备用
Byte11
0-7
备用

这Byte1到Byte11完全不明白,还有怎么这里又有个发送命令的16进制0xC1,这前面的校验又是什么回事,小白的我表示全懵逼了看不懂。查网上也查不到多少有用的东西,模模糊糊的就能知道一些进制什么的还有bit位。但是这里又是11个Byte又是校验的是什么情况。这我假如要发送Byte1的开机关机进制指令,和Byte2的前灯0-关灯,1-开灯进制指令,Byte3的清零不清零进制指令,这发送的指令要发送什么指令过去,这校验又是怎么校验的,求大佬解析下这发送指令是怎么推算过来的,完全不懂怎么发指令过去,发几进制的过去,而且发送的是什么。有没有做硬件的大佬帮看看,这指令前端是怎么发过去给蓝牙,到底是发什么指令过去。



求大佬给分析下是怎么看这些文档!!
求大佬给分析下是怎么看这些文档!!
求大佬给分析下是怎么看这些文档!!


感激不尽

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cdj68765 发表于 2021-6-1 22:26
如果你有单片机开发经验的话,可以很容易理解这些的 我举个例子吧
就拿Byte1来说,所谓的Bit位就是二进制,
一共8位
0 1 2 3 4 5 6 7
1 1 1 1 1 0 0 0
三挡,零启动,巡航功能开启,单位公里,解锁,开机
以上就是根据你发的文档,按照位描述写的
然后你把那串01的组合用进制换算下
11111000二进制换算成十六进制就是0xF8,那也就是说Byte1的值就是0XF8
后面还有10个Byte都按照这个格式来写
写完以后,你会得到一串根据位描述不同组成的十六进制串
然后把你上面也写了 校验码就等于从头码0x5A开始,到最后一个Byte11 按照异或运算得到的一个十六进制数,再加上尾码组成一段数组发送过去
不知道这样子说明不明白

免费评分

参与人数 2吾爱币 +3 热心值 +2 收起 理由
991547436 + 2 + 1 热心回复!
nibiewabc + 1 + 1 热心回复!

查看全部评分

骚客 发表于 2021-6-1 22:53
cube 发表于 2021-6-1 23:33
本帖最后由 cube 于 2021-6-1 23:47 编辑

头码、尾码、命令、长度这四个是固定的
头码、尾码、命令、长度、校验码占5个字节、数据占11个字节,共0x10个字节
校验码采用你们协商的校验方式计算出校验码  校验码=头码^命令^长度^Byte1^…Byte11
这里有个奇怪的问题,命令码是0xcx ,0xcx是多少?
另外长度是否是固定的,我保持存疑态度。或许也可以这样: 0x5a 0xcx 0x0A Byet1-Byte5 校验码 0xa5

字节序号, 比如第一个字节的数据Byte1, 每一位标识了不同的功能(详见你贴出的附表)。
你只需要按照你需要表达的功能为每一个字节、每一位分别赋值,然后用校验算法算出校验码就行了。
文档已经给的很详细了。


比如 0x5a 0xcx 0x10 Byte1=0x00 ......... 0xa5

头码 命令 长度 Byte1 ...Byte11 校验码 尾码
0x5a 0xcx 0x10 0x00 ...Byte11 校验码 0xa5
0x5a 0xcx 0x10 b0000,0000 ...Byte11 校验码 0xa5
0x5a 0xcx 0x10 查表得: 开机 解锁,公里单位,关闭巡航,非零启动,1挡 ...Byte11 校验码 0xa5

比如 0x5a 0xcx 0x10 Byte1=0x01 ......... 0xa5

头码 命令 长度 Byte1 ...Byte11 校验码 尾码
0x5a 0xcx 0x10 0x01 ...Byte11 校验码 0xa5
0x5a 0xcx 0x10 b0000,0001 ...Byte11 校验码 0xa5
0x5a 0xcx 0x10 查表得: 开机 解锁,公里单位,关闭巡航,非零启动,2挡 ...Byte11 校验码 0xa5

比如 0x5a 0xcx 0x10 Byte1=0x81 ......... 0xa5

头码 命令 长度 Byte1 ...Byte11 校验码 尾码
0x5a 0xcx 0x10 0x81 ...Byte11 校验码 0xa5
0x5a 0xcx 0x10 b1000,0001 ...Byte11 校验码 0xa5
0x5a 0xcx 0x10 查表得: 关机 解锁,公里单位,关闭巡航,非零启动,2挡 ...Byte11 校验码 0xa5

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
nibiewabc + 1 + 1 热心回复!

查看全部评分

 楼主| nibiewabc 发表于 2021-6-2 09:33
cdj68765 发表于 2021-6-1 22:26
如果你有单片机开发经验的话,可以很容易理解这些的 我举个例子吧
就拿Byte1来说,所谓的Bit位就是二进制 ...

感谢大佬,这么说我就知道了。
 楼主| nibiewabc 发表于 2021-6-2 09:36
cube 发表于 2021-6-1 23:33
[md]> 头码、尾码、命令、长度这四个是固定的
头码、尾码、命令、长度、校验码占5个字节、数据占11个字节 ...

好的,非常感谢回答,我大概知道要发什么指令了过去了。
 楼主| nibiewabc 发表于 2021-6-2 09:58
cdj68765 发表于 2021-6-1 22:26
如果你有单片机开发经验的话,可以很容易理解这些的 我举个例子吧
就拿Byte1来说,所谓的Bit位就是二进制 ...

大佬还有一个问题,这个校验码文档说是1bytes这个1bytes是8bit吗,这个8bit是那些转换过来的呢,还是转换什么获取的,然后我要发什么过去是占这个校验码位置呀。
cdj68765 发表于 2021-6-2 20:32
nibiewabc 发表于 2021-6-2 09:58
大佬还有一个问题,这个校验码文档说是1bytes这个1bytes是8bit吗,这个8bit是那些转换过来的呢,还是转换 ...

我想我和楼上那位,关于检验码的问题讲的都很清楚了
校验码=头码^命令^长度^Byte1^…Byte11
校验码=0x5A^0xC1^0x10^Byte1^Byte2^Byte3直到Byte11
其中^代表的是运算符号异或运算,这样子运算出来的结果也是一个十六进制数0x??

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
nibiewabc + 1 + 1 热心回复!

查看全部评分

 楼主| nibiewabc 发表于 2021-6-3 09:22
cdj68765 发表于 2021-6-2 20:32
我想我和楼上那位,关于检验码的问题讲的都很清楚了
校验码=头码^命令^长度^Byte1^…Byte11
校验码=0x5 ...

好的,谢谢解答我懂了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表