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

C++ checksum函数代码示例

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

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



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

示例1: main

int main()
{
	char test;
	char cs;
	char pkt[83];
	char print[] = "Sixteen LCD char";
	char aorp;
	double height;
	struct packet packet_GGA;
	int temp;
	int time[3]      = {0, 0, 0};
	int latitude[3]  = {0, 0, 0};
	int longitude[3] = {0, 0, 0};

	while(1){
		test=getchar();																/*Gets first character from serial stream             */

		*LEDs = *Switches;
		temp  = *LEDs;

		if(checksum(test,cs,pkt)){													/*Pipes all the fun stuff to checksum and parse f'ns  */
			parse_GGA(pkt, &packet_GGA);												/*See gpsparse.h library for full view of functions   */
			temp = (temp & 0x01);
			if (temp == 1){
				sprintf(print, "Lat:%s%c", packet_GGA.latitude, packet_GGA.ns[0]);
				WriteLCD(print);
				sprintf(print, "Lon:%s%c", packet_GGA.longitude, packet_GGA.ew[0]);
				WriteLCD(print);
			};
			if (temp == 0){
				aorp = GMT_to_MST(time, packet_GGA.time);
				sprintf(print, "Time: %d:%02d:%02d%cM", time[0], time[1], time[2], aorp);
				WriteLCD(print);
				height = m_to_ft(packet_GGA.ant_ht);
				sprintf(print, "Elev: %5.2f ft", height);
				WriteLCD(print);
			};
			lat_to_deg(packet_GGA.latitude, latitude);
			long_to_deg(packet_GGA.longitude, longitude);
			printf("Latitude :  %d deg, %d.%05d min\n", latitude[0], latitude[1], latitude[2]);
			printf("Longitude: %d deg, %d.%05d min\n", longitude[0], longitude[1], longitude[2]);
		}
	};
	return 0;
}
开发者ID:Cushychicken,项目名称:ee475,代码行数:45,代码来源:gps.c


示例2: scan_for_floating_ptr_struct

floating_pointer_struct_t *
scan_for_floating_ptr_struct(uintptr_t addr, uint32_t length)
{
   floating_pointer_struct_t *fp;
   uintptr_t end = addr + length;


   fp = (floating_pointer_struct_t*)addr;
   while ((uintptr_t)fp < end) {
      if (fp->signature == FPSignature) {
	 if (fp->length == 1 && checksum((uint8_t*)fp, 16) == 0) {
	    return fp;
	 } 
      }
      fp++;
   }
   return NULL;
}
开发者ID:HelpFSme,项目名称:memtest,代码行数:18,代码来源:smp.c


示例3: assign_channel_id

void assign_channel_id(uint8_t type)
{
    uint8_t buf[7];

    buf[0] = MESG_TX_SYNC;           // SYNC Byte
    buf[1] = 0x03;                   // Length Byte
    buf[2] = MESG_ASSIGN_CHANNEL_ID; // ID Byte
    buf[3] = CHAN0;                  // Channel
    buf[4] = type;                   // Type
    buf[5] = NET0;                   // Network
    buf[6] = checksum(buf, 6);

    send_to_ant(buf, 7);

    printf("MESG_ASSIGN_CHANNEL_ID sent\n");

    ant_handle_msg();
}
开发者ID:asm,项目名称:avr_ant,代码行数:18,代码来源:ant.c


示例4: read_message

void read_message()
{
     addr_len = sizeof(remote_address)/sizeof(char);
     bytes_read = recvfrom( socket_descriptor,(void *)&pacchetto,
                            sizeof(pacchetto)/sizeof(char),0,
                            (struct sockaddr *)&remote_address, &addr_len );

     if ( bytes_read != -1 ) {
         if ( ( pacchetto.int_versione != 2 )
	           && ( checksum( pacchetto.messaggio,100)!= pacchetto.ulint_crc )
	           && ( bytes_read != (sizeof(pacchetto)/sizeof(char)) )
	      ) delete_message();
     	   else {
	           pacchetto.messaggio[MAXLEN_MSG-1] = 0x00;
		       pacchetto.nome[MAXLEN_USRNAME-1] = 0x00;
		 }
	 } else { printf("(!) recvfrom error\n"); }
}
开发者ID:ozw1z5rd,项目名称:Berkeley,代码行数:18,代码来源:ex9-recv.c


