feat: add src/main.c
This commit is contained in:
27
src/main.c
Normal file
27
src/main.c
Normal file
@@ -0,0 +1,27 @@
|
||||
#include "monitor.h"
|
||||
#include <stdio.h>
|
||||
|
||||
static void emit(monitor_t *monitor, uint8_t *frame) {
|
||||
unsigned crc = 0;
|
||||
for (int i = 0; i < 7; ++i) {
|
||||
crc ^= frame[i];
|
||||
for (int bit = 0; bit < 8; ++bit)
|
||||
crc = (crc & 0x80u) ? ((crc << 1) ^ 7u) & 255u : (crc << 1) & 255u;
|
||||
}
|
||||
frame[7] = (uint8_t)crc;
|
||||
printf("seq=%u status=%s\n", (unsigned)((frame[1] << 8) | frame[2]),
|
||||
frame_result_name(monitor_accept(monitor, frame, 8)));
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
monitor_t monitor;
|
||||
monitor_init(&monitor);
|
||||
uint8_t frame[8] = {1, 0, 1, 0, 25, 46, 224, 0};
|
||||
emit(&monitor, frame);
|
||||
frame[2] = 3;
|
||||
emit(&monitor, frame);
|
||||
emit(&monitor, frame);
|
||||
printf("accepted=%u rejected=%u lost=%u duplicate=%u\n",
|
||||
monitor.accepted, monitor.rejected, monitor.lost, monitor.duplicate);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user