public ResourceMonitor()
        {
            _bindingManager = BindingServiceProvider.BindingManager;
            BindingServiceProvider.BindingManager = this;

            _bindings = new List<WeakReference>();
            _viewModels = new List<WeakReference>();
            _views = new List<WeakReference>();
            ViewManager.ViewInitialized += (manager, model, arg3, arg4) =>
            {
                lock (_views)
                    _views.Add(new WeakReference(arg3, true));
                ++ViewCount;
            };
            Tracer.TraceViewModelHandler += (auditAction, viewModel) =>
            {
                if (auditAction != AuditAction.Created)
                    return;
                lock (_viewModels)
                    _viewModels.Add(new WeakReference(viewModel, true));
                ++ViewModelCount;
            };
            // ReSharper disable once ObjectCreationAsStatement
            new ReferenceCollector(this);
        }
        public DisplayValue
        (
            Expression <Func <double> > source,
            Unit sourceUnit,
            Unit[] units,
            double minSourceValue = double.NaN,
            double maxSourceValue = double.NaN
        )
        {
            Bindings = new BindingManager();
            Units    = new DisplayUnits(this, sourceUnit, units);

            Bindings.BindTwoWay
            (
                source,
                () => Value,
                sourceValue => UnitConverter.Convert(sourceValue, from: Units.Source, to: Units.Target),
                targetValue => UnitConverter.Convert(targetValue, from: Units.Target, to: Units.Source)
            );

            MinSourceValue = minSourceValue;
            MaxSourceValue = maxSourceValue;

            Refresh();
        }
 public BindingsElementDriver(
     IBindingManager bindingManager,
     IContentDefinitionManager contentDefinitionManager)
 {
     _bindingManager           = bindingManager;
     _contentDefinitionManager = contentDefinitionManager;
 }
Exemple #4
0
 public Container(IBindingManager bindingManager, IBindingDiscoverer bindingDiscoverer, IActivationManager activationManager, ITypeSystem typeSystem)
 {
     _bindingManager    = bindingManager;
     _bindingDiscoverer = bindingDiscoverer;
     _activationManager = activationManager;
     TypeSystem         = typeSystem;
 }
Exemple #5
0
 public void EnableActiveFlyByWire(IBindingManager manager)
 {
     foreach (KeyValuePair <string, bool> kvp in flyByWire)
     {
         manager.ToggleFlyByWire(kvp.Key, kvp.Value);
     }
 }
Exemple #6
0
 internal void Initialize(IBindingManager bindingManager, IBindingDiscoverer bindingDiscoverer, IActivationManager activationManager)
 {
     _bindingManager    = bindingManager;
     _bindingDiscoverer = bindingDiscoverer;
     _activationManager = activationManager;
     Register(typeof(IContainer), this);
 }
Exemple #7
0
 public void BindTo(IBindingManager manager)
 {
     #if DEBUG
     manager.AddGetter("TEST1", cpu => 4);
     manager.AddSetter("TEST1", (cpu, val) => cpu.StdOut(val.ToString()));
     #endif
 }
Exemple #8
0
        public void BindTo(IBindingManager manager)
        {
#if DEBUG
            manager.AddGetter("TEST1", cpu => 4);
            manager.AddSetter("TEST1", (cpu, val) => cpu.StdOut(val.ToString()));
#endif
        }
Exemple #9
0
        public void BindTo(IBindingManager manager)
        {
            manager.AddGetter("LOADDISTANCE", cpu => Vessel.loadDistance );
            manager.AddSetter("LOADDISTANCE", delegate(ICPU cpu, object val)
                {
                    var distance = (float) val;
                    Vessel.loadDistance = distance;
                    Vessel.unloadDistance = distance - 250;
                });
            manager.AddGetter("WARP", cpu => TimeWarp.fetch.current_rate_index);
            manager.AddSetter("WARP", delegate(ICPU cpu, object val)
                {
                    int newRate;
                    if (int.TryParse(val.ToString(), out newRate))
                    {
                        TimeWarp.SetRate(newRate, false);
                    }
                });

            foreach (var body in FlightGlobals.fetch.bodies)
            {
                var cBody = body;
                manager.AddGetter(body.name, cpu => new BodyTarget(cBody, cpu.Vessel));
            }
        }
 public FormService(
     ILayoutSerializer serializer,
     IClock clock,
     IRepository <Submission> submissionRepository,
     IFormElementEventHandler elementHandlers,
     IContentDefinitionManager contentDefinitionManager,
     IBindingManager bindingManager,
     IDynamicFormEventHandler formEventHandler,
     Lazy <IEnumerable <IElementValidator> > validators,
     IDateLocalizationServices dateLocalizationServices,
     IOrchardServices services,
     ICultureAccessor cultureAccessor)
 {
     _serializer               = serializer;
     _clock                    = clock;
     _submissionRepository     = submissionRepository;
     _elementHandlers          = elementHandlers;
     _contentManager           = services.ContentManager;
     _contentDefinitionManager = contentDefinitionManager;
     _bindingManager           = bindingManager;
     _formEventHandler         = formEventHandler;
     _validators               = validators;
     _dateLocalizationServices = dateLocalizationServices;
     _services                 = services;
     _cultureAccessor          = cultureAccessor;
 }
Exemple #11
0
        public CPU(object parent, string context)
        {
            Mode         = CPUMode.READY;
            this.parent  = parent;
            this.context = context;

            bindingManager = new BindingManager(this, this.context);

            if (context == "ksp")
            {
                RunType = KOSRunType.KSP;

                if (Vessel != null)
                {
                    Archive = new Archive(Vessel);
                }
                Volumes.Add(Archive);
            }
            else
            {
                RunType = KOSRunType.WINFORMS;
            }

            RegisterkOSExternalFunction(new object[] { "test2", this, "testFunction", 2 });
        }
Exemple #12
0
        public void BindTo(IBindingManager manager)
        {
            manager.AddGetter("LOADDISTANCE", cpu => Vessel.loadDistance);
            manager.AddSetter("LOADDISTANCE", delegate(ICPU cpu, object val)
            {
                var distance          = (float)val;
                Vessel.loadDistance   = distance;
                Vessel.unloadDistance = distance - 250;
            });
            manager.AddGetter("WARP", cpu => TimeWarp.fetch.current_rate_index);
            manager.AddSetter("WARP", delegate(ICPU cpu, object val)
            {
                int newRate;
                if (int.TryParse(val.ToString(), out newRate))
                {
                    TimeWarp.SetRate(newRate, false);
                }
            });

            foreach (var body in FlightGlobals.fetch.bodies)
            {
                var cBody = body;
                manager.AddGetter(body.name, cpu => new BodyTarget(cBody, cpu.Vessel));
            }
        }
Exemple #13
0
 internal static void SetDefaultValues()
 {
     _valueConverter    = BindingReflectionExtensions.Convert;
     _resourceResolver  = new BindingResourceResolver();
     _memberProvider    = new BindingMemberProvider();
     _visualTreeManager = new VisualTreeManager();
     _weakEventManager  = new WeakEventManager();
     _bindingManager    = new BindingManager();
     _bindingProvider   = new BindingProvider();
     _observerProvider  = new ObserverProvider();
     _contextManager    = new BindingContextManager();
 }
 internal static void Clear(IMenuItem item, IBindingManager bindingManager)
 {
     if (item == null)
     {
         return;
     }
     bindingManager.ClearBindings(item);
     if (item.HasSubMenu)
     {
         MenuTemplate.Clear(item.SubMenu, bindingManager);
     }
     BindingExtensions.AttachedParentMember.SetValue(item, BindingExtensions.NullValue);
 }
            public FlightCtrlParam(string name, SharedObjects sharedObjects)
            {
                this.name = name;
                shared    = sharedObjects;
                control   = GetControllerByVessel(sharedObjects.Vessel);

                binding = sharedObjects.BindingMgr;
                Enabled = false;
                value   = null;


                HookEvents();
            }
Exemple #16
0
            public LockableControl(string name, string propertyName, ICPU cpu, IBindingManager manager)
            {
                Name   = name;
                Cpu    = cpu;
                Vessel = cpu.Vessel;
                Locked = false;
                Value  = 0;

                manager.AddGetter(name, c => Value);
                manager.AddSetter(name, delegate { });

                this.propertyName = propertyName;
            }
        public void BindTo(IBindingManager manager)
        {
            manager.AddSetter("TARGET", delegate(ICPU cpu, object val)
                {
                    if (val is ITargetable)
                    {
                        VesselUtils.SetTarget((ITargetable) val);
                    }
                    else if (val is VesselTarget)
                    {
                        VesselUtils.SetTarget(((VesselTarget) val).Target);
                    }
                    else if (val is BodyTarget)
                    {
                        VesselUtils.SetTarget(((BodyTarget) val).Target);
                    }
                    else
                    {
                        var body = VesselUtils.GetBodyByName(val.ToString());
                        if (body != null)
                        {
                            VesselUtils.SetTarget(body);
                            return;
                        }

                        var vessel = VesselUtils.GetVesselByName(val.ToString(), cpu.Vessel);
                        if (vessel != null)
                        {
                            VesselUtils.SetTarget(vessel);
                        }
                    }
                });

            manager.AddGetter("TARGET", delegate(ICPU cpu)
                {
                    var currentTarget = FlightGlobals.fetch.VesselTarget;

                    if (currentTarget is Vessel)
                    {
                        return new VesselTarget((Vessel) currentTarget, cpu);
                    }
                    if (currentTarget is CelestialBody)
                    {
                        return new BodyTarget((CelestialBody) currentTarget, cpu.Vessel);
                    }

                    return null;
                });
        }
 internal static void SetDefaultValues()
 {
     BindingCultureInfo  = null;
     _updateEventFinder  = FindUpdateEvent;
     _bindingPathFactory = BindingPath.Create;
     _valueConverter     = BindingReflectionExtensions.Convert;
     _resourceResolver   = new BindingResourceResolver();
     _memberProvider     = new BindingMemberProvider();
     _visualTreeManager  = new VisualTreeManager();
     _weakEventManager   = new WeakEventManager();
     _bindingManager     = new BindingManager();
     _bindingProvider    = new BindingProvider();
     _observerProvider   = new ObserverProvider();
     _contextManager     = new BindingContextManager();
 }
