rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes
SerialTsChannel Class Referencefinal

#include <tunerstudio_io.h>

Inheritance diagram for SerialTsChannel:
Inheritance graph
[legend]
Collaboration diagram for SerialTsChannel:
Collaboration graph
[legend]

Public Member Functions

 SerialTsChannel (SerialDriver &driver)
 
void start (uint32_t baud) override
 
void stop () override
 
void write (const uint8_t *buffer, size_t size, bool isEndOfPacket) override
 
size_t readTimeout (uint8_t *buffer, size_t size, int timeout) override
 
- Public Member Functions inherited from SerialTsChannelBase
 SerialTsChannelBase (const char *p_name)
 
- Public Member Functions inherited from TsChannelBase
 TsChannelBase (const char *name)
 
virtual void flush ()
 
virtual bool isConfigured () const
 
virtual bool isReady () const
 
size_t read (uint8_t *buffer, size_t size)
 
virtual void writeCrcPacket (uint8_t responseCode, const uint8_t *buf, size_t size, bool allowLongPackets=false)
 
void sendResponse (ts_response_format_e mode, const uint8_t *buffer, int size, bool allowLongPackets=false)
 
void assertPacketSize (size_t size, bool allowLongPackets)
 
uint32_t writePacketHeader (const uint8_t responseCode, const size_t size)
 
void crcAndWriteBuffer (const uint8_t responseCode, const size_t size)
 
void copyAndWriteSmallCrcPacket (uint8_t responseCode, const uint8_t *buf, size_t size)
 
void writeCrcResponse (uint8_t responseCode)
 

Private Attributes

SerialDriver *const m_driver
 

Additional Inherited Members

- Data Fields inherited from TsChannelBase
int bytesIn = 0
 
int bytesOut = 0
 
char scratchBuffer [scratchBuffer_SIZE+30]
 
page1_s page1
 
const charname
 
bool in_sync = false
 

Detailed Description

Definition at line 107 of file tunerstudio_io.h.

Constructor & Destructor Documentation

◆ SerialTsChannel()

SerialTsChannel::SerialTsChannel ( SerialDriver &  driver)
inline

Definition at line 109 of file tunerstudio_io.h.

109: SerialTsChannelBase("Serial"), m_driver(&driver) { }
SerialDriver *const m_driver

Member Function Documentation

◆ readTimeout()

size_t SerialTsChannel::readTimeout ( uint8_t *  buffer,
size_t  size,
int  timeout 
)
overridevirtual

Implements TsChannelBase.

Definition at line 31 of file tunerstudio_io_serial.cpp.

31 {
32 size_t transferred = chnReadTimeout(m_driver, buffer, size, timeout);
33 bytesIn += transferred;
34 return transferred;
35}
composite packet size
static BigBufferHandle buffer

◆ start()

void SerialTsChannel::start ( uint32_t  baud)
overridevirtual

Implementation for hardware-serial TunerStudio ports

Implements SerialTsChannelBase.

Definition at line 9 of file tunerstudio_io_serial.cpp.

9 {
10 SerialConfig cfg = {
11 #if EFI_PROD_CODE
12 .speed = baud,
13 .cr1 = 0,
14 .cr2 = USART_CR2_STOP1_BITS,
15 .cr3 = 0
16 #endif // EFI_PROD_CODE
17 };
18
19 sdStart(m_driver, &cfg);
20}

Referenced by startSerialChannels().

Here is the caller graph for this function:

◆ stop()

void SerialTsChannel::stop ( )
overridevirtual

Reimplemented from TsChannelBase.

Definition at line 22 of file tunerstudio_io_serial.cpp.

22 {
23 sdStop(m_driver);
24}

◆ write()

void SerialTsChannel::write ( const uint8_t *  buffer,
size_t  size,
bool  isEndOfPacket 
)
overridevirtual

Implements TsChannelBase.

Definition at line 26 of file tunerstudio_io_serial.cpp.

26 {
27 size_t transferred = chnWriteTimeout(m_driver, buffer, size, BINARY_IO_TIMEOUT);
28 bytesOut += transferred;
29}

Field Documentation

◆ m_driver

SerialDriver* const SerialTsChannel::m_driver
private

Definition at line 118 of file tunerstudio_io.h.

Referenced by readTimeout(), start(), stop(), and write().


The documentation for this class was generated from the following files: