1
0
mirror of https://github.com/halleysfifthinc/Toyota-AVC-LAN synced 2025-06-07 16:06:12 +00:00

Optimize binary printframe (reduce number of RS232_print calls)

This commit is contained in:
Allen Hill 2023-10-28 14:38:15 -04:00
parent 5b97eff725
commit 18ae9a48cc

View File

@ -992,20 +992,25 @@ uint8_t AVCLAN_respond() {
void AVCLAN_printframe(const AVCLAN_frame_t *frame, uint8_t binary) { void AVCLAN_printframe(const AVCLAN_frame_t *frame, uint8_t binary) {
if (binary) { if (binary) {
RS232_SendByte(0x10); // Data Link Escape, signaling binary data forthcoming uint8_t buffer[8];
RS232_SendByte(frame->broadcast); buffer[0] = 0x10; // Data Link Escape, signaling binary data forthcoming
buffer[1] = frame->broadcast;
// Send addresses in big-endian order // Send addresses in big-endian order
RS232_SendByte(*(((uint8_t *)&frame->controller_addr) + 1)); buffer[2] = *(((uint8_t *)&frame->controller_addr) + 1);
RS232_SendByte(*(((uint8_t *)&frame->controller_addr) + 0)); buffer[3] = *(((uint8_t *)&frame->controller_addr) + 0);
RS232_SendByte(*(((uint8_t *)&frame->peripheral_addr) + 1)); buffer[4] = *(((uint8_t *)&frame->peripheral_addr) + 1);
RS232_SendByte(*(((uint8_t *)&frame->peripheral_addr) + 0)); buffer[5] = *(((uint8_t *)&frame->peripheral_addr) + 0);
RS232_SendByte(frame->control); buffer[6] = frame->control;
RS232_SendByte(frame->length); buffer[7] = frame->length;
RS232_sendbytes((uint8_t *)&buffer, 8);
RS232_sendbytes(frame->data, frame->length); RS232_sendbytes(frame->data, frame->length);
RS232_SendByte(0x17); // End of transmission block
RS232_Print("\n"); buffer[0] = 0x17; // End of transmission block
buffer[1] = 0x0D; // \r
buffer[2] = 0x0A; // \n
RS232_sendbytes((uint8_t *)&buffer, 3);
} else { } else {
RS232_PrintHex4(frame->broadcast); RS232_PrintHex4(frame->broadcast);