Vector - CAPL - CRC算法介绍(续)

这篇具有很好参考价值的文章主要介绍了Vector - CAPL - CRC算法介绍(续)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

         不常用CRC算法

Vector - CAPL - CRC算法介绍(续)

目录

Crc_CalculateCRC8H2F

代码示例

 Crc_CalculateCRC32P4

代码示例

Crc_CalculateCRC64

代码示例


Crc_CalculateCRC8H2F

Vector - CAPL - CRC算法介绍(续)

功能:根据数据计算CRC8H2F的相应校验和。

data:待计算CRC8H2F校验和的数据

dataSize:待计算CRC8H2F校验和的数据长度

dataOffset:用于计算有效载荷数据中的CRC的起始索引。

crcLength:计算CRC的数据长度。

crcStartValue:CRC初始值取决于它是第一次呼叫还是后续呼叫。如果firstCall为1,则忽略值。

firstCall:第一次调用或后续调用的标志。可能的值为0(后续调用)或1(第一次调用)。

ccCalculated:计算的CRC8H2F值

返回值:     

        0:成功计算出CRC8H2F校验和

        -1:CRC长度为0

        -2:偏移大于或等于长度

        -3:长度超出数组范围

        -4:长度和偏移量的摘要超出数组范围文章来源地址https://www.toymoban.com/news/detail-406272.html

代码示例

// first CALL, Offset '0'
on key 'a'
{
  long retval;
  dword crc;
  byte data[9] = {0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39};

  retval = Crc_CalculateCRC8H2F(data, elcount (data), 0, elcount (data), 0, 1, crc);
  write("CRC of data: 0x%X", crc);
}

// first CALL, Offset '2', Length - 2
on key 'b'
{
  long retval;
  dword crc;
  byte data[11] = {0xAA ,0xAA,0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39};

  retval = Crc_CalculateCRC8H2F(data, elcount (data), 2, elcount (data) -2, 0, 1, crc);
  write("CRC of data: 0x%X", crc);
}

 Crc_CalculateCRC32P4

Vector - CAPL - CRC算法介绍(续)

功能:根据数据计算CRC32P4的相应校验和。

data:待计算CRC32P4校验和的数据

dataSize:待计算CRC32P4校验和的数据长度

dataOffset:用于计算有效载荷数据中的CRC的起始索引。

crcLength:计算CRC的数据长度。

crcStartValue:CRC初始值取决于它是第一次呼叫还是后续呼叫。如果firstCall为1,则忽略值。

firstCall:第一次调用或后续调用的标志。可能的值为0(后续调用)或1(第一次调用)。

ccCalculated:计算的CRC32P4值

返回值:     

        0:成功计算出CRC32P4校验和

        -1:CRC长度为0

        -2:偏移大于或等于长度

        -3:长度超出数组范围

        -4:长度和偏移量的摘要超出数组范围

代码示例

// first CALL, Offset '0'
on key 'a'
{
  long retval;
  dword crc;
  byte data[9] = {0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39};

  retval = Crc_CalculateCRC32P4(data, elcount (data), 0, elcount (data), 0, 1, crc);
  write("CRC of data: 0x%X", crc);
}

// first CALL, Offset '2', Length - 2
on key 'b'
{
  long retval;
  dword crc;
  byte data[11] = {0xAA ,0xAA,0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39};

  retval = Crc_CalculateCRC32P4(data, elcount (data), 2, elcount (data) -2, 0, 1, crc);
  write("CRC of data: 0x%X", crc);
}

Crc_CalculateCRC64

Vector - CAPL - CRC算法介绍(续)

功能:根据数据计算CRC64的相应校验和。

data:待计算CRC64校验和的数据

dataSize:待计算CRC64校验和的数据长度

dataOffset:用于计算有效载荷数据中的CRC的起始索引。

crcLength:计算CRC的数据长度。

crcStartValue:CRC初始值取决于它是第一次呼叫还是后续呼叫。如果firstCall为1,则忽略值。

firstCall:第一次调用或后续调用的标志。可能的值为0(后续调用)或1(第一次调用)。

ccCalculated:计算的CRC64值

返回值:     

        0:成功计算出CRC64校验和

        -1:CRC长度为0

        -2:偏移大于或等于长度

        -3:长度超出数组范围

        -4:长度和偏移量的摘要超出数组范围

代码示例

// first CALL, Offset '0'
on key 'a'
{
  long retval;
  qword crc;
  byte data[9] = {0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39};

  retval = Crc_CalculateCRC64(data, elcount (data), 0, elcount (data), 0, 1, crc);
  write("CRC of data: 0x%X", crc);
}

// first CALL, Offset '2', Length - 2
on key 'b'
{
  long retval;
  qword crc;
  byte data[11] = {0xAA ,0xAA,0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39};

  retval = Crc_CalculateCRC64(data, elcount (data), 2, elcount (data) -2, 0, 1, crc);
  write("CRC of data: 0x%X", crc);
}

到了这里,关于Vector - CAPL - CRC算法介绍(续)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 中移链合约常用开发介绍(四)工程树目录

    01 目的 本文档介绍了工程化开发智能合约项目的工程树目录,介绍了各个文件夹及文件的含义和用途。本文档将沿用之前文章中实现的地址簿合约内容,以初始化项目为例展开介绍,适合刚接触合约开发的开发人员用来了解智能合约项目,帮助其快速了解以及上手智能合约。

    2024年02月07日
    浏览(10)
  • linux常用命令介绍 06 篇——Linux查看目录层级结构以及创建不同情况的层级目录

    linux常用命令介绍 06 篇——Linux查看目录层级结构以及创建不同情况的层级目录

    Linux命令01篇——Linux解压缩文件常用命令. Linux命令02篇——linux日常常用命令介绍. linux常用命令介绍 03 篇——常用的文本处理工具之grep和cut(以及部分正则使用). linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理). linux常用命令介绍 05 篇——实际应用

    2024年02月12日
    浏览(12)
  • CRC校验码计算,以常用CRC-8为例

    CRC校验码计算,以常用CRC-8为例

    CRC即循环冗余校验码 :是数据通信领域中最常用的一种查错校验码,其 特征是信息字段和校验字段的长度可以任意选定。 CRC校验原理 :在要发送的帧后面附加一个数,生成一个新帧发送给接收端。它要 使所生成的新帧能与发送端和接收端共同选定的某个特定数整除 (注意

    2023年04月14日
    浏览(8)
  • CRC原理介绍及STM32 CRC外设的使用

    CRC原理介绍及STM32 CRC外设的使用

    循环冗余校验(英语: Cyclic redundancy check ,简称CRC),由 W. Wesley Peterson 于 1961 年首次提出的一种纠错码理论。 CRC是一种 数据纠错方法 ,主要应用于数据通信或者数据存储的场合,用来检测或校验数据传输或者数据存储后可能出现的错误,特别是擅长检测由传输通道中的噪

    2024年02月09日
    浏览(8)
  • 【CANoe】CAPL_UDS安全算法dll制作

    【CANoe】CAPL_UDS安全算法dll制作

    使用UDS进行刷写时,需要27服务解密后,才能正确执行刷写,本文提供两种制作27解密dll的方法,用于CANoe的CAPL脚本中。 【特别说明】 遇到问题时,CAPL帮助文档提供了很好的指引,大家可以好好利用。 CAPL DLL示例所在路径: C:UsersPublicDocumentsVectorCANoeSample Configurations 12.

    2024年02月06日
    浏览(75)
  • 数模常用算法—粒子群算法讲解(一)入门介绍

    数模常用算法—粒子群算法讲解(一)入门介绍

    目录 一、启发式算法介绍 二、最简单优化问题的介绍 三、启发式算法引入         1、粒子群算法的介绍          2、粒子群算法进一步解释          3、粒子群算法的基本概念         4、粒子群算法的直观解释          5、粒子群算法中常用的符号说明         在讲

    2024年02月10日
    浏览(6)
  • CRC算法

    CRC算法

    CRC(Cyclic Redundancy Check):循环冗余检验; 多项式:例如有多项式y=x16+x12+x5+1,可用二进制表达为y=1 0001 0000 0010 0001; 模二除法:类似于“算数除法”,但无借位;如100101除以1110,结果得到商为11,余数为1,如图: 确定多项式y; 将需要计算的数据x左移k-1位,得出x1;(k=多

    2024年02月08日
    浏览(7)
  • CRC校验算法详解

            数据在传输过程(比如通过网线在两台计算机间传文件)中,由于传输信道的原因,可能会有误码现象(比如说发送数字5但接收方收到的却是6),方法发送额外的数据让接收方校验是否正确,这就是数据校验。常用的校验方法是和校验,就是将传送的数据(按字节

    2024年02月09日
    浏览(8)
  • 负载均衡常用调度算法介绍和选择

    负载均衡常用调度算法介绍和选择

    所有服务器,都有一个能处理请求的qps上限,超过这个上限就会有丢包的风险,这个时候我们必须对服务器进行扩容。 扩容有两种方法,一种是增加服务器的硬件资源(scale up纵向扩容),这种方法比较简单,插块卡就行了,但是如果要增加计算网络资源的话,可能需要重启

    2024年02月02日
    浏览(11)
  • 区块链之常用数据算法介绍

    区块链之常用数据算法介绍

    在深入学习区块链时,不可避免的需要了解密码学。密码学流传已久,有几千年历史,在军事、外交、情报等领域有广泛的的应用。在区块链领域,也大量应用了密码学算法,比如哈希算法和椭圆曲线算法,这些数据加密算法是该技术重要组成部分。下面详细介绍下区块链最

    2024年02月11日
    浏览(5)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包