• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ calculateChecksum函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中calculateChecksum函数的典型用法代码示例。如果您正苦于以下问题:C++ calculateChecksum函数的具体用法?C++ calculateChecksum怎么用?C++ calculateChecksum使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了calculateChecksum函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: flashDownloadStart

SerialCommand flashDownloadStart(unsigned int totalSize,
                                 unsigned int numberOfBlocks,
                                 unsigned int blockSize,
                                 unsigned int offset)
{
    QByteArray data;
    data.append(ByteArrayHelpers::uint32ToByteArrayLittle(totalSize));
    data.append(ByteArrayHelpers::uint32ToByteArrayLittle(numberOfBlocks));
    data.append(ByteArrayHelpers::uint32ToByteArrayLittle(blockSize));
    data.append(ByteArrayHelpers::uint32ToByteArrayLittle(offset));

    QByteArray command = buildCommand(Opcode_FlashDownloadStart, data, calculateChecksum(data));

    QByteArray expectedResponse;
    expectedResponse.append(0x01);
    expectedResponse.append(Opcode_FlashDownloadStart);
    expectedResponse.append(ByteArrayHelpers::uint16ToByteArrayLittle(2));
    expectedResponse.append((char)0x07);
    expectedResponse.append((char)0x07);
    expectedResponse.append((char)0x12);
    expectedResponse.append((char)0x20);
    expectedResponse.append((char)0x00);
    expectedResponse.append((char)0x00);

    return SerialCommand("flashDownloadStart",
                         slipEncode(command),
                         slipEncode(expectedResponse));
}
开发者ID:Blinkinlabs,项目名称:PatternPaint,代码行数:28,代码来源:esp8266bootloadercommands.cpp


示例2: checkChecksum

bool HanResponse::checkChecksum() {
	uint16_t *checksum = (uint16_t *) &frame[CHECKSUM];
	if (*checksum == calculateChecksum()) {
		return true;
	}
	return false;
}
开发者ID:KeyTech,项目名称:KeyTech,代码行数:7,代码来源:HanResponse.cpp


示例3: writeEEPROM

// FIXME: HAL for now this will only work for F4/F7 as flash layout is different
void writeEEPROM(void)
{
    // Generate compile time error if the config does not fit in the reserved area of flash.
    BUILD_BUG_ON(sizeof(master_t) > FLASH_TO_RESERVE_FOR_CONFIG);

    HAL_StatusTypeDef status;
    uint32_t wordOffset;
    int8_t attemptsRemaining = 3;

    suspendRxSignal();

    // prepare checksum/version constants
    masterConfig.version = EEPROM_CONF_VERSION;
    masterConfig.size = sizeof(master_t);
    masterConfig.magic_be = 0xBE;
    masterConfig.magic_ef = 0xEF;
    masterConfig.chk = 0; // erase checksum before recalculating
    masterConfig.chk = calculateChecksum((const uint8_t *) &masterConfig, sizeof(master_t));

    // write it
    /* Unlock the Flash to enable the flash control register access *************/
    HAL_FLASH_Unlock();
    while (attemptsRemaining--)
    {
        /* Fill EraseInit structure*/
        FLASH_EraseInitTypeDef EraseInitStruct = {0};
        EraseInitStruct.TypeErase     = FLASH_TYPEERASE_SECTORS;
        EraseInitStruct.VoltageRange  = FLASH_VOLTAGE_RANGE_3; // 2.7-3.6V
        EraseInitStruct.Sector        = (FLASH_SECTOR_TOTAL-1);
        EraseInitStruct.NbSectors     = 1;
        uint32_t SECTORError;
        status = HAL_FLASHEx_Erase(&EraseInitStruct, &SECTORError);
        if (status != HAL_OK)
        {
            continue;
        }
        else
        {
            for (wordOffset = 0; wordOffset < sizeof(master_t); wordOffset += 4)
            {
                status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, CONFIG_START_FLASH_ADDRESS + wordOffset, *(uint32_t *) ((char *) &masterConfig + wordOffset));
                if(status != HAL_OK)
                {
                    break;
                }
            }
        }
        if (status == HAL_OK) {
            break;
        }
    }
    HAL_FLASH_Lock();

    // Flash write failed - just die now
    if (status != HAL_OK || !isEEPROMContentValid()) {
        failureMode(FAILURE_FLASH_WRITE_FAILED);
    }

    resumeRxSignal();
}
开发者ID:tianbin4279,项目名称:betaflight,代码行数:61,代码来源:config_eeprom.c


示例4: rsi_validateFrame

