js 实现SL651协议的CRC16 校验

创建 main.js

全部内容如下:

function calculateCRC16Modbus(dataHexString) {
    const dataBytes = [];
    for (let i = 0; i < dataHexString.length; i += 2) {
        dataBytes.push(parseInt(dataHexString.substr(i, 2), 16));
    }
 
    let crc = 0xFFFF;
    const polynomial = 0xA001;  // This is the polynomial x^16 + x^15 + x^2 + 1
    
    for (const byte of dataBytes) {
        crc ^= byte;
        for (let i = 0; i < 8; i++) {
            if (crc & 0x0001) {
                crc = ((crc >> 1) ^ polynomial) & 0xFFFF;
            } else {
                crc >>= 1;
            }
        }
    }
    
    return crc.toString(16).toUpperCase();
}

const dataHexString = "7E7E011000004277123432003A020001240628104006F1F1100000427748F0F0240628104020190000002619001415221900000038121254FF030831FF021B01750845200000040003";
const crc = calculateCRC16Modbus(dataHexString);
console.log(crc);  
console.log('7E7E011000004277123432003A020001240628104006F1F1100000427748F0F0240628104020190000002619001415221900000038121254FF030831FF021B017508452000000400031A79'); 

在cmd 使用 node main.js

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SL651协议是一种用于数据通信的标准协议。它主要用于下载数据,包括文件、图像、音频、视频等。 SL651协议具有以下特点: 1. 高效:SL651协议采用数据压缩和数据分块传输技术,可以将下载数据进行压缩,从而减小数据传输的大小,提高传输效率。 2. 安全:SL651协议支持数据加密和身份认证机制,确保下载数据的安全性,防止数据被非法篡改或窃取。 3. 灵活:SL651协议可以根据不同的应用场景和需求进行定制化配置,如选择传输协议、传输速率、校验方式等,以满足不同用户的需求。 4. 适应性强:SL651协议可以在不同的网络环境中使用,包括有线网络和无线网络,如互联网、局域网、蜂窝网络等,使其具有广泛的应用范围。 SL651协议的下载过程通常如下: 1. 客户端请求下载数据:客户端发起下载请求,包括所需下载的文件或数据的标识符和相关参数。 2. 服务器响应:服务器接收到下载请求后,根据请求进行处理,确定所需下载数据的位置和有效性,并发送响应给客户端。 3. 数据传输:客户端和服务器之间建立连接,通过SL651协议进行数据传输。传输过程中,数据可能会经过压缩、加密等处理。 4. 数据接收和校验:客户端接收到传输的数据后,进行解压缩和解密等操作,并进行数据校验,确保数据的完整性和正确性。 5. 下载完成:客户端将下载的数据保存或进行后续处理。 总之,SL651协议是一种高效、安全、灵活的下载协议,可广泛应用于各种数据传输场景,提供了有效的数据传输解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cn-zhang-leon

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

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

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

打赏作者

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

抵扣说明:

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

余额充值