本文整理汇总了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;未经允许,请勿转载。 |
请发表评论