/** 
 * @brief Checks CRC of frame
 * 
 * @param buffer Buffer containing message to check
 * @param msgLength Length of message in bytes
 * 
 * @return success/failure
 */
sInt32_t rsi_validateFrame( uInt8_t *buffer, uInt16_t msgLength )
{

	uInt8_t crcVal[CRC_SIZE];              // CRC value
	sInt32_t retVal = STATUS_FAILURE;      // Variable for Return value

	//assume frame has CRC...
	calculateCrc( buffer, msgLength-2, crcVal);
	//uInt32_t crc = (crcVal[1] << 8) | crcVal[0];
	//printf("expected crc = 0x%04x\n", crc);

	if ((crcVal[CRC_LSB_INDEX] == buffer[msgLength - 2]) &&
	    (crcVal[CRC_MSB_INDEX] == buffer[msgLength - 1])) {

		//printf("validate CRC: OK!\n");
		retVal = STATUS_SUCCESS;
	}
	else {	//frame must have 1-byte checksum...
		uInt8_t checkSum = calculateChecksum( buffer, msgLength-1 );
		if (checkSum == buffer[msgLength - 1]) {
			//printf("validate checksum: OK!\n");
			retVal = STATUS_SUCCESS;
		}
		else
			printf("invalid RSI frame check sequence!\n");
	}

	//FIXME: validate RSD/ACP frame address here?

	return retVal;
}
开发者ID:ksthar,项目名称:RSI,代码行数:39,代码来源:mod_rsi.c


示例5: sendACK

int sendACK(int seq_num, int sockfd,struct sockaddr *dest_addr,socklen_t addrlen){
	char *ACK[sizeof(uint32_t)+sizeof(uint16_t)+3];
	void *offset = ACK;
	uint32_t seqOut = htonl((uint32_t)seq_num);
	memcpy(offset,&seqOut,sizeof(uint32_t));
	char *msg = "ACK";
	uint16_t checkSum = calculateChecksum(&seqOut,sizeof(uint32_t));
	checkSum += calculateChecksum(msg,3);
	checkSum = 0xffff - checkSum;
	offset+=sizeof(uint32_t);
	memcpy(offset,&checkSum,sizeof(uint16_t));
	offset+=sizeof(uint16_t);
	memcpy(offset,msg,3);
  int n = sendto(sockfd,ACK,sizeof(ACK),0,dest_addr,addrlen);
	return n;
}
开发者ID:spiamartino,项目名称:cnt4713,代码行数:16,代码来源:receiver.c


示例6: flashDownloadData

SerialCommand flashDownloadData(unsigned int sequence, QByteArray flashData)
{
    QByteArray data;
    data.append(ByteArrayHelpers::uint32ToByteArrayLittle(flashData.length()));
    data.append(ByteArrayHelpers::uint32ToByteArrayLittle(sequence));
    data.append(ByteArrayHelpers::uint32ToByteArrayLittle(0));  // Mystery value
    data.append(ByteArrayHelpers::uint32ToByteArrayLittle(0));  // Mystery value
    data.append(flashData);

    QByteArray command = buildCommand(Opcode_FlashDownloadData, data, calculateChecksum(flashData));

    QByteArray expectedResponse;
    expectedResponse.append(0x01);
    expectedResponse.append(Opcode_FlashDownloadData);
    expectedResponse.append(ByteArrayHelpers::uint16ToByteArrayLittle(2));
    expectedResponse.append((char)0x07);
    expectedResponse.append((char)0x07);
    expectedResponse.append((char)0x12);
    expectedResponse.append((char)0x20);
    expectedResponse.append((char)0x00);
    expectedResponse.append((char)0x00);

    return SerialCommand("flashDownloadData",
                         slipEncode(command),
                         slipEncode(expectedResponse));
}
开发者ID:Blinkinlabs,项目名称:PatternPaint,代码行数:26,代码来源:esp8266bootloadercommands.cpp


示例7: Chunk

	//---------------------------------------------------------------------
	StreamSerialiser::Chunk* StreamSerialiser::readChunkImpl()
	{
		Chunk *chunk = OGRE_NEW Chunk();
		chunk->offset = static_cast<uint32>(mStream->tell());
		read(&chunk->id);
		read(&chunk->version);
		read(&chunk->length);
		
		uint32 checksum;
		read(&checksum);
		
		if (checksum != calculateChecksum(chunk))
		{
			// no good, this is an invalid chunk
			uint32 off = chunk->offset;
			OGRE_DELETE chunk;
			OGRE_EXCEPT(Exception::ERR_INVALID_STATE, 
				"Corrupt chunk detected in stream " + mStream->getName() + " at byte "
				+ StringConverter::toString(off), 
				"StreamSerialiser::readChunkImpl");
		}
		else
		{
			return chunk;
		}


	}
开发者ID:spetz911,项目名称:ogre3d,代码行数:29,代码来源:OgreStreamSerialiser.cpp


示例8: createPingMessage

// ping message
void createPingMessage(Message* m, int length)
{
  printf("%sMessage: PingRequest\n", KGRN);
  configMessage(m, PingConfigurationObject, length);

  uint16_t rv = calculateChecksum(m);
  printf("Calculated checksum: %04x\n", rv);
}
开发者ID:hzcodec,项目名称:serial,代码行数:9,代码来源:messages.c


示例9: createCustomRequestMessage31dB

// custom message with TX_GAIN=31 dB
void createCustomRequestMessage31dB(Message* m, int length)
{
  printf("%sMessage: MIB_WriteRequest - TX_GAIN=31 dB\n", KGRN);
  configMessage(m, CustomConfigurationObject31dB, length);

  uint16_t rv = calculateChecksum(m);
  printf("Calculated checksum: %04x\n", rv);
}
开发者ID:hzcodec,项目名称:serial,代码行数:9,代码来源:messages.c


示例10: checkResFrame

bool Frames::checkResFrame() {
	uint16_t *location = (uint16_t *) &response[CHECKSUM];
	if(*location != calculateChecksum(response)){
		return false;
	} else {
		return true;
	}
}
开发者ID:KeyTech,项目名称:KeyTech,代码行数:8,代码来源:Frames.cpp


示例11: closeMessage

void closeMessage(char *message) {
    size_t messageLength = strlen(message);
    int checksum = calculateChecksum(&(message[1]), messageLength - 1);
    message[messageLength++] = '*';
    sprintf(&(message[messageLength]), "%02X", checksum);
    messageLength += 2;
    sprintf(&(message[messageLength]), "\r\n");
}
开发者ID:johnboiles,项目名称:Helm-ios,代码行数:8,代码来源:NMEAMessage.cpp


示例12: createPhysicalRequestMessage

// physical message
void createPhysicalRequestMessage(Message* m, int length)
{
  printf("%sMessage: MIB_WriteRequest\n", KGRN);
  configMessage(m, PhysicalConfigurationObject, length);

  uint16_t rv = calculateChecksum(m);
  printf("Calculated checksum: %04x\n", rv);
}
开发者ID:hzcodec,项目名称:serial,代码行数:9,代码来源:messages.c


示例13: writeEEPROM

bool writeEEPROM(void)
{
    // Generate compile time error if the config does not fit in the reserved area of flash.
    BUILD_BUG_ON(sizeof(master_t) > FLASH_TO_RESERVE_FOR_CONFIG);

    FLASH_Status status = 0;
    uint32_t wordOffset;
    int8_t attemptsRemaining = 3;
    bool changed;

    // prepare checksum/version constants
    masterConfig.version = EEPROM_CONF_VERSION;
    masterConfig.size = sizeof(master_t);
    masterConfig.magic_be = 0xBE;
    masterConfig.magic_ef = 0xEF;
    masterConfig.chk = 0; // erase checksum before recalculating
    masterConfig.chk = calculateChecksum((const uint8_t *) &masterConfig, sizeof(master_t));

    changed = (memcmp((const master_t *)CONFIG_START_FLASH_ADDRESS, &masterConfig, sizeof(master_t)) != 0);

    // write it
    if(changed) {
      FLASH_Unlock();
      while (attemptsRemaining--) {
#ifdef STM32F303
        FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPERR);
#endif
#ifdef STM32F10X
          FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
#endif
          for (wordOffset = 0; wordOffset < sizeof(master_t); wordOffset += 4) {
              if (wordOffset % FLASH_PAGE_SIZE == 0) {
                  status = FLASH_ErasePage(CONFIG_START_FLASH_ADDRESS + wordOffset);
                  if (status != FLASH_COMPLETE) {
                      break;
                  }
              }

              status = FLASH_ProgramWord(CONFIG_START_FLASH_ADDRESS + wordOffset,
                      *(uint32_t *) ((char *) &masterConfig + wordOffset));
              if (status != FLASH_COMPLETE) {
                  break;
              }
          }
          if (status == FLASH_COMPLETE) {
              break;
          }
      }
      FLASH_Lock();

      // Flash write failed - just die now
      if (status != FLASH_COMPLETE || !isEEPROMContentValid()) {
          failureMode(10);
      }
    }

    return changed;
}
开发者ID:wiresharks,项目名称:cleanflight,代码行数:58,代码来源:config.c


