rusEFI
The most advanced open source ECU
serial_rx.cpp
Go to the documentation of this file.
1 /**
2  * @file serial_rx.cpp
3  *
4  * 2024 Q1: do we really want to support Innovate LC-2 serial?
5  * 2024 Q2: what else do we have here?
6  * This file handles auxiliary serial communication.
7  *
8  * @date Mar 19, 2020
9  * @author Konstantin Smola, (c) 2020
10  */
11 
12 #include "pch.h"
13 
14 #if EFI_AUX_SERIAL
15 #include "serial.h"
16 #include "serial_hw.h"
17 #include "serial_sensor.h"
18 
19 uint8_t ser_buffer[SERBUFFLEN] = {};
20 size_t innovate_msg_len = 1;
22 uint8_t sb = 0;
23 bool clear_ser_buffer = false;
24 
26  : ThreadController("AUX Serial RX", PRIO_AUX_SERIAL) {
27 }
28 
30  while (true) {
33  }
34 
35  if (len >= SERBUFFLEN)
36  len = SERBUFFLEN;
37 
38  if (sdReadTimeout(AUX_SERIAL_DEVICE, &ser_buffer[sb], len, TIME_100MSEC) == len) {
40  } else {
42  }
43 
44  //clear buffer every frame to avoid parsing old data
45  if (clear_ser_buffer) {
47  clear_ser_buffer = false;
48  }
49  }
50 }
51 
52 #endif // EFI_AUX_SERIAL
void ThreadTask()
Definition: serial_rx.cpp:29
uint16_t len
Definition: serial.h:34
A base class for a controller that requires its own thread.
engine_configuration_s * engineConfiguration
innovate_serial_id_state_t
Definition: serial.h:21
@ UNKNOWN
Definition: serial.h:21
SERIAL bus low level code.
size_t innovate_msg_len
Definition: serial_rx.cpp:20
uint8_t sb
Definition: serial_rx.cpp:22
bool clear_ser_buffer
Definition: serial_rx.cpp:23
innovate_serial_id_state_t innovate_serial_id_state
Definition: serial_rx.cpp:21
uint8_t ser_buffer[SERBUFFLEN]
Definition: serial_rx.cpp:19
void ResetSerialSensor()
void ParseSerialData()
void ClearSerialBuffer()