@page "/serialtest" @using System.IO.Ports @using Microsoft.Extensions.Options @inject IOptions Config; Serial Test

@code { SerialPort? port; string? receivedText; string? inputdata ="LED"; bool status = false; bool Sending = false; bool Receiving = false; public void SendData() { if (Sending) return; // nichts senden, wenn bereits am Senden Sending = true; if (port == null && Config.Value.SerialPort != null) { port = new SerialPort(Config.Value.SerialPort); port.BaudRate = Config.Value.Baudrate; //9600 port.DataReceived += port_DataReceived; //port.DataBits = 8; //port.StopBits = StopBits.One; //port.Parity = Parity.None; //port.Handshake = Handshake.None; //port.RtsEnable = true; port.Open(); } if (port == null || !port.IsOpen) return; // Port konnte nicht initialisiert werden oder ist bereits geöffnet - dann nicht nochmal öffnen // port.Write($""); port.Write($"<{inputdata}> "); status = !status; Sending = false; // inputdata = null; } private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (Receiving) return; Receiving = true; SerialPort port = (SerialPort)sender; if (port != null) { var text = port.ReadLine(); Console.WriteLine(text); receivedText = text; InvokeAsync(StateHasChanged); // port.Close(); } Receiving = false; } }