示例5: to_string

std::string to_string(const sentence & s)
{
	std::string result;
	result.reserve(sentence::max_length);
	result += s.get_start_token();
	result += s.talker();
	result += s.tag();
	for (auto const & data : s.get_data()) {
		result += ",";
		result += data;
	}
	result += s.get_end_token();

	char buf[8];
	snprintf(buf, sizeof(buf), "%02X", checksum(result.begin() + 1, result.end() - 1));

	return result + buf;
}
开发者ID:mb12,项目名称:marnav,代码行数:18,代码来源:sentence.cpp


示例6: set_channel_period

void set_channel_period(uint16_t period)
{
    uint8_t buf[7];

    buf[0] = MESG_TX_SYNC;                // SYNC Byte
    buf[1] = 0x03;                        // Length Byte
    buf[2] = MESG_CHANNEL_MESG_PERIOD_ID; // ID Byte
    buf[3] = CHAN0;                       // Channel
    buf[4] = period & 255;                // LSB
    buf[5] = period >> 8;                 // MSB
    buf[6] = checksum(buf, 6);

    send_to_ant(buf, 7);

    printf("MESG_CHANNEL_MESG_PERIOD_ID sent\n");

    ant_handle_msg();
}
开发者ID:asm,项目名称:avr_ant,代码行数:18,代码来源:ant.c


示例7: m_uuid

FileReference::FileReference(const openstudio::path& p)
  : m_uuid(createUUID()),
    m_versionUUID(createUUID()),
    m_name(toString(p)),
    m_displayName(toString(p.filename())),
    m_path(completeAndNormalize(p)),
    m_timestampLast(),
    m_checksumCreate(checksum(m_path)),
    m_checksumLast(m_checksumCreate)
{
  try {
    m_fileType = FileReferenceType(getFileExtension(p));
  }
  catch (...) {
    m_fileType = FileReferenceType::Unknown;
  }
  update(openstudio::path());
}
开发者ID:NREL,项目名称:OpenStudio,代码行数:18,代码来源:FileReference.cpp


示例8: makePathAbsolute

bool FileReference::update(const openstudio::path& searchDirectory,bool lastOnly) {
    makePathAbsolute(searchDirectory);
    openstudio::path p = path();
    if (boost::filesystem::exists(p)) {
        QFileInfo fileInfo(toQString(p));
        OS_ASSERT(fileInfo.exists());

        if (!lastOnly) {
            m_timestampCreate = toDateTime(fileInfo.created());
        }

        m_timestampLast = toDateTime(fileInfo.lastModified());
        m_checksumLast = checksum(p);
        m_versionUUID = createUUID();
        return true;
    }
    return false;
}
开发者ID:whztt07,项目名称:OpenStudio,代码行数:18,代码来源:FileReference.cpp


示例9: check_msg

int check_msg(client_t* client, msg_t* msg)
{
    size_t msg_data_len;
    if (msg->zone.clip)
    {
        if (msg->zone.last && (msg_data_length(msg) % client->max_length))
            msg_data_len = msg_data_length(msg) % client->max_length;
        else
            msg_data_len = client->max_length;
    }
    else msg_data_len = msg_data_length(msg);
    if (checksum(msg, sizeof(msg_t) + msg_data_len))
    {
        SYSLOG(LOG_ERR, "Invalid msg");
        return 0;
    }
    return 1;
}
开发者ID:queensun,项目名称:qtun,代码行数:18,代码来源:network.c


示例10: debug

unsigned int SONAR::getDist() {
	debug();
	
#if defined(BOARD_maple) || defined(BOARD_maple_native) || defined(BOARD_maple_mini)
	Serial.flush();
#endif

	sendCmd(_distCmd,sizeof(_distCmd));
	delay(1);
	recvDat(distDatSize);
	#ifdef DEBUG
		showDat(distDatSize);
	#endif
	
	if(checksum(distDatSize)==0) return (_recvBuf[5]<<8)+_recvBuf[6];

	return 0xffff;	// not available distance
}
开发者ID:Spookz0r,项目名称:trajbot,代码行数:18,代码来源:SONAR.cpp


