コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: ManagerImpl.cs プロジェクト: OlegPalchyk/imBMW
        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???
        }