public override async Task <bool> Enable() { if (!await port.Open(115200)) { return(false); } await Task.Delay(3000); port.Flush(); isEnabled = true; Console.WriteLine($"{id} Enabled"); return(true); }
void SendMessage(object o) { if (o is byte[]) { _port.Write((byte[])o); Thread.Sleep(_port.AfterWriteDelay); return; } Message m = (Message)o; #if DEBUG m.PerformanceInfo.TimeStartedProcessing = DateTime.Now; #endif MessageEventArgs args = null; var e = BeforeMessageSent; if (e != null) { args = new MessageEventArgs(m); e(args); if (args.Cancel) { return; } } _port.Write(m.Packet); // Flush DBus port if (_port.WriteBufferSize == 1) { _port.Flush(); } #if DEBUG m.PerformanceInfo.TimeEndedProcessing = DateTime.Now; #endif e = AfterMessageSent; if (e != null) { if (args == null) { args = new MessageEventArgs(m); } e(args); } Thread.Sleep(m.AfterSendDelay > 0 ? m.AfterSendDelay : _port.AfterWriteDelay); // Don't flood iBus m = null; // will it optimize memory usage??? }