示例11: while

void roomba_t::update()
{
	uint8_t data;

	while(serial_m->available()>0 && serial_m->
	#ifdef __AVR
		readBytes((char *)&data,1)==1
	#else
		read(&data,1)==1
	#endif
		)
	{
		if(serial_state_m==HEADER&&data==ROOMBA_PACKET_HEADER)
		{
			serial_state_m=SIZE;
		}
		else if(serial_state_m==SIZE)
		{
			serial_size_m=data;
			serial_buffer_m=(uint8_t*)malloc(serial_size_m);
			serial_state_m=DATA;
		}
		else if(serial_state_m==DATA)
		{
			serial_buffer_m[serial_pointer_m++]=data;

			if(serial_pointer_m>=serial_size_m)
				serial_state_m=CHECKSUM;
		}
		else if(serial_state_m==CHECKSUM)
		{
			if(checksum(ROOMBA_PACKET_HEADER,serial_size_m,serial_buffer_m,data))
			{
				parse_sensor_packet_m();
				dump_sensors();
			}

			serial_size_m=0;
			free(serial_buffer_m);
			serial_pointer_m=0;
			serial_state_m=HEADER;
		}
	}
}
开发者ID:Arsh25,项目名称:randomTest,代码行数:44,代码来源:roomba.cpp


示例12: check_rx