Exemple #19
0
        internal static void Clear(IMenu menu, IBindingManager bindingManager)
        {
            if (menu == null)
            {
                return;
            }
            bindingManager.ClearBindings(menu);
            int size = menu.Size();

            for (int i = 0; i < size; i++)
            {
                MenuItemTemplate.Clear(menu.GetItem(i), bindingManager);
            }
            menu.Clear();
            BindingExtensions.AttachedParentMember.SetValue(menu, BindingExtensions.NullValue);
        }
Exemple #20
0
            public FlightCtrlParam(string name, SharedObjects sharedObjects)
            {
                this.name = name;
                shared    = sharedObjects;
                control   = GetControllerByVessel(sharedObjects.Vessel);

                binding = sharedObjects.BindingMgr;
                Enabled = false;
                value   = null;

                if (string.Equals(name, "steering", StringComparison.CurrentCultureIgnoreCase))
                {
                    steeringManager = SteeringManagerProvider.GetInstance(sharedObjects);
                }

                HookEvents();
            }
Exemple #21
0
 public void DisableActiveFlyByWire(IBindingManager manager)
 {
     foreach (KeyValuePair <string, bool> kvp in flyByWire)
     {
         if (kvp.Value)
         {
             try
             {
                 manager.ToggleFlyByWire(kvp.Key, false);
             }
             catch (Exception ex) // intentionally catch any exception thrown so we don't crash in the middle of breaking execution
             {
                 // log the exception only when "super verbose" is enabled
                 Utilities.SafeHouse.Logger.SuperVerbose(string.Format("Excepton in ProgramContext.DisableActiveFlyByWire\r\n{0}", ex));
             }
         }
     }
 }
Exemple #22
0
        public void BindTo(IBindingManager manager)
        {
            manager.AddSetter("TARGET", delegate(ICPU cpu, object val)
                {
                    var targetable = val as IKOSTargetable;
                    if (targetable != null)
                    {
                        VesselUtils.SetTarget(targetable);
                    }
                    else
                    {
                        var body = VesselUtils.GetBodyByName(val.ToString());
                        if (body != null)
                        {
                            VesselUtils.SetTarget(body);
                            return;
                        }

                        var vessel = VesselUtils.GetVesselByName(val.ToString(), cpu.Vessel);
                        if (vessel != null)
                        {
                            VesselUtils.SetTarget(vessel);
                        }
                    }
                });

            manager.AddGetter("TARGET", delegate(ICPU cpu)
                {
                    var currentTarget = FlightGlobals.fetch.VesselTarget;

                    var vessel = currentTarget as Vessel;
                    if (vessel != null)
                    {
                        return new VesselTarget(vessel, cpu);
                    }
                    var body = currentTarget as CelestialBody;
                    if (body != null)
                    {
                        return new BodyTarget(body, cpu.Vessel);
                    }

                    return null;
                });
        }
