From 7d7280a5b162800ef72d48a8a3d2afb4f0496b85 Mon Sep 17 00:00:00 2001 From: xengineering Date: Sat, 1 Jun 2024 12:48:44 +0200 Subject: firmware: Minimal frame encoding This only covers the correct frame size, setting the buffer to 0 and copy the payload over. Missing is: - copy destination address - copy source address - set frame type - calculate and add CRC32 checksum --- firmware/src/main.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'firmware/src/main.c') diff --git a/firmware/src/main.c b/firmware/src/main.c index e18cc77..8b31505 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -1,4 +1,5 @@ #include +#include #include #include @@ -24,10 +25,17 @@ int main(void) } uint8_t payload[] = {0xDE, DL_SLIP_END, DL_SLIP_ESC, 0xAD}; + uint8_t frame[DL_MAX_FRAME_SIZE]; + + ssize_t flen = dl_encode_frame(payload, ARRAY_SIZE(payload), frame); + if (flen < 0) { + printk("Failed to encode frame"); + return 0; + } while (true) { k_sleep(K_MSEC(1000)); - dl_send_frame(uart_dev, payload, ARRAY_SIZE(payload)); + dl_send_frame(uart_dev, frame, flen); } return 0; -- cgit v1.2.3-70-g09d2