pub struct UartRxMonitoringDecoder {
pub decoder: UartBitbangDecoder,
/* private fields */
}
Expand description
A wrapper for the UartBitbangDecoder
which converts the waveform returned
by the GpioMonitoring
interface into the uniform discrete samples that
are understood by the decoder. This performs uniform sampling according to
the baud rate from the initial response and the edges provided by monitor
reads, optimized to avoid sampling whilst the UART is idle.
Fields§
§decoder: UartBitbangDecoder
Implementations§
Source§impl UartRxMonitoringDecoder
impl UartRxMonitoringDecoder
pub fn new( decoder: UartBitbangDecoder, clock_nature: ClockNature, start: MonitoringStartResponse, ) -> Result<Self>
Sourcepub fn decode_response(
&mut self,
response: MonitoringReadResponse,
signal_index: u8,
baud_rate: u32,
) -> Result<Vec<u8>>
pub fn decode_response( &mut self, response: MonitoringReadResponse, signal_index: u8, baud_rate: u32, ) -> Result<Vec<u8>>
Decode a MonitoringReadResponse
from the GpioMonitoring
interface,
performing uniform sampling and decoding the sampled UART output.
signal_index
specifies the MonitoringReadResponse
signal
corresponding to the UART RX pin (normally 0).
Expects at least a UART frame time of idle since the initial timestamp before it will start sampling (any malformed data is dropped).
Note: it is expected that all monitor responses since monitoring initialization are fed to the decoder through this function. If any monitoring events are lost, this could cause the corruption of some received UART data.