Exemple #23
0
        public void BindTo(IBindingManager manager)
        {
            manager.AddSetter("TARGET", delegate(ICPU cpu, object val)
            {
                var targetable = val as IKOSTargetable;
                if (targetable != null)
                {
                    VesselUtils.SetTarget(targetable);
                }
                else
                {
                    var body = VesselUtils.GetBodyByName(val.ToString());
                    if (body != null)
                    {
                        VesselUtils.SetTarget(body);
                        return;
                    }

                    var vessel = VesselUtils.GetVesselByName(val.ToString(), cpu.Vessel);
                    if (vessel != null)
                    {
                        VesselUtils.SetTarget(vessel);
                    }
                }
            });

            manager.AddGetter("TARGET", delegate(ICPU cpu)
            {
                var currentTarget = FlightGlobals.fetch.VesselTarget;

                var vessel = currentTarget as Vessel;
                if (vessel != null)
                {
                    return(new VesselTarget(vessel, cpu));
                }
                var body = currentTarget as CelestialBody;
                if (body != null)
                {
                    return(new BodyTarget(body, cpu.Vessel));
                }

                return(null);
            });
        }
        public VoltmeterViewModel(IDeviceManager deviceManager, ITimer timer = null)
        {
            Contract.Requires<ArgumentNullException>(deviceManager != null);
            Bindings = new BindingManager();
            Voltmeter = new Model.Voltmeter(deviceManager, new CurrentContextTaskQueue());
            DeviceMonitor = new DeviceMonitor(deviceManager, DeviceConstants.SearchPattern);
            StopWatch = new Stopwatch();
            Timer = timer ?? new UiTimer
            {
                AutoReset = true,
                Interval = TimeSpan.FromMilliseconds(50),
            };
            Timer.Tick += (s, e) => { if (IsRunning) this.Notify(PropertyChanged, me => me.SessionDuration); };
            AvailableDevices.ListChanged += (s, e) => AutoSelectDevice(forceDeviceChange: false);

            AddDisplayValues();
            AddBindings();
            AutoSelectDevice(forceDeviceChange: true);
        }
Exemple #25
0
        public void BindTo(IBindingManager manager)
        {
            manager.AddSetter("SAS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.SAS, (bool) val));
            manager.AddSetter("GEAR", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Gear, (bool) val));
            manager.AddSetter("LEGS", (cpu, val) => VesselUtils.LandingLegsCtrl(cpu.Vessel, (bool) val));
            manager.AddSetter("CHUTES", (cpu, val) => VesselUtils.DeployParachutes(cpu.Vessel, (bool) val));
            manager.AddSetter("LIGHTS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Light, (bool) val));
            manager.AddSetter("PANELS", (cpu, val) => VesselUtils.SolarPanelCtrl(cpu.Vessel, (bool) val));
            manager.AddSetter("BRAKES", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Brakes, (bool) val));
            manager.AddSetter("RCS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.RCS, (bool) val));
            manager.AddSetter("ABORT", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Abort, (bool) val));
            manager.AddSetter("AG1", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom01, (bool) val));
            manager.AddSetter("AG2", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom02, (bool) val));
            manager.AddSetter("AG3", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom03, (bool) val));
            manager.AddSetter("AG4", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom04, (bool) val));
            manager.AddSetter("AG5", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom05, (bool) val));
            manager.AddSetter("AG6", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom06, (bool) val));
            manager.AddSetter("AG7", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom07, (bool) val));
            manager.AddSetter("AG8", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom08, (bool) val));
            manager.AddSetter("AG9", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom09, (bool) val));
            manager.AddSetter("AG10", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom10, (bool) val));

            manager.AddGetter("SAS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.SAS]);
            manager.AddGetter("GEAR", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Gear]);
            manager.AddGetter("LEGS", cpu => VesselUtils.GetLandingLegStatus(cpu.Vessel));
            manager.AddGetter("CHUTES", cpu => VesselUtils.GetChuteStatus(cpu.Vessel));
            manager.AddGetter("LIGHTS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Light]);
            manager.AddGetter("PANELS", cpu => VesselUtils.GetSolarPanelStatus(cpu.Vessel));
            manager.AddGetter("BRAKES", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Brakes]);
            manager.AddGetter("RCS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.RCS]);
            manager.AddGetter("ABORT", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Abort]);
            manager.AddGetter("AG1", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom01]);
            manager.AddGetter("AG2", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom02]);
            manager.AddGetter("AG3", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom03]);
            manager.AddGetter("AG4", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom04]);
            manager.AddGetter("AG5", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom05]);
            manager.AddGetter("AG6", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom06]);
            manager.AddGetter("AG7", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom07]);
            manager.AddGetter("AG8", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom08]);
            manager.AddGetter("AG9", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom09]);
            manager.AddGetter("AG10", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom10]);
        }
Exemple #26
0
        public void BindTo(IBindingManager manager)
        {
            manager.AddSetter("SAS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.SAS, (bool)val));
            manager.AddSetter("GEAR", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Gear, (bool)val));
            manager.AddSetter("LEGS", (cpu, val) => VesselUtils.LandingLegsCtrl(cpu.Vessel, (bool)val));
            manager.AddSetter("CHUTES", (cpu, val) => VesselUtils.DeployParachutes(cpu.Vessel, (bool)val));
            manager.AddSetter("LIGHTS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Light, (bool)val));
            manager.AddSetter("PANELS", (cpu, val) => VesselUtils.SolarPanelCtrl(cpu.Vessel, (bool)val));
            manager.AddSetter("BRAKES", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Brakes, (bool)val));
            manager.AddSetter("RCS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.RCS, (bool)val));
            manager.AddSetter("ABORT", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Abort, (bool)val));
            manager.AddSetter("AG1", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom01, (bool)val));
            manager.AddSetter("AG2", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom02, (bool)val));
            manager.AddSetter("AG3", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom03, (bool)val));
            manager.AddSetter("AG4", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom04, (bool)val));
            manager.AddSetter("AG5", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom05, (bool)val));
            manager.AddSetter("AG6", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom06, (bool)val));
            manager.AddSetter("AG7", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom07, (bool)val));
            manager.AddSetter("AG8", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom08, (bool)val));
            manager.AddSetter("AG9", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom09, (bool)val));
            manager.AddSetter("AG10", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom10, (bool)val));

            manager.AddGetter("SAS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.SAS]);
            manager.AddGetter("GEAR", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Gear]);
            manager.AddGetter("LEGS", cpu => VesselUtils.GetLandingLegStatus(cpu.Vessel));
            manager.AddGetter("CHUTES", cpu => VesselUtils.GetChuteStatus(cpu.Vessel));
            manager.AddGetter("LIGHTS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Light]);
            manager.AddGetter("PANELS", cpu => VesselUtils.GetSolarPanelStatus(cpu.Vessel));
            manager.AddGetter("BRAKES", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Brakes]);
            manager.AddGetter("RCS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.RCS]);
            manager.AddGetter("ABORT", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Abort]);
            manager.AddGetter("AG1", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom01]);
            manager.AddGetter("AG2", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom02]);
            manager.AddGetter("AG3", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom03]);
            manager.AddGetter("AG4", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom04]);
            manager.AddGetter("AG5", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom05]);
            manager.AddGetter("AG6", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom06]);
            manager.AddGetter("AG7", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom07]);
            manager.AddGetter("AG8", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom08]);
            manager.AddGetter("AG9", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom09]);
            manager.AddGetter("AG10", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom10]);
        }
Exemple #27
0
        public void BindTo(IBindingManager manager)
        {
            cpu = manager.Cpu;
            vessel = manager.Cpu.Vessel;

            controls.Add(new LockableControl("THROTTLE", "throttle", cpu, manager));
            controls.Add(new LockableControl("STEERING", "steering", cpu, manager));

            controls.Add(new LockableControl("WHEELSTEERING", "wheelsteering", cpu, manager));
            controls.Add(new LockableControl("WHEELTHROTTLE", "wheelthrottle", cpu, manager));

            // Temporarily removing the ability of RT2 to take over
            // the on-rails autpilot as it seems to be buggy

            //if (RTHook.Instance == null || !RTHook.Instance.HasFlightComputer(vessel.id))
            //{
            //    vessel.OnFlyByWire += OnFlyByWire;
            //}
            vessel.OnFlyByWire += OnFlyByWire;
        }
Exemple #28
0
        public void BindTo(IBindingManager manager)
        {
            cpu    = manager.Cpu;
            vessel = manager.Cpu.Vessel;

            controls.Add(new LockableControl("THROTTLE", "throttle", cpu, manager));
            controls.Add(new LockableControl("STEERING", "steering", cpu, manager));

            controls.Add(new LockableControl("WHEELSTEERING", "wheelsteering", cpu, manager));
            controls.Add(new LockableControl("WHEELTHROTTLE", "wheelthrottle", cpu, manager));

            // Temporarily removing the ability of RT2 to take over
            // the on-rails autpilot as it seems to be buggy

            //if (RTHook.Instance == null || !RTHook.Instance.HasFlightComputer(vessel.id))
            //{
            //    vessel.OnFlyByWire += OnFlyByWire;
            //}
            vessel.OnFlyByWire += OnFlyByWire;
        }
Exemple #29
0
        public CPU(object parent, string context)
        {
            Mode = CPUMode.READY;
            this.parent = parent;
            this.context = context;

            bindingManager = new BindingManager(this, this.context);

            if (context == "ksp")
            {
                RunType = KOSRunType.KSP;

                if (Vessel != null) Archive = new Archive(Vessel);
                Volumes.Add(Archive);
            }
            else
            {
                RunType = KOSRunType.WINFORMS;
            }

            RegisterkOSExternalFunction(new object[] {"test2", this, "testFunction", 2});
        }
Exemple #30
0
        public void BindTo(IBindingManager manager)
        {
            manager.AddGetter("ALT:APOAPSIS", cpu => cpu.Vessel.orbit.ApA);
            manager.AddGetter("ALT:PERIAPSIS", cpu => cpu.Vessel.orbit.PeA);
            manager.AddGetter("ALT:RADAR", cpu => cpu.Vessel.heightFromTerrain > 0 ? Mathf.Min(cpu.Vessel.heightFromTerrain, (float)cpu.Vessel.altitude) : (float)cpu.Vessel.altitude);
            manager.AddGetter("ANGULARVELOCITY", cpu => cpu.Vessel.transform.InverseTransformDirection(cpu.Vessel.rigidbody.angularVelocity));
            manager.AddGetter("COMMRANGE", cpu => VesselUtils.GetCommRange(cpu.Vessel));
            manager.AddGetter("ENCOUNTER", cpu => VesselUtils.TryGetEncounter(cpu.Vessel));
            manager.AddGetter("ETA:APOAPSIS", cpu => cpu.Vessel.orbit.timeToAp);
            manager.AddGetter("ETA:PERIAPSIS", cpu => cpu.Vessel.orbit.timeToPe);
            manager.AddGetter("ETA:TRANSITION", cpu => cpu.Vessel.orbit.EndUT - cpu.Vessel.missionTime);
            manager.AddGetter("INCOMMRANGE", cpu => Convert.ToDouble(CheckCommRange(cpu.Vessel)));
            manager.AddGetter("MISSIONTIME", cpu => cpu.Vessel.missionTime);
            manager.AddGetter("OBT", cpu => new OrbitInfo(cpu.Vessel.orbit, cpu.Vessel));
            manager.AddGetter("TIME", cpu => new TimeSpan(Planetarium.GetUniversalTime()));
            manager.AddGetter("SHIP", cpu => new VesselTarget(cpu.Vessel, cpu));
            manager.AddGetter("STATUS", cpu => cpu.Vessel.situation.ToString());
            manager.AddGetter("STAGE", cpu => new StageValues(cpu.Vessel));
            manager.AddSetter("VESSELNAME", delegate(ICPU cpu, object value) { cpu.Vessel.vesselName = value.ToString(); });

            manager.AddGetter("NEXTNODE", delegate(ICPU cpu)
            {
                var vessel = cpu.Vessel;
                if (vessel.patchedConicSolver.maneuverNodes.Count == 0)
                {
                    throw new KOSException("No maneuver nodes present!");
                }

                return(Node.FromExisting(vessel, vessel.patchedConicSolver.maneuverNodes[0]));
            });

            // These are now considered shortcuts to SHIP:suffix
            foreach (var scName in VesselTarget.ShortCuttableShipSuffixes)
            {
                var cName = scName;
                manager.AddGetter(scName, cpu => new VesselTarget(cpu.Vessel, cpu).GetSuffix(cName));
            }
        }
Exemple #31
0
        public void BindTo(IBindingManager manager)
        {
            manager.AddGetter("ALT:APOAPSIS", cpu => cpu.Vessel.orbit.ApA);
            manager.AddGetter("ALT:PERIAPSIS", cpu => cpu.Vessel.orbit.PeA);
            manager.AddGetter("ALT:RADAR", cpu => cpu.Vessel.heightFromTerrain > 0 ? Mathf.Min(cpu.Vessel.heightFromTerrain, (float) cpu.Vessel.altitude) : (float) cpu.Vessel.altitude);
            manager.AddGetter("ANGULARVELOCITY", cpu => cpu.Vessel.transform.InverseTransformDirection(cpu.Vessel.rigidbody.angularVelocity));
            manager.AddGetter("COMMRANGE", cpu => VesselUtils.GetCommRange(cpu.Vessel));
            manager.AddGetter("ENCOUNTER", cpu => VesselUtils.TryGetEncounter(cpu.Vessel));
            manager.AddGetter("ETA:APOAPSIS", cpu => cpu.Vessel.orbit.timeToAp);
            manager.AddGetter("ETA:PERIAPSIS", cpu => cpu.Vessel.orbit.timeToPe);
            manager.AddGetter("ETA:TRANSITION", cpu => cpu.Vessel.orbit.EndUT - cpu.Vessel.missionTime);
            manager.AddGetter("INCOMMRANGE", cpu => Convert.ToDouble(CheckCommRange(cpu.Vessel)));
            manager.AddGetter("MISSIONTIME", cpu => cpu.Vessel.missionTime);
            manager.AddGetter("OBT", cpu => new OrbitInfo(cpu.Vessel.orbit, cpu.Vessel));
            manager.AddGetter("TIME", cpu => new TimeSpan(Planetarium.GetUniversalTime()));
            manager.AddGetter("SHIP", cpu => new VesselTarget(cpu.Vessel, cpu));
            manager.AddGetter("STATUS", cpu => cpu.Vessel.situation.ToString());
            manager.AddGetter("STAGE", cpu => new StageValues(cpu.Vessel));
            manager.AddSetter("VESSELNAME", delegate(ICPU cpu, object value) { cpu.Vessel.vesselName = value.ToString(); });

            manager.AddGetter("NEXTNODE", delegate(ICPU cpu)
                {
                    var vessel = cpu.Vessel;
                    if (vessel.patchedConicSolver.maneuverNodes.Count == 0)
                    {
                        throw new KOSException("No maneuver nodes present!");
                    }

                    return Node.FromExisting(vessel, vessel.patchedConicSolver.maneuverNodes[0]);
                });

            // These are now considered shortcuts to SHIP:suffix
            foreach (var scName in VesselTarget.ShortCuttableShipSuffixes)
            {
                var cName = scName;
                manager.AddGetter(scName, cpu => new VesselTarget(cpu.Vessel, cpu).GetSuffix(cName));
            }
        }
        public VoltmeterViewModel(IDeviceManager deviceManager, ITimer timer = null)
        {
            Contract.Requires <ArgumentNullException>(deviceManager != null);
            Bindings      = new BindingManager();
            Voltmeter     = new Model.Voltmeter(deviceManager, new CurrentContextTaskQueue());
            DeviceMonitor = new DeviceMonitor(deviceManager, DeviceConstants.SearchPattern);
            StopWatch     = new Stopwatch();
            Timer         = timer ?? new UiTimer
            {
                AutoReset = true,
                Interval  = TimeSpan.FromMilliseconds(50),
            };
            Timer.Tick += (s, e) => { if (IsRunning)
                                      {
                                          this.Notify(PropertyChanged, me => me.SessionDuration);
                                      }
            };
            AvailableDevices.ListChanged += (s, e) => AutoSelectDevice(forceDeviceChange: false);

            AddDisplayValues();
            AddBindings();
            AutoSelectDevice(forceDeviceChange: true);
        }
Exemple #33
0
        public DisplayValue(
                Expression<Func<double>> source,
                Unit sourceUnit,
                Unit[] units,
                double minSourceValue = double.NaN,
                double maxSourceValue = double.NaN
            )
        {
            Bindings = new BindingManager();
            Units = new DisplayUnits(this, sourceUnit, units);

            Bindings.BindTwoWay
            (
                source,
                () => Value,
                sourceValue => UnitConverter.Convert(sourceValue, from: Units.Source, to: Units.Target),
                targetValue => UnitConverter.Convert(targetValue, from: Units.Target, to: Units.Source)
            );

            MinSourceValue = minSourceValue;
            MaxSourceValue = maxSourceValue;

            Refresh();
        }
 protected virtual DataBinding CreateDataBinding(ISingleBindingSourceAccessor target,
     IBindingSourceAccessor source, IBindingManager manager = null)
 {
     if (manager != null)
         BindingServiceProvider.BindingManager = manager;
     return new DataBinding(target, source);
 }
Exemple #35
0
            public FlightCtrlParam(string name, SharedObjects sharedObjects)
            {
                this.name = name;
                shared = sharedObjects;
                control = GetControllerByVessel(sharedObjects.Vessel);

                binding = sharedObjects.BindingMgr;
                Enabled = false;
                value = null;

                if (string.Equals(name, "steering", StringComparison.CurrentCultureIgnoreCase))
                {
                    steeringManager = SteeringManagerProvider.GetInstance(sharedObjects);
                }

                HookEvents();
            }
Exemple #36
0
        public void BindTo(IBindingManager manager)
        {
            //manager.AddGetter("HEADING", delegate(CPU cpu) { return cpu.Vessel.vesselName; });

            //manager.AddSetter("VESSELNAME", delegate(CPU cpu, object value) { cpu.Vessel.vesselName = value.ToString(); });
        }
Exemple #37
0
 public void BindTo(IBindingManager manager)
 {
     manager.AddGetter("SESSIONTIME", cpu => cpu.SessionTime);
     manager.AddGetter("VERSION", cpu => Core.VersionInfo);
     manager.AddGetter("VOLUME:NAME", cpu => cpu.SelectedVolume.Name);
 }
Exemple #38
0
            public LockableControl(string name, string propertyName, ICPU cpu, IBindingManager manager)
            {
                Name = name;
                Cpu = cpu;
                Vessel = cpu.Vessel;
                Locked = false;
                Value = 0;

                manager.AddGetter(name, c => Value);
                manager.AddSetter(name, delegate { });

                this.propertyName = propertyName;
            }
Exemple #39
0
 public void BindTo(IBindingManager manager)
 {
     manager.AddGetter("SESSIONTIME", cpu => cpu.SessionTime);
     manager.AddGetter("VERSION", cpu => Core.VersionInfo);
     manager.AddGetter("VOLUME:NAME", cpu => cpu.SelectedVolume.Name);
 }
Exemple #40
0
 public void EnableActiveFlyByWire(IBindingManager manager)
 {
     foreach (KeyValuePair<string, bool> kvp in flyByWire) {
         manager.ToggleFlyByWire(kvp.Key, kvp.Value);
     }
 }
Exemple #41
0
        public void BindTo(IBindingManager manager)
        {
            //manager.AddGetter("HEADING", delegate(CPU cpu) { return cpu.Vessel.vesselName; });

            //manager.AddSetter("VESSELNAME", delegate(CPU cpu, object value) { cpu.Vessel.vesselName = value.ToString(); });
        }
Exemple #42
0
            public FlightCtrlParam(string name, SharedObjects sharedObjects)
            {
                this.name = name;
                shared = sharedObjects;
                control = GetControllerByVessel(sharedObjects.Vessel);

                binding = sharedObjects.BindingMgr;
                Enabled = false;
                value = null;

                HookEvents();
            }
 public static void Initialize(IBindingProvider bindingProvider          = null, IBindingManager bindingManager = null,
                               IBindingResourceResolver resourceResolver = null, IBindingMemberProvider memberProvider = null, IVisualTreeManager visualTreeManager  = null,
                               IWeakEventManager weakEventManager        = null, IObserverProvider observerProvider    = null, IBindingContextManager contextManager = null, IBindingErrorProvider errorProvider = null,
                               Func <IBindingMemberInfo, Type, object, object> converter = null, Func <string, IBindingPath> bindingPathFactory = null,
                               Func <Type, string, IBindingMemberInfo> findUpdateEvent   = null, Func <CultureInfo> bindingCultureInfo          = null, IDictionary <string, IBindingBehavior> bindingModeBehaviors = null)
 {
     ValueConverter     = converter ?? ((info, type, arg3) => arg3);
     BindingProvider    = bindingProvider ?? new BindingProvider();
     BindingManager     = bindingManager ?? new BindingManager();
     ResourceResolver   = resourceResolver ?? new BindingResourceResolver();
     MemberProvider     = memberProvider ?? new BindingMemberProvider();
     VisualTreeManager  = visualTreeManager ?? new VisualTreeManager();
     WeakEventManager   = weakEventManager ?? new WeakEventManager();
     ObserverProvider   = observerProvider ?? new ObserverProvider();
     ContextManager     = contextManager ?? new BindingContextManager();
     BindingPathFactory = bindingPathFactory ?? BindingPathFactoryDefaultImpl;
     UpdateEventFinder  = findUpdateEvent ?? FindUpdateEventDefaultImpl;
     BindingCultureInfo = bindingCultureInfo ?? BindingCultureInfoDefaultImpl;
     ErrorProvider      = errorProvider;
     if (bindingModeBehaviors == null)
     {
         InitializeDefaultBindingModeBehaviors();
     }
     else
     {
         foreach (var behavior in bindingModeBehaviors)
         {
             BindingModeToBehavior[behavior.Key] = behavior.Value;
         }
     }
 }
 internal static void SetDefaultValues()
 {
     BindingCultureInfo = null;
     _updateEventFinder = FindUpdateEvent;
     _bindingPathFactory = BindingPath.Create;
     _valueConverter = BindingReflectionExtensions.Convert;
     _resourceResolver = new BindingResourceResolver();
     _memberProvider = new BindingMemberProvider();
     _visualTreeManager = new VisualTreeManager();
     _weakEventManager = new WeakEventManager();
     _bindingManager = new BindingManager();
     _bindingProvider = new BindingProvider();
     _observerProvider = new ObserverProvider();
     _contextManager = new BindingContextManager();
 }
 protected virtual DataBinding CreateDataBinding(ISingleBindingSourceAccessor target,
                                                 IBindingSourceAccessor source, IBindingManager manager = null)
 {
     if (manager != null)
     {
         BindingServiceProvider.BindingManager = manager;
     }
     return(new DataBinding(target, source));
 }