示例14: emptyFrame

void Frames::createRequest(const uint16_t *lockID, const uint32_t *userID, const uint16_t *pincode, const uint8_t *flags, const uint8_t *data) {
	emptyFrame(request, sizeof(request));
	setReqLockID(lockID);
	setReqUserID(userID);
	setReqPin(pincode);
	setReqFlags(flags);
	setReqData(data);
	uint16_t *location = (uint16_t *) &request[CHECKSUM];
	*location = calculateChecksum(request);
}
开发者ID:KeyTech,项目名称:KeyTech,代码行数:10,代码来源:Frames.cpp


示例15: createPingRequestMessage

void createPingRequestMessage(Message* m, int length)
{
  printf("Message: PingRequest\n");
  m->stx      = 0x02;
  m->length   = (uint8_t)PingRequest_Length;
  m->command  = PingRequest;
  memcpy(m->data, dataPingRequest, sizeof(dataPingRequest));

  calculateChecksum(m->length, m->command, m->data);
}
开发者ID:hzcodec,项目名称:serial,代码行数:10,代码来源:messages.c


示例16: isCorrupt

int isCorrupt(PacketData* packet)
{

	unsigned short checksum = calculateChecksum(packet);
	if (checksum != packet->checksum)
		return 1;

	return 0;

}
开发者ID:imsleeping,项目名称:UDP-File-Sender,代码行数:10,代码来源:RecvNetwork.cpp


示例17: createDlDataRequestMessage31dB

// custom configuration, i.e TX_GAIN is a part of the message
void createDlDataRequestMessage31dB(Message* m, int length)
{
  printf("Message: DL_DataRequest with Custom configuration of TX_GAIN=31 dB, Data=0x77\n");
  m->stx      = 0x02;
  m->length   = DL_DataRequest_LengthCustom;
  m->command  = DL_DataRequest;
  memcpy(m->data, dataDlDataRequest_TxGain31, sizeof(dataDlDataRequest_TxGain31));
  
  calculateChecksum(m->length, m->command, m->data);
}
开发者ID:hzcodec,项目名称:serial,代码行数:11,代码来源:messages.c


示例18: safeLoadFile

FILE* safeLoadFile(char* filename)
{
	char checksum = calculateChecksum(filename);

	FILE* fp = NULL;
	if ( checksum != 0 || fopen_s(&fp, filename, "rbc") != 0 )
	{
		// uh-oh! file problem. is there a backup?
		char bakFilename[256] = "backup/";
		strcat_s(bakFilename, 256, filename);
		checksum = calculateChecksum(bakFilename);
		if ( checksum != 0 || fopen_s(&fp, bakFilename, "rbc") != 0 )
		{
			return NULL; // oh darn
		}
	}

	return fp;
}
开发者ID:AllenSeitz,项目名称:dance-maniax-update,代码行数:19,代码来源:common.cpp


示例19: createMibWriteRequestMessage31dB

// request message with TX_GAIN=31 dB
void createMibWriteRequestMessage31dB(Message* m, int length)
{
  printf("Message: MIB_WriteRequest - TX_GAIN=31 dB, Data=0x77\n");
  m->stx      = 0x02;
  m->length   = MIB_WriteRequest_Length;
  m->command  = MIB_WriteRequest;
  memcpy(m->data, dataMibWriteRequest31dB, sizeof(dataMibWriteRequest31dB));
  
  calculateChecksum(m->length, m->command, m->data);
}
开发者ID:hzcodec,项目名称:serial,代码行数:11,代码来源:messages.c


示例20: createDlDataRequestMessagePhy

// PHY configuration
void createDlDataRequestMessagePhy(Message* m, int length)
{
  printf("Message: DL_DataRequest with PHY configuration of TX_GAIN\n");
  m->stx      = 0x02;
  m->length   = DL_DataRequest_LengthPhy;
  m->command  = DL_DataRequest;
  memcpy(m->data, dataDlDataRequest_PHY, sizeof(dataDlDataRequest_PHY));
  
  calculateChecksum(m->length, m->command, m->data);
}
开发者ID:hzcodec,项目名称:serial,代码行数:11,代码来源:messages.c



注:本文中的calculateChecksum函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ calculateSize函数代码示例发布时间:2022-05-30
下一篇:
C++ calculateBorders函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap