本文整理汇总了C++中crc16_ccitt函数的典型用法代码示例。如果您正苦于以下问题:C++ crc16_ccitt函数的具体用法?C++ crc16_ccitt怎么用?C++ crc16_ccitt使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了crc16_ccitt函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initRunMode
void initRunMode() {
#if ENABLE_SLOTS
setupSlots();
#endif
mcu_clearTimer();
//TODO: Figure out that dest = destorig shit
dest = destorig;
#if !(ENABLE_SLOTS)
queryReplyCRC = crc16_ccitt(&queryReply[0],2);
queryReply[3] = (unsigned char) queryReplyCRC;
queryReply[2] = (unsigned char) mcu_swapBytes(queryReplyCRC);
#endif
#if SENSOR_DATA_IN_ID
// this branch is for sensor data in the id
ackReply[2] = SENSOR_DATA_TYPE_ID;
state = STATE_READ_SENSOR;
timeToSample++;
#else
ackReplyCRC = crc16_ccitt(&ackReply[0], 14);
ackReply[15] = (unsigned char) ackReplyCRC;
ackReply[14] = (unsigned char) mcu_swapBytes(ackReplyCRC);
#endif
#if ENABLE_SESSIONS
initialize_sessions();
#endif
state = STATE_READY;
}
示例2: XN297_UnscramblePayload
uint16_t XN297_UnscramblePayload(uint8_t *data, int len, const uint8_t *rxAddr)
{
uint16_t crc = 0xb5d2;
if (rxAddr) {
for (int ii = 0; ii < RX_TX_ADDR_LEN; ++ii) {
crc = crc16_ccitt(crc, rxAddr[RX_TX_ADDR_LEN - 1 - ii]);
}
}
for (int ii = 0; ii < len; ++ii) {
crc = crc16_ccitt(crc, data[ii]);
data[ii] = bitReverse(data[ii] ^ xn297_data_scramble[ii]);
}
crc ^= xn297_crc_xorout[len];
return crc;
}
示例3: sumdDataReceive
// Receive ISR callback
static void sumdDataReceive(uint16_t c, void *data)
{
UNUSED(data);
uint32_t sumdTime;
static uint32_t sumdTimeLast;
static uint8_t sumdIndex;
sumdTime = micros();
if ((sumdTime - sumdTimeLast) > 4000)
sumdIndex = 0;
sumdTimeLast = sumdTime;
if (sumdIndex == 0) {
if (c != SUMD_SYNCBYTE)
return;
else
{
sumdFrameDone = false; // lazy main loop didnt fetch the stuff
crc = 0;
}
}
if (sumdIndex == 2)
sumdChannelCount = (uint8_t)c;
if (sumdIndex < SUMD_BUFFSIZE)
sumd[sumdIndex] = (uint8_t)c;
sumdIndex++;
if (sumdIndex < sumdChannelCount * 2 + 4)
crc = crc16_ccitt(crc, (uint8_t)c);
else
if (sumdIndex == sumdChannelCount * 2 + 5) {
sumdIndex = 0;
sumdFrameDone = true;
}
}
示例4: nffs_crc_flash
int
nffs_crc_flash(uint16_t initial_crc, uint8_t area_idx, uint32_t area_offset,
uint32_t len, uint16_t *out_crc)
{
uint32_t chunk_len;
uint16_t crc;
int rc;
crc = initial_crc;
/* Copy data in chunks small enough to fit in the flash buffer. */
while (len > 0) {
if (len > sizeof nffs_flash_buf) {
chunk_len = sizeof nffs_flash_buf;
} else {
chunk_len = len;
}
rc = nffs_flash_read(area_idx, area_offset, nffs_flash_buf, chunk_len);
if (rc != 0) {
return rc;
}
crc = crc16_ccitt(crc, nffs_flash_buf, chunk_len);
area_offset += chunk_len;
len -= chunk_len;
}
*out_crc = crc;
return 0;
}
示例5: AC_BuildMessage
/*************************************************
* Function: AC_BuildMessage
* Description:
* Author: cxy
* Returns:
* Parameter:
* History:
*************************************************/
void ICACHE_FLASH_ATTR
AC_BuildMessage(u8 u8MsgCode, u8 u8MsgId,
u8 *pu8Payload, u16 u16PayloadLen,
AC_OptList *pstruOptList,
u8 *pu8Msg, u16 *pu16Len)
{
//协议组包函数
ZC_MessageHead *pstruMsg = NULL;
u16 u16OptLen = 0;
u16 crc = 0;
pstruMsg = (ZC_MessageHead *)pu8Msg;
pstruMsg->MsgCode = u8MsgCode;
pstruMsg->MsgId = u8MsgId;
pstruMsg->Version = 0;
AC_BuildOption(pstruOptList, &pstruMsg->OptNum, (pu8Msg + sizeof(ZC_MessageHead)), &u16OptLen);
memcpy((pu8Msg + sizeof(ZC_MessageHead) + u16OptLen), pu8Payload, u16PayloadLen);
/*updata len*/
pstruMsg->Payloadlen = ZC_HTONS(u16PayloadLen + u16OptLen);
/*calc crc*/
crc = crc16_ccitt((pu8Msg + sizeof(ZC_MessageHead)), (u16PayloadLen + u16OptLen));
pstruMsg->TotalMsgCrc[0]=(crc&0xff00)>>8;
pstruMsg->TotalMsgCrc[1]=(crc&0xff);
*pu16Len = (u16)sizeof(ZC_MessageHead) + u16PayloadLen + u16OptLen;
}
示例6: ZC_StoreTokenKey
/*************************************************
* Function: ZC_StoreTokenKey
* Description:
* Author: cxy
* Returns:
* Parameter:
* History:
*************************************************/
void ZC_StoreTokenKey(u8 *pu8Data)
{
g_struZcConfigDb.struDeviceInfo.u32UnBcFlag = ZC_MAGIC_FLAG;
memcpy(g_struZcConfigDb.struCloudInfo.u8TokenKey, pu8Data, ZC_HS_SESSION_KEY_LEN);
g_struZcConfigDb.u32Crc = crc16_ccitt(((u8 *)&g_struZcConfigDb) + 4, sizeof(g_struZcConfigDb) - 4);
g_struProtocolController.pstruMoudleFun->pfunWriteFlash((u8*)&g_struZcConfigDb, sizeof(ZC_ConfigDB));
}
示例7: sizeof
/*
* Write the configuration parameters to EEPROM
*/
void ConfigParms::commit(bool forced)
{
if (_stationName[0] == '\0') {
// It was probably not initialized.
return;
}
if (!forced && !needCommit) {
return;
}
//DIAGPRINTLN(F("ConfigParms::commit"));
// Fill in the magic and CRC, and write to EEPROM
const size_t crc_size = sizeof(uint16_t);
const size_t magic_len = sizeof(magic);
size_t size = magic_len + sizeof(*this) + crc_size;
uint8_t buffer[size];
strncpy_P((char *)buffer, magic, magic_len);
memcpy(buffer + magic_len, (uint8_t *)this, sizeof(*this));
uint16_t crc = crc16_ccitt(buffer, size - crc_size);
*(uint16_t *)(buffer + size - crc_size) = crc;
//dumpBuffer(buffer, size);
eeprom_write_block((const void *)buffer, eepromAddr(), size);
needCommit = false;
}
示例8: ZC_ConfigReset
/*************************************************
* Function: ZC_ConfigReset
* Description:
* Author: cxy
* Returns:
* Parameter:
* History:
*************************************************/
void ZC_ConfigReset()
{
g_struZcConfigDb.struSwitchInfo.u32ServerAddrConfig = 0;
g_struZcConfigDb.struDeviceInfo.u32UnBcFlag = 0xFFFFFFFF;
g_struZcConfigDb.u32Crc = crc16_ccitt(((u8 *)&g_struZcConfigDb) + 4, sizeof(g_struZcConfigDb) - 4);
g_struProtocolController.pstruMoudleFun->pfunWriteFlash((u8 *)&g_struZcConfigDb, sizeof(ZC_ConfigDB));
g_struProtocolController.pstruMoudleFun->pfunRest();
}
示例9: ZC_StoreConnectionInfo
/*************************************************
* Function: ZC_StoreConnectionInfo
* Description:
* Author: cxy
* Returns:
* Parameter:
* History:
*************************************************/
void ZC_StoreConnectionInfo(u8 *pu8Ssid, u8 *pu8Password)
{
g_struZcConfigDb.struConnection.u32MagicFlag = ZC_MAGIC_FLAG;
memcpy(g_struZcConfigDb.struConnection.u8Ssid, pu8Ssid, ZC_SSID_MAX_LEN);
memcpy(g_struZcConfigDb.struConnection.u8Password, pu8Password, ZC_PASSWORD_MAX_LEN);
g_struZcConfigDb.u32Crc = crc16_ccitt(((u8 *)&g_struZcConfigDb) + 4, sizeof(g_struZcConfigDb) - 4);
g_struProtocolController.pstruMoudleFun->pfunWriteFlash((u8*)&g_struZcConfigDb, sizeof(ZC_ConfigDB));
}
示例10: crc16_ccitt
/*
get CRC for a block
*/
uint16_t AP_Terrain::get_block_crc(struct grid_block &block)
{
uint16_t saved_crc = block.crc;
block.crc = 0;
uint16_t ret = crc16_ccitt((const uint8_t *)&block, sizeof(block), 0);
block.crc = saved_crc;
return ret;
}
示例11: crc16_ccitt_wd_buf
void crc16_ccitt_wd_buf(const uint8_t *in, uint len,
uint8_t *out, uint chunk_sz)
{
uint16_t crc;
crc = crc16_ccitt(0, in, len);
crc = htons(crc);
memcpy(out, &crc, sizeof(crc));
}
示例12: l_crc16
static int l_crc16(lua_State *L)
{
size_t size;
const char *p_str = luaL_checklstring(L, 1, &size);
uint16_t retval = crc16_ccitt( (uint8_t*) p_str, size);
lua_pushinteger(L, (int) retval);
return 1;
}
示例13: nffs_crc_disk_inode_hdr
static uint16_t
nffs_crc_disk_inode_hdr(const struct nffs_disk_inode *disk_inode)
{
uint16_t crc;
crc = crc16_ccitt(0, disk_inode, NFFS_DISK_INODE_OFFSET_CRC);
return crc;
}
示例14: nffs_crc_disk_block_hdr
uint16_t
nffs_crc_disk_block_hdr(const struct nffs_disk_block *disk_block)
{
uint16_t crc;
crc = crc16_ccitt(0, disk_block, NFFS_DISK_BLOCK_OFFSET_CRC);
return crc;
}
示例15: ZC_StoreAccessInfo
/*************************************************
* Function: ZC_StoreConnectionInfo
* Description:
* Author: cxy
* Returns:
* Parameter:
* History:
*************************************************/
void ZC_StoreAccessInfo(u8 *pu8ServerIp, u8 *pu8ServerPort)
{
g_struZcConfigDb.struConnection.u32MagicFlag = ZC_MAGIC_FLAG;
g_struZcConfigDb.struSwitchInfo.u32ServerAddrConfig = 1;
memcpy(&g_struZcConfigDb.struSwitchInfo.u32ServerIp, pu8ServerIp, ZC_SERVER_ADDR_MAX_LEN);
memcpy(&g_struZcConfigDb.struSwitchInfo.u16ServerPort, pu8ServerPort, ZC_SERVER_PORT_MAX_LEN);
g_struZcConfigDb.u32Crc = crc16_ccitt(((u8 *)&g_struZcConfigDb) + 4, sizeof(g_struZcConfigDb) - 4);
g_struProtocolController.pstruMoudleFun->pfunWriteFlash((u8*)&g_struZcConfigDb, sizeof(ZC_ConfigDB));
}