static int check_rx(void)
{

    union {
        u16 value;
        struct {
            u8 lsb;
            u8 msb;
        } bytes;
    } chanval;

    if (NRF24L01_ReadReg(NRF24L01_07_STATUS) & BV(NRF24L01_07_RX_DR)) {
        // data received from aircraft
        XN297_ReadPayload(packet, PACKET_SIZE);

        NRF24L01_WriteReg(NRF24L01_07_STATUS, 255);

        NRF24L01_FlushRx();
        // decode data , check sum is ok as well, since there is no crc
        if (packet[0] == 0x85 && packet[14] == checksum()) {
            // uncompensated battery volts*100
            chanval.bytes.msb = packet[3] & 0x7;
            u8 flags = packet[3] >> 3;
            chanval.bytes.lsb = packet[4] & 0xff;
            Telemetry.value[TELEM_DSM_FLOG_VOLT1] = chanval.value;
            TELEMETRY_SetUpdated(TELEM_DSM_FLOG_VOLT1);

            // compensated battery volts*100
            chanval.bytes.msb = packet[5] & 0x7;
            chanval.bytes.lsb = packet[6] & 0xff;
            Telemetry.value[TELEM_DSM_FLOG_VOLT2] = chanval.value;
            TELEMETRY_SetUpdated(TELEM_DSM_FLOG_VOLT2);

            // reception in packets / sec , multiplied by 2
            Telemetry.value[TELEM_DSM_FLOG_HOLDS] = packet[7] * 2;
            TELEMETRY_SetUpdated(TELEM_DSM_FLOG_HOLDS);

            // battery low flag
            Telemetry.value[TELEM_DSM_FLOG_FADESL] = (flags & 1) ? 100 : 0;
            TELEMETRY_SetUpdated(TELEM_DSM_FLOG_FADESL);

            telemetry_count++;
            return 1;
        }                       // end tel received
开发者ID:PhracturedBlue,项目名称:deviation,代码行数:44,代码来源:bayang_nrf24l01.c


示例13: read_msg_t

ssize_t read_msg_t(client_t* client, msg_t** msg, double timeout)
{
    if (qtun->use_udp)
    {
        *msg = pool_room_realloc(&qtun->pool, RECV_ROOM_IDX, qtun->recv_buffer_len);
        return read_t(client, *msg, qtun->recv_buffer_len, timeout);
    }
    else
    {
        ssize_t rc;
        size_t len;

        *msg = pool_room_realloc(&qtun->pool, RECV_ROOM_IDX, sizeof(msg_t));
        if (*msg == NULL) return -2;
        rc = read_t(client, *msg, sizeof(**msg), timeout);
        if (rc <= 0)
        {
            pool_room_free(&qtun->pool, RECV_ROOM_IDX);
            *msg = NULL;
            return rc;
        }
        len = msg_data_length(*msg);
        *msg = pool_room_realloc(&qtun->pool, RECV_ROOM_IDX, sizeof(msg_t) + len);
        if (*msg == NULL) return -2;
        rc = read_t(client, (*msg)->data, len, timeout);
        if (rc <= 0 && len)
        {
            pool_room_free(&qtun->pool, RECV_ROOM_IDX);
            *msg = NULL;
            return rc;
        }

        if (checksum(*msg, sizeof(msg_t) + len))
        {
            SYSLOG(LOG_ERR, "Invalid msg");
            pool_room_free(&qtun->pool, RECV_ROOM_IDX);
            *msg = NULL;
            return -2;
        }

        SYSLOG(LOG_INFO, "read msg length: %lu", (unsigned long)len);
        return rc + sizeof(msg_t);
    }
}
开发者ID:queensun,项目名称:qtun,代码行数:44,代码来源:network.c


示例14: fix_message_parse

int fix_message_parse(struct fix_message *self, struct fix_dialect *dialect, struct buffer *buffer, unsigned long flags)
{
    const char *start;
    int ret;

    self->head_buf = buffer;

    TRACE(LIBTRADING_FIX_MESSAGE_PARSE(self, dialect, buffer));
retry:
    ret = FIX_MSG_STATE_PARTIAL;

    start	= buffer_start(buffer);

    if (!buffer_size(buffer))
        goto fail;

    ret = first_three_fields(self, flags);
    if (ret)
        goto fail;

    ret = checksum(self, buffer, flags);
    if (ret)
        goto fail;

    rest_of_message(self, dialect, buffer);

    self->iov[0].iov_base	= (void *)start;
    self->iov[0].iov_len 	= buffer_start(buffer) - start;

    TRACE(LIBTRADING_FIX_MESSAGE_PARSE_RET());

    return 0;

fail:
    if (ret != FIX_MSG_STATE_PARTIAL)
        goto retry;

    buffer_advance(buffer, start - buffer_start(buffer));

    TRACE(LIBTRADING_FIX_MESSAGE_PARSE_ERR());

    return -1;
}
开发者ID:GiovanniMancini,项目名称:libtrading,代码行数:43,代码来源:fix_message.c


示例15: serializeFrame

Byte* serializeFrame(int i) {
	int offset=0;
	Byte* serializedFrame[15+DATAMAX];
	
	memcpy(serializedFrame + offset, &frameStorage[i].soh, sizeof(frameStorage[i].soh));
	offset+=sizeof(frameStorage[i].soh);
	memcpy(serializedFrame + offset, &frameStorage[i].frameno, sizeof(frameStorage[i].frameno));
	offset+=sizeof(frameStorage[i].frameno);
	memcpy(serializedFrame + offset, &frameStorage[i].stx, sizeof(frameStorage[i].stx));
	offset+=sizeof(frameStorage[i].stx);
	memcpy(serializedFrame + offset, frameStorage[i].data, strlen(frameStorage[i].data));
	offset+=strlen(frameStorage[i].data);
	memcpy(serializedFrame + offset, &frameStorage[i].etx, sizeof(frameStorage[i].etx));
	offset+=sizeof(frameStorage[i].etx);
	frameStorage[i].checksum = checksum(serializedFrame,offset);
	memcpy(serializedFrame + offset, &frameStorage[i].checksum, sizeof(frameStorage[i].checksum));
	offset+=sizeof(frameStorage[i].checksum);
	return serializedFrame;
}
开发者ID:ahmadnaufal,项目名称:jarkom-slidingwindow,代码行数:19,代码来源:transmitter-old.c


示例16: checksum

void
convex::grow_extent( extent& world)
{
	if (degenerate())
		return;

	long check = checksum();
	if (check != last_checksum) {
		recalc();
	}
	assert( hull.size() != 0);

	for (std::vector<face>::const_iterator f = hull.begin(); f != hull.end(); ++f) {
		world.add_point( f->corner[0]);
		world.add_point( f->corner[1]);
		world.add_point( f->corner[2]);
	}
	world.add_body();
}
开发者ID:AprilArcus,项目名称:vpython-wx,代码行数:19,代码来源:convex.cpp


示例17: OfflineInit

void OfflineInit(void)
{
	
	pmcu_cfg=(const MCU_CFG*)MCU_CFG_BASE;
	if((checksum((u8 *)pmcu_cfg,sizeof(MCU_CFG)))||(pmcu_cfg->flag != FISH_MAN))
	{
		EarseAndResetAll();
	}
	else
	{
		memcpy((u8 *)&mcu_scfg,(const u8 *)pmcu_cfg,sizeof(MCU_CFG));
	}
	//always set false at POR or other reset
	pwd_authed=FALSE;
	//set offline download result LED off
	GPIO_SetBits(GPIOE, GPIO_Pin_5);
	//for test
	//mcu_scfg.flash_offset=0x8040000;
}
开发者ID:pangpang7,项目名称:FlasLoade,代码行数:19,代码来源:OfflineDownloadCtrl.c


示例18: _comm_send

bool _comm_send(int fd, const struct msg_header_t *hdr, const uint8_t *payload)
{
    enum comm_status_t result = COMM_ERR_NONE;
    msg_checksum_t cs = checksum(payload, hdr->payload_length);

    result = _comm_write_checked(fd, hdr, sizeof(struct msg_header_t));
    if (result != COMM_ERR_NONE) {
        return result;
    }
    result = _comm_write_checked(fd, payload, hdr->payload_length);
    if (result != COMM_ERR_NONE) {
        return result;
    }
    result = _comm_write_checked(fd, &cs, sizeof(msg_checksum_t));
    if (result != COMM_ERR_NONE) {
        return result;
    }
    return true;
}
开发者ID:horazont,项目名称:hint,代码行数:19,代码来源:comm.c


示例19: writePacket

static void writePacket(int fd, short cmd, void *data, size_t length) {
    char *buffer = malloc(PACKET_SIZE(length));
    //memset(buffer, 0, PACKET_SIZE(length));
    CmdPacket *packet = (CmdPacket *) buffer;
    packet->w02 = 2;
    packet->cmd = cmd;
    packet->dataSize = length;
    memcpy(buffer + CMD_PACKET_SIZE, data, length);
    CmdPacketEnd *end = (CmdPacketEnd *) (buffer + CMD_PACKET_SIZE + length);
    end->checksum = checksum(packet, data);
    end->w03 = 3;

    LOG(LOGLEVEL_TRACE, "Writing packet:\n");
    LOGDO(LOGLEVEL_TRACE, printBuffer(buffer, PACKET_SIZE(length)));

    write(fd, buffer, PACKET_SIZE(length));

    free(buffer);
}
开发者ID:Alioune18,项目名称:iphone-elite,代码行数:19,代码来源:baseband.c


示例20: decode_ubx

/* decode ublox raw message --------------------------------------------------*/
static int decode_ubx(raw_t *raw)
{
    int type=(U1(raw->buff+2)<<8)+U1(raw->buff+3);
    
    trace(3,"decode_ubx: type=%04x len=%d\n",type,raw->len);
    
    /* checksum */
    if (!checksum(raw->buff,raw->len)) {
        trace(2,"ubx checksum error: type=%04x len=%d\n",type,raw->len);
        return -1;
    }
    sprintf(raw->msgtype,"UBLOX: type=%2d len=%3d",type,raw->len);
    
    switch (type) {
        case ID_RXMRAW : return decode_rxmraw(raw);
        case ID_RXMSFRB: return decode_rxmsfrb(raw);
    }
    return 0;
}
开发者ID:aamalik,项目名称:gnss-master,代码行数:20,代码来源:ublox.c



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C++ checktype函数代码示例发布时间:2022-05-30
下一篇:
C++ checkprefix函数代码示例发布时间: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