private void OnTransmitting(object sender, UartDataEventArgs e) { if (transport != null) { transport.Send(e.Data); } }
protected virtual void OnTransmit(UartDataEventArgs args) { args.ParityBit = Uart.ComputeParityBit(args.Data, controlRegister); if (DataTransmitting != null) { DataTransmitting(this, args); } }
protected virtual void OnReceived(UartDataEventArgs args) { args.ParityBit = Uart.ComputeParityBit(args.Data, controlRegister); if (DataReceived != null) { DataReceived(this, args); } }
public void HandleDataTransmitting(object sender, UartDataEventArgs e) { // When there is no physical or emulated transport, force a software loopback if (transport == null) { // TODO: Check for break signal AcceptData(e.Data); } }
public void TransmitBreak() { // Complete sending current shift register contents UartDataEventArgs args = new UartDataEventArgs() { Break = true, Data = 0x00, StopBitPresent = false }; OnTransmit(args); }
public void TransmitData(byte data) { // Complete sending current shift register contents UartDataEventArgs args = new UartDataEventArgs() { Break = false, Data = data, StopBitPresent = true }; OnTransmit(args); }
public void ReceiveData(byte data) { // Data is ready to receive SerialData = data; // Remove data currently received from holding register receiveRegister = null; receivePulseCountdown = 0; // Check for overrun if (controlRegister.ReceiveReady) { // Previous data has not been read yet, so overrun controlRegister.OverrunError = true; } // Mark receive ready controlRegister.ReceiveReady = true; if (pendingFrameError) { // Report framing error that occurred during receive controlRegister.FrameError = true; // TODO (UART): Check whether a second byte needs to be send because of the overlap in data // Second frame with bogus data // AcceptData(0x23); // This is an instant framing error, as it is the result of a previous overlap //pendingFrameError = true; } // Complete sending current shift register contents UartDataEventArgs args = new UartDataEventArgs() { Break = false, Data = data, StopBitPresent = false }; OnReceived(args); }