安卓蓝牙设备连接仪器的数据交互

                              刚刚进来实现,就接到一个关于蓝牙设备和仪器数据交互来读取XXXX的任务,其实简称就是XXXX阅读器。

当时一个刚刚出来实习的我···感觉压力山大啊··可是有没有办法不做,就自己一个研究了很几天才写出来。

                              所以,我把我走过的路和大家一起分享一下。


下面是一个数据协议···其实只要看懂了这个其他的都很esay了


        

握手的数据协议包:


同步码  0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55  
 包头 0x04,
 长度  0x06, 0x00, 
 加密  0x00, 
 模块号 0x00,
 功能号  0x01, 

数据  'W'       (假设数据为W)

crc16   0x02,0x51


java代码:

//设置数据内容
ByteArrayBuffer arrayBuffer=new ByteArrayBuffer(1024*5);


for (int i = 0; i < 8; i++) {
arrayBuffer.append(0x55);
}
arrayBuffer.append(0x04);//包头
byte[] lengthBs=toLH(6);//长度
arrayBuffer.append(lengthBs[0]);//固定长度,低端位在前
arrayBuffer.append(lengthBs[1]);//数据长度
arrayBuffer.append(0X00);//加密
arrayBuffer.append(0X00);//模块号
arrayBuffer.append(0X01);//功能号
arrayBuffer.append('W');//数据        
byte[] bstem={lengthBs[0],lengthBs[1],0X00,0X00,0X01,'W'};
// byte[] bsCrc= toLH(CodecUtil.crc16Short(bstem));
// byte[] bs2=CodecUtil.crc16Bytes(bstem);
CRC16 c=new CRC16();
int bcrc=c.crcUtil(bstem);
Log.w("Tag bcrc: ", Integer.toHexString(bcrc) + "");
arrayBuffer.append(bcrc&0xff);//校验
arrayBuffer.append((byte)((bcrc>>8)&0xff));//校验
arrayBuffer.append(0x06);//包尾

-------------------------------------------------------------------------------------------------------------------------------------------------握手成功之后就是 功能数据包的交互了



功能数据包



数据包分析看上面···


java的代码:

ByteArrayBuffer arrayBuffer=new ByteArrayBuffer(100);
byte[] lengthBs=toLH(5);//长度
arrayBuffer.append(lengthBs[0]);//固定长度,低端位在前
arrayBuffer.append(lengthBs[1]);//数据长度
 
//lengthBs[0],lengthBs[1]  长度---低端在前、高端在后
 
byte[] bstem={lengthBs[0],lengthBs[1],0X00,0X0A,0X04};
CRC16 c=new CRC16();
int bcrc=c.crcUtil(bstem);
 
byte[] rbytes = new byte[]{0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
0x04, 0x05, 0x00, 0x00, 0x0A, 0x04,(byte) (bcrc&0xff), (byte)((bcrc>>8)&0xff), 0x06};
 
outputStream.write(rbytes);





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值