コード例 #1
0
        private string GetVpSolCallback(PRCoil prCoil, MachineType procMachineType, string solString = null)
        {
            ///var exportString = $"' {pRSwitch.Name} hit {Environment.NewLine}";

            //Create a string for vbscript
            var    solName   = "Sol" + prCoil.Name;
            var    solStr    = "\"" + solName + "\"";
            string solNumber = null;

            if (procMachineType != MachineType.PDB)
            {
                solNumber = prCoil.Number.Replace("C0", string.Empty);
                solNumber = solNumber.Replace("C", string.Empty);
            }
            else
            {
                //This only good if exporting from the UI
                solNumber = prCoil.Number.Split(':')[0];
                if (solNumber.StartsWith("0"))
                {
                    solNumber = solNumber.Remove(0, 1);
                }
            }

            solStr = string.IsNullOrWhiteSpace(solString) ? solStr : "\"" + solString + "\"";

            return($"SolCallback({solNumber}) = {solStr}{Environment.NewLine}");
        }
コード例 #2
0
 public SolenoidFlasherViewModel(PRCoil coil)
 {
     this.Number        = coil.Number;
     this.Name          = coil.Name;
     this.Tags          = coil.Tags;
     this.Label         = coil.Label;
     this.PatterOffTime = coil.PatterOffTime;
     this.PatterOnTime  = coil.PatterOnTime;
     this.BallSearch    = coil.BallSearch;
 }
コード例 #3
0
        private void SaveMachineConfig()
        {
            var mConfig = MachineConfig;

            Log("Saving Machine configuration");

            Log("Adding Flipper switches");
            mConfig.PRSwitches.Clear();
            mConfig.PRSwitches
            .AddRange(FlippersSwitches.Select(x => new PRSwitch()
            {
                Name         = x.Name,
                Number       = x.Number,
                Tags         = x.Tags,
                SwitchType   = x.Type,
                Label        = x.Label,
                VpSwitchType = x.VpSwitchType
            }));

            var allSwitches = Switches;

            if (mConfig.GetMachineType() == MachineType.PDB)
            {
                UpdateSwitchesBeforeSaved(mConfig);
                UpdateDedicatedBeforeSave(mConfig);
            }
            else
            {
                UpdateDedicatedBeforeSave(mConfig);
                UpdateSwitchesBeforeSaved(mConfig);
            }

            //Save Lamps
            Log("Adding Lamps");
            mConfig.PRLamps?.Clear();

            if (mConfig.PRLamps == null)
            {
                Log("No PRLEDs found in config.", Category.Warn);
            }
            else
            {
                foreach (var item in Lamps)
                {
                    if (item.Name != "NOT USED")
                    {
                        var lamp = new PRLamp()
                        {
                            Name   = item.Name,
                            Number = item.Number,
                            Tags   = item.Tags,
                            Label  = item.Label
                        };

                        MachineConfig.PRLamps.Add(lamp);
                    }
                }
            }

            //Save LEds
            Log("Adding LEDs");
            if (mConfig.PRLeds == null)
            {
                Log("No PRLEDs found in config.", Category.Warn);
            }
            else
            {
                mConfig.PRLeds.Clear();
                foreach (var item in PRLeds)
                {
                    if (item.Name != "NOT USED")
                    {
                        var lamp = new PRLed()
                        {
                            Name   = item.Name,
                            Number = item.Number,
                            Tags   = item.Tags,
                            Label  = item.Label
                        };

                        mConfig.PRLeds.Add(lamp);
                    }
                }
            }

            mConfig.PRCoils.Clear();
            mConfig.PRFlippers.Clear();

            Log("Adding Coils");
            foreach (var coil in Coils)
            {
                var number = coil.Number;
                if (MachineConfig.GetMachineType() == MachineType.PDB)
                {
                    number = coil.Number.Split(':')[1];
                }

                if (coil.Name != "NOT USED")
                {
                    var newcoil = new PRCoil()
                    {
                        Name          = coil.Name,
                        Number        = number,
                        Tags          = coil.Tags,
                        PatterOffTime = coil.PatterOffTime,
                        PatterOnTime  = coil.PatterOnTime,
                        BallSearch    = coil.BallSearch,
                        PulseTime     = coil.PulseTime,
                        SolenoidType  = coil.SolenoidType,
                        Label         = coil.Label
                    };

                    mConfig.PRCoils.Add(newcoil);

                    //Add PRFlippers list from the coil name once
                    if (coil.Name.Contains("Main"))
                    {
                        mConfig.PRFlippers.Add(newcoil.Name.Replace("Main", string.Empty));
                    }
                }
            }

            Log("Attempting Save...");
            _skeletonGameProvider.SaveMachineConfig(mConfig);
        }