From 67608e789f15d21e9da0b056bf3cf3c3d0fdaf10 Mon Sep 17 00:00:00 2001 From: Allen Hill Date: Mon, 16 Oct 2023 18:56:22 -0400 Subject: [PATCH] Fix binary printframe --- src/avclandrv.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/avclandrv.c b/src/avclandrv.c index db6e5d1..a62244e 100644 --- a/src/avclandrv.c +++ b/src/avclandrv.c @@ -881,8 +881,16 @@ uint8_t AVCLAN_sendframe(const AVCLAN_frame_t *frame) { void AVCLAN_printframe(const AVCLAN_frame_t *frame, uint8_t binary) { if (binary) { RS232_SendByte(0x10); // Data Link Escape, signaling binary data forthcoming - RS232_sendbytes((uint8_t *)frame, - sizeof(AVCLAN_frame_t) - sizeof(uint8_t *)); + RS232_SendByte(frame->broadcast); + + // Send addresses in big-endian order + RS232_SendByte(*(((uint8_t *)&frame->controller_addr) + 1)); + RS232_SendByte(*(((uint8_t *)&frame->controller_addr) + 0)); + RS232_SendByte(*(((uint8_t *)&frame->peripheral_addr) + 1)); + RS232_SendByte(*(((uint8_t *)&frame->peripheral_addr) + 0)); + + RS232_SendByte(frame->control); + RS232_SendByte(frame->length); RS232_sendbytes(frame->data, frame->length); RS232_SendByte(0x17); // End of transmission block RS232_Print("\n");