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