void normalized_dispatch_file(dispatch_data *dd, FILE *f) { struct timeval tv; rx_id rxid; uint8_t pktbytes[UINT8_MAX]; while(1) { if(fscanf(f, HEADER_FORMAT_READ_STRING, &rxid, &tv.tv_sec, &tv.tv_usec) != 3) return; int idx = 0; int c; do { c = fgetc(f); int v; if(('0' <= c) && (c <= '9')) { v = c - '0'; } else { v = c - 'A' + 0xA; } if(!(idx & 1)) { v *= 0x10; pktbytes[idx/2] = 0; } pktbytes[idx/2] |= v; idx++; } while(c != -1 && c != '\n'); dispatch_packets(dd, pktbytes, pktbytes[0], rxid, &tv); } fclose(f); }
void my_message_callback(void *obj, const struct mosquitto_message *message) { struct timeval tv; int i; gettimeofday(&tv, NULL); uint8_t abc[16]; char *temp = (char *) message->payload; for(i=2;i<18;i++) sscanf(&temp[i*2], "%2hhx", &abc[i-2]); uint8_t id[4]; id[0] = 0x0; id[1] = 0x0; for(i=0;i<2;i++) sscanf(&temp[i*2], "%2hhx", &id[i+2]); dispatch_packets(local_dd, abc, 0x10, (uint32_t) id[3], &tv); fflush(stdout); }