QP/Spy software tracing (target-resident components) More...
Typedefs | |
using | QSTimeCtr = std::uint32_t |
Functions | |
void | initBuf (std::uint8_t *const sto, std::uint_fast32_t const stoSize) noexcept |
std::uint16_t | getByte () noexcept |
std::uint8_t const * | getBlock (std::uint16_t *const pNbytes) noexcept |
void | doOutput () |
bool | onStartup (void const *arg) |
void | onCleanup () |
void | onFlush () |
QSTimeCtr | onGetTime () |
void | rxInitBuf (std::uint8_t *const sto, std::uint16_t const stoSize) noexcept |
bool | rxPut (std::uint8_t const b) noexcept |
void | rxParse () |
QP/Spy software tracing (target-resident components)
using QP::QS::QSTimeCtr = std::uint32_t |
Definition at line 97 of file qs_dummy.hpp.
|
noexcept |
Initialize the QS-TX data buffer
This function should be called from QS::onStartup() to provide QS-TX (transmit channel) with the data buffer.
[in] | sto | pointer to the storage for the transmit buffer |
[in] | stoSize | size in [bytes] of the storage buffer. Currently the size of the QS buffer cannot exceed 64KB. |
|
noexcept |
Byte-oriented interface to the QS-TX data buffer
This function delivers one byte at a time from the QS data buffer.
|
noexcept |
Block-oriented interface to the QS-TX data buffer
This function delivers a contiguous block of data from the QS data buffer. The function returns the pointer to the beginning of the block, and writes the number of bytes in the block to the location pointed to by pNbytes
. The argument pNbytes
is also used as input to provide the maximum size of the data block that the caller can accept.
[in,out] | pNbytes | pointer to the number of bytes to send. On input, pNbytes specifies the maximum number of bytes that the function can provide. On output, pNbytes contains the actual number of bytes available. |
pNbytes
to the # available bytes. If data is available at the time the function is called, the function returns NULL pointer and sets the value pointed to by pNbytes
to zero.void QP::QS::doOutput | ( | ) |
bool QP::QS::onStartup | ( | void const * | arg | ) |
void QP::QS::onCleanup | ( | ) |
void QP::QS::onFlush | ( | ) |
Flush the QS output buffer
This function is used at the end of QS dictionaries and other QS records that need to be transmitted immediately. QS::onFlush() is typically used only during the initial transient and should NOT be used thereafter because it is busy-waiting for the transmission of the data.
QSTimeCtr QP::QS::onGetTime | ( | ) |
|
noexcept |
Initialize the QS-RX data buffer
This function should be called from QS::onStartup() to provide QS-RX (receive channel) with the data buffer. The QS-RX channel requires the initialization of the QS-TX channel (see QS::initBuf()). The QS-RX channel is optional and does not need to be initialized when not needed.
[in] | sto | pointer to the storage for the QS-RX receive buffer |
[in] | stoSize | size in [bytes] of the storage buffer |
|
noexcept |
Put a byte into the QS-RX (receive channel) input buffer
[in] | b | data byte to insert into the QS-RX receive buffer |
This function is called (typically from an ISR) to put a new incoming byte into the QS-RX input buffer.
void QP::QS::rxParse | ( | ) |
Parse and process QS-RX (receive channel) data bytes
The application must call this function repeatedly to process the incoming commands from the QS-RX input channel. The frequency of the calls must be high enough to avoid overflowing the QS-RX input buffer (see QS::rxInitBuf()).