示例#1
0
        public SerialTelemetryLink(IDeviceManager deviceManager, IMavLinkMessageParser messageParser, IDispatcherServices dispatcherServices)
        {
            _deviceManager      = deviceManager;
            _messageParser      = messageParser;
            _dispatcherServices = dispatcherServices;

            Messages = new ObservableCollection <MAVLinkMessage>();

            _messageParser.MessageParsed += (sndr, msg) =>
            {
                Complete(msg);
                _dispatcherServices.Invoke(() =>
                {
                    MessageParsed(sndr, msg);
                    lock (this)
                    {
                        MessagesReceived++;
                        if (!Messages.Where(emsg => emsg.MessageInfo.MsgId == msg.MessageInfo.MsgId).Any())
                        {
                            Messages.Insert(0, msg);
                            if (Messages.Count == 100)
                            {
                                Messages.Remove(Messages.Last());
                            }
                        }
                    }
                });
            };
        }
 public SerialPortTransport(IDispatcherServices dispatcher) : base(dispatcher)
 {
 }
示例#3
0
 public LogFileTransport(string logFileName, IDispatcherServices dispatcher) : base(dispatcher)
 {
     mLogFileName = logFileName;
 }
 public Transport(IDispatcherServices dispatcher)
 {
     _dispatcher = dispatcher;
 }
 public UdpTransport(IDispatcherServices dispatcher) : base(dispatcher)
 {
 }
示例#6
0
 public WiFiAdapter(IDispatcherServices dispatcherService)
 {
     _dispatcherService = dispatcherService;
 }