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

         不常用CRC算法

Vector - CAPL - CRC算法介绍(续)_第1张图片

目录

Crc_CalculateCRC8H2F

代码示例

 Crc_CalculateCRC32P4

代码示例

Crc_CalculateCRC64

代码示例


Crc_CalculateCRC8H2F

功能:根据数据计算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:长度和偏移量的摘要超出数组范围

代码示例

// 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

功能:根据数据计算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

功能:根据数据计算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);
}

你可能感兴趣的:(CAPL入门到入坑,CAPL,CRC,vTESTStudio)