Пример #1
0
        public Pv2ServerDeviceBase(IMavlinkV2Connection connection, IConfiguration cfgSvc,
                                   IEnumerable <Pv2ParamType> paramList, Pv2DeviceClass @class, IEnumerable <IWorkModeFactory> workModes,
                                   IChunkStore rttStore,
                                   IEnumerable <Pv2RttRecordDesc> rttRecords,
                                   IEnumerable <Pv2RttFieldDesc> rttFields, string configSuffix = "PV2")
        {
            var systemId    = (byte)Pv2DeviceParams.SystemId.ReadFromConfigValue(cfgSvc, configSuffix);
            var componentId = (byte)Pv2DeviceParams.ComponentId.ReadFromConfigValue(cfgSvc, configSuffix);
            var networkId   = (byte)Pv2DeviceParams.NetworkId.ReadFromConfigValue(cfgSvc, configSuffix);

            Seq = new PacketSequenceCalculator();
            var mavlinkServer = new MavlinkServerBase(connection, new MavlinkServerIdentity
            {
                ComponentId = componentId,
                SystemId    = systemId
            }, Seq).DisposeItWith(Disposable);

            _payloadServer = new PayloadV2Server(mavlinkServer, networkId).DisposeItWith(Disposable);

            var defaultParamsList =
                Pv2DeviceParams.Params.Concat(paramList)
                .Concat(Pv2BaseInterface.Params)
                .Concat(Pv2PowerInterface.Params)
                .Concat(Pv2RttInterface.Params)
                .Concat(Pv2MissionInterface.Params);

            _params = new Pv2ServerParamsInterface(_payloadServer, cfgSvc, defaultParamsList, configSuffix)
                      .DisposeItWith(Disposable);

            _base = new Pv2ServerBaseInterface(_payloadServer, @class, workModes).DisposeItWith(Disposable);

            _power = new Pv2ServerPowerInterface(_payloadServer, _params).DisposeItWith(Disposable);

            _rtt = new Pv2ServerRttInterface(_payloadServer, _base, _params, rttStore, rttRecords, rttFields)
                   .DisposeItWith(Disposable);

            _mission = new Pv2ServerMissionInterface(_payloadServer, _rtt, _base).DisposeItWith(Disposable);

            _base.OnLogMessage.Merge(_params.OnLogMessage).Merge(_power.OnLogMessage).Merge(_mission.OnLogMessage)
            .Subscribe(_ => Server.Server.StatusText.Log(_)).DisposeItWith(Disposable);
        }
Пример #2
0
 public FtpClient(IMavlinkV2Connection connection, MavlinkClientIdentity identity, PacketSequenceCalculator seq)
 {
     _connection = connection;
     _identity   = identity;
     _seq        = seq;
 }