Esempio n. 1
0
        public GpsServiceToolBarView(SerialPortDataTransport <Gps> dataTransport, IEventAggregator eventAggregator)
        {
            _dataTransport   = dataTransport;
            _eventAggregator = eventAggregator;
            this.DataContext = new GpsServiceToolbarViewModel(_dataTransport);

            InitializeComponent();
        }
        public ImuServiceToolBarView(SerialPortDataTransport <Gy955> dataTransport, IEventAggregator eventAggregator)
        {
            _dataTransport   = dataTransport;
            _eventAggregator = eventAggregator;
            DataContext      = new ImuServiceToolbarViewModel(_dataTransport);

            InitializeComponent();
        }
 protected SerialPortTransportConfigurationViewModel(SerialPortDataTransport <T> dataTransport) : base(dataTransport)
 {
     serialPortDataTransportSettings = (SerialPortDataTransportSettings)dataTransport.Settings;
     PortName    = serialPortDataTransportSettings.PortName;
     BaudRate    = serialPortDataTransportSettings.BaudRate;
     Parity      = serialPortDataTransportSettings.Parity;
     StopBits    = serialPortDataTransportSettings.StopBits;
     DataBits    = serialPortDataTransportSettings.DataBits;
     ReadTimeout = serialPortDataTransportSettings.ReadTimeout;
 }
Esempio n. 4
0
        public ImuService(SerialPortDataTransport <Gy955> dataTransport, Codec <Gy955> codec) : base(dataTransport, codec)
        {
            ((INotifyCollectionChanged)dataTransport.Channels).CollectionChanged += (sender, e) =>
            {
                if (e.NewItems != null)
                {
                    foreach (IChannel <Gy955> eNewItem in e.NewItems)
                    {
                        eNewItem.DataReceived += ENewItem_DataReceived;
                    }
                }

                if (e.OldItems != null)
                {
                    foreach (IChannel <Gy955> eOldItem in e.OldItems)
                    {
                        eOldItem.DataReceived -= ENewItem_DataReceived;
                    }
                }
            };
        }
Esempio n. 5
0
 public GpsConfigurationViewModel(SerialPortDataTransport <Gps> dataTransport, IEventAggregator eventAggregator) : base(dataTransport)
 {
     _eventAggregator = eventAggregator;
 }
 public ImuServiceToolbarViewModel(SerialPortDataTransport <Gy955> dataTransport) : base(dataTransport)
 {
 }
Esempio n. 7
0
 public GpsService(SerialPortDataTransport <Gps> dataTransport, Codec <Gps> codec) : base(dataTransport, codec)
 {
     GpsSVs     = new List <SatelliteVehicleInView>();
     GlonassSVs = new List <SatelliteVehicleInView>();
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["BOD"]).DecodeFinished +=
         (sender, e) =>
     {
         Bod = (Bod)e.Packet;
         BodChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["GGA"]).DecodeFinished +=
         (sender, e) =>
     {
         Gga     = (Gga)e.Packet;
         GpsData = new GpsData(
             Gga.FixTime,
             Gga.Latitude,
             Gga.Longitude,
             Gga.Quality,
             Gga.Hdop,
             Gga.NumberOfSatellites,
             Gga.Altitude,
             Gga.AltitudeUnits,
             Gga.HeightOfGeoid,
             Gga.HeightOfGeoidUnits,
             Gga.TimeSinceLastDgpsUpdate,
             Gga.DgpsStationId);
         GpsDataChanged?.Invoke(this, EventArgs.Empty);
         GgaChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["GLL"]).DecodeFinished +=
         (sender, e) =>
     {
         Gll      = (Gll)e.Packet;
         Position = new GeographicPosition(Gll.FixTime, Gll.Latitude, Gll.Longitude, Gll.DataActive, Gll.ModeIndicator);
         PositionChanged?.Invoke(this, EventArgs.Empty);
         GllChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["ZDA"]).DecodeFinished +=
         (sender, e) =>
     {
         Zda         = (Zda)e.Packet;
         FixDateTime = Zda.FixDateTime;
         FixDateTimeChanged?.Invoke(this, EventArgs.Empty);
         ZdaChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["VTG"]).DecodeFinished +=
         (sender, e) =>
     {
         Vtg = (Vtg)e.Packet;
         VtgChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["RTE"]).DecodeFinished +=
         (sender, e) =>
     {
         Rte = (Rte)e.Packet;
         RteChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["RMC"]).DecodeFinished +=
         (sender, e) =>
     {
         Rmc = (Rmc)e.Packet;
         RmcChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["RMB"]).DecodeFinished +=
         (sender, e) =>
     {
         Rmb = (Rmb)e.Packet;
         RmbChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["GSV"]).DecodeFinished +=
         (sender, e) =>
     {
         Gsv = (Gsv)e.Packet;
         if (Gsv.SVs.Count == 0)
         {
             return;
         }
         if (Gsv.SVs.First().PrnNumber < 64)
         {
             if (Gsv.MessageNumber == 1)
             {
                 GpsSVs = new List <SatelliteVehicleInView>(Gsv.TotalMessages * 4);
             }
             foreach (var sv in Gsv.SVs)
             {
                 GpsSVs.Add(new SatelliteVehicleInView(sv.PrnNumber, sv.Elevation, sv.Azimuth, sv.SignalToNoiseRatio));
             }
             if (Gsv.MessageNumber == Gsv.TotalMessages)
             {
                 GpsSVsChanged?.Invoke(this, EventArgs.Empty);
             }
         }
         else if (Gsv.SVs.First().PrnNumber < 128)
         {
             if (Gsv.MessageNumber == 1)
             {
                 GlonassSVs = new List <SatelliteVehicleInView>(Gsv.TotalMessages * 4);
             }
             foreach (var sv in Gsv.SVs)
             {
                 GlonassSVs.Add(new SatelliteVehicleInView(sv.PrnNumber, sv.Elevation, sv.Azimuth, sv.SignalToNoiseRatio));
             }
             if (Gsv.MessageNumber == Gsv.TotalMessages)
             {
                 GlonassSVsChanged?.Invoke(this, EventArgs.Empty);
             }
         }
         GsvChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["GST"]).DecodeFinished +=
         (sender, e) =>
     {
         Gst   = (Gst)e.Packet;
         Error = new PseudorangeErrorStatics(Gst.FixTime,
                                             Gst.Rms,
                                             Gst.SigmaLatitudeError,
                                             Gst.SigmaLongitudeError,
                                             Gst.SigmaHeightError,
                                             Gst.SemiMajorError,
                                             Gst.SemiMinorError,
                                             Gst.ErrorOrientation);
         ErrorChanged?.Invoke(this, EventArgs.Empty);
         GstChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["GSA"]).DecodeFinished +=
         (sender, e) =>
     {
         Gsa = (Gsa)e.Packet;
         ActiveSatellites = Gsa.SVs.Select(o => new Satellite(o)).ToList();
         Dop = new Dop(Gsa.Hdop, Gsa.Vdop, Gsa.Pdop, Gsa.FixMode, Gsa.GpsMode);
         ActiveSatellitesChanged?.Invoke(this, EventArgs.Empty);
         DopChanged?.Invoke(this, EventArgs.Empty);
         GsaChanged?.Invoke(this, EventArgs.Empty);
     };
     ((AncestorGenericPacketEncodingDecorator <string>)codec.Encoding.FindDecoratedEncoding <DescendantGenericPacketEncodingDecorator <Gps, string> >().EncodingDictionary["GNS"]).DecodeFinished +=
         (sender, e) =>
     {
         Gns         = (Gns)e.Packet;
         GlonassData = new GnssData(
             Gns.FixTime,
             Gns.Latitude,
             Gns.Longitude,
             Gns.GlonassModeIndicator,
             Gns.Hdop,
             Gns.NumberOfSatellites,
             Gns.OrhometricHeight,
             Gns.GeoidalSeparation,
             Gns.TimeSinceLastDgpsUpdate,
             Gns.DgpsStationId,
             Gns.Status);
         GlonassDataChanged?.Invoke(this, EventArgs.Empty);
         GnsChanged?.Invoke(this, EventArgs.Empty);
     };
 }
Esempio n. 8
0
 public GpsServiceToolbarViewModel(SerialPortDataTransport <Gps> dataTransport) : base(dataTransport)
 {
 }