From 79984ec6788744c106013242e7ba7d64459564b8 Mon Sep 17 00:00:00 2001 From: xingchen <1098756313@qq.com> Date: Fri, 25 Sep 2026 11:56:45 +0800 Subject: [PATCH] feat: add src/main.c --- src/main.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main.c diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..65c4898 --- /dev/null +++ b/src/main.c @@ -0,0 +1,27 @@ +#include "monitor.h" +#include + +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; +}