拌合楼管理系统(十五) 柯力D2008 与 D12 对接获取数据

本文介绍了耀华地磅系统的通讯协议,包括数据结构和异或校验的处理方法,以及如何通过代码实现异或校验功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言: 通讯协议与耀华的相同

        本篇有些纸上谈兵,因为没有柯力地磅系统实物来做对接,更多的是看他的产品说明书中的文档来实现数据对接。发现与耀华的协议是相同的,感觉应该代码可以通用。可以参考我前面关于耀华地磅对接的文章,这里主要说一下对一些之前疑惑问题的处理。


一、通讯协议格式

        所传送的数据为仪表的当前重量。每帧数据由 12 组数据组成 。格式如下表所示:

二、 第10和11为异或校验的处理

        异或=23⊕……89      异或校验高、低 4 位的确定:异或和高、低 4 位如果小于、等于 9,则加上 30h,成为 ASCII 码数字发送,例如:异或校验高 4 位为 6,加 30h 后,为 36h ASCII 码的 6 发送;异或和高、 4 位如果大于 9,则加上 37h,成为 ASCII 码字母发送,例如:异或校验高 4 位为 B,加 37h 后,为 42h ASCII 码的 B 发送。

三、异或校验简介

        BBC(Block Check Character)信息组校验码, 因校验码是将所有的数据异或得出,因此也成异或校验,具体的算法是:将每个字节的数据(一般是是两个16进制的字符)进行异或后得到校验码。

        列如: 16进制数据   01 A0 7C FF 02

        计算: 01 xor A0 xor 7C  xor FF  xor 02  = 20

        校验码是:20 

四、异或校验的代码实现

        知道了实现的逻辑,代码实现还是比较简单的。

          public byte GetCheckCode(byte[] data)
        {
            byte CheckCode = 0;
            int len = data.Length;
            for (int i = 0; i < len; i++)
            {
                CheckCode ^= data[i];
            }
            return CheckCode;
        }
 

        

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT大灰狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值