public bool TryMakeTurbofan(float bypassratio, int numberofshafts, Generator gen, List<Spool> spools, int egt, int isp,
                                    int numberofcycles, List<Propellant> fueList, List<Oxidiser> oxidisers, string manuf, string model,
                                    string serialnumber, float maxpower, float operatingtime, float fuelflow, OnOff stat, out Turbofan incomingTurbofan, bool isgeared = false,
                                    bool hasreverse = true, PoweredAircraft parentvehicle = null)
        {
            try
            {
                Turbofan turbofan = MakeTurbofan(bypassratio, numberofshafts, gen, spools, egt, isp,
                    numberofcycles, fueList,
                    oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, isgeared, hasreverse,
                    parentvehicle);

                incomingTurbofan = turbofan;
                return true;
            }
            catch (ArgumentNullException argumentNullException)
            {
                Console.WriteLine(argumentNullException.Message);
                incomingTurbofan = null;
                return false;
            }
            catch (ArgumentException argumentException)
            {
                Console.WriteLine(argumentException.Message);
                incomingTurbofan = null;
                return false;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                incomingTurbofan = null;
                return false;
            }
        }
Example #2
0
 public void ChangeMacro(IControlToMacro macro)
 {
     _onOffState = OnOff.off;
     _formService.ToggleDisplayOnOff(_onOffState);
     _macroService.ToggleMacroOnOff(_onOffState);
     _macroService = macro;
 }
 public PistonEngine(int numberofpistons, float volume, string manufacturer,
     string model, string serialnumber, float maxpower, float operatingtime,
     PoweredAircraft parentaircraft, float fuelflow, OnOff stat)
     : base(manufacturer, model, serialnumber, maxpower, operatingtime, parentaircraft, fuelflow, stat)
 {
     _numberOfPistons = numberofpistons;
     _volume = volume;
     _mixture = 0;
 }
Example #4
0
 public Ramjet(bool hassupersoniccombustion, int egt, int isp, int numberofcycles, List<Propellant> propellants,
     List<Oxidiser> oxidisers,
     string manufacturer, string model, string serialnumber,
     float maxpower, float operatingtime, PoweredAircraft parentaircraft, float fuelflow, OnOff stat)
     : base(egt, isp, numberofcycles, propellants, oxidisers, manufacturer, model, serialnumber, maxpower,
         operatingtime, parentaircraft, fuelflow, stat)
 {
     _hasSupersonicCombustion = hassupersoniccombustion;
 }
 public RocketEngine(bool isreignitable, string nozzlebelltype, int egt, int isp, int numberofcycles,
     List<Propellant> propellants, List<Oxidiser> oxidisers,
     string manufacturer, string model, string serialnumber,
     float maxpower, float operatingtime, PoweredAircraft parentaircraft, float fuelflow, OnOff stat)
     : base(egt, isp, numberofcycles, propellants, oxidisers, manufacturer, model, serialnumber, maxpower,
         operatingtime, parentaircraft, fuelflow, stat)
 {
     _isReignitable = isreignitable;
     _nozzleBellType = nozzlebelltype;
 }
 public Turbojet(bool hasreverse, int numberofshafts, Generator gen, List<Spool> spools, int egt, int isp,
     int numberofcycles, List<Propellant> propellants, List<Oxidiser> oxidisers,
     string manufacturer, string model, string serialnumber,
     float maxpower, float operatingtime, PoweredAircraft parentaircraft, float fuelflow, OnOff stat,
     string precoolant = null)
     : base(hasreverse, numberofshafts, gen, spools, egt, isp, numberofcycles, propellants, oxidisers, manufacturer,
         model, serialnumber, maxpower, operatingtime, parentaircraft, fuelflow, stat)
 {
     Precoolant = precoolant ?? "none";
 }
 public SolidFuelRocketEngine(bool isreignitable, string nozzlebelltype, int egt, int isp, int numberofcycles,
     List<Propellant> propellants, List<Oxidiser> oxidisers, string manufacturer, string model,
     string serialnumber,
     float maxpower, float operatingtime, PoweredAircraft parentaircraft, float fuelflow, OnOff stat)
     : base(isreignitable, nozzlebelltype, egt, isp, numberofcycles, propellants, oxidisers,
         manufacturer, model, serialnumber, maxpower, operatingtime, parentaircraft, fuelflow, stat)
 {
     _maxPower = maxpower;
     _currentPower = 0;
 }
 public JetEngine(int egt, int isp, int numberofcycles, List<Propellant> propellants, List<Oxidiser> oxidisers,
     string manufacturer, string model, string serialnumber,
     float maxpower, float operatingtime, PoweredAircraft parentaircraft, float fuelflow, OnOff stat)
     : base(manufacturer, model, serialnumber, maxpower, operatingtime, parentaircraft, fuelflow, stat)
 {
     _egt = egt;
     _isp = isp;
     _numberOfCycles = numberofcycles;
     _propellants = propellants;
     _oxidisers = oxidisers;
 }
 public Turboshaft(float gearingratio, float maxtorque, bool hasreverse, int numberofshafts, Generator gen,
     List<Spool> spools, int egt, int isp, int numberofcycles, List<Propellant> propellants,
     List<Oxidiser> oxidisers,
     string manufacturer, string model, string serialnumber,
     float maxpower, float operatingtime, PoweredAircraft parentaircraft, float fuelflow, OnOff stat)
     : base(hasreverse, numberofshafts, gen, spools, egt, isp, numberofcycles, propellants, oxidisers, manufacturer,
         model, serialnumber, maxpower, operatingtime, parentaircraft, fuelflow, stat)
 {
     _gearingRatio = gearingratio;
     _maxTorque = maxtorque;
 }
Example #10
0
 public Turbofan(float bypassratio, bool isgeared, bool hasreverse, int numberofshafts, Generator gen,
     List<Spool> spools, int egt, int isp, int numberofcycles, List<Propellant> propellants,
     List<Oxidiser> oxidisers,
     string manufacturer, string model, string serialnumber,
     float maxpower, float operatingtime, PoweredAircraft parentaircraft, float fuelflow, OnOff stat)
     : base(hasreverse, numberofshafts, gen, spools, egt, isp, numberofcycles, propellants, oxidisers, manufacturer,
         model, serialnumber, maxpower, operatingtime, parentaircraft, fuelflow, stat)
 {
     _bypassRatio = bypassratio;
     _isGeared = isgeared;
 }
Example #11
0
 public static string ToString(OnOff oo)
 {
     switch (oo)
     {
         case OnOff.ON:
             return "开";
         case OnOff.OFF:
             return "关";
         default:
             return "未知";
     }
 }
 public TurbineEngine(bool hasreverse, int numberofshafts, Generator gen, List<Spool> spools, int egt, int isp,
     int numberofcycles, List<Propellant> propellants, List<Oxidiser> oxidisers,
     string manufacturer, string model, string serialnumber,
     float maxpower, float operatingtime, PoweredAircraft parentaircraft, float fuelflow, OnOff stat)
     : base(
         egt, isp, numberofcycles, propellants, oxidisers, manufacturer, model, serialnumber, maxpower,
         operatingtime, parentaircraft, fuelflow, stat)
 {
     _hasReverse = hasreverse;
     _numberOfShafts = numberofshafts;
     //Spools = spools;
     _generator = gen;
 }
    public void SetState(OnOff state)
    {
        Initialize();
        if(state != null && !Enumerable.Range(0, transform.childCount).Any((i) => transform.GetChild(i).gameObject == state.gameObject))
        {
            Debug.LogWarning(string.Format("{0} is not a state of {1}!", state.name, name));
            return;
        }

        nextState = state;

        if(!On)
            return;

        RefreshStates(true);
    }
        public Turbofan MakeTurbofan(float bypassratio, int numberofshafts, Generator gen, List<Spool> spools, int egt, int isp,
                                    int numberofcycles, List<Propellant> fueList, List<Oxidiser> oxidisers, string manuf, string model,
                                    string serialnumber, float maxpower, float operatingtime, float fuelflow, OnOff stat, bool isgeared = false,
                                    bool hasreverse = true, PoweredAircraft parentvehicle = null)
        {
            //return new Turbofan(3, false, true, 3, new Dictionary<Generator, double>(new GeneratorComparer()),
            //                    new List<Spool>(), 600, 500, 5, new List<Propellants> { Propellants.Jet_A },
            //                    new List<Oxidisers> { Oxidisers.GOX }, "Rolls-Royce", "RB-201", "100000008", 27000, 12, "88", 0, OnOff.Stopped);

            GeneralConditionsChecker(numberofshafts, spools, fueList, oxidisers, serialnumber);


            Debug.WriteLine("Creating a new turbofan ({0})", serialnumber);
            return new Turbofan(bypassratio, isgeared, hasreverse, numberofshafts, gen, spools, egt, isp,
                numberofcycles, fueList, oxidisers,
                manuf, model, serialnumber, maxpower, operatingtime, parentvehicle, fuelflow, stat);
        }
    void RefreshStates(bool allowNullNextState)
    {
        if(nextState || allowNullNextState)
        {
            if(currentState && currentState != nextState)
            {
                currentState.On = false;
            }

            currentState = nextState;
            nextState = null;
        }

        if(currentState)
        {
            currentState.On = true;
        }
    }
Example #16
0
 bool IsActionRequired(Door d, OnOff newAction)
 {
     if (d.State.OpenState == OnOff.ON && newAction == OnOff.ON)
     {
         return false; //门开着.
     }
     if (d.State.CloseState == OnOff.ON && newAction == OnOff.OFF)
     {
         return false; //门关着, 无需关门.
     }
     return true;
 }
Example #17
0
        /// 收到 IBP / FAS
        private void TryNotifyIpbFas(SocketError err, OnOff ibp, OnOff fas)
        {
            // 更新寄存器位.
            _ptable.SetValueAt(0x02, 0, OnOff.ON == ibp);
            _ptable.SetValueAt(0x02, 1, OnOff.ON == fas);

            bool fasChanged = FAS != fas;
            bool ibpChanged = IBP != ibp;
            if (fasChanged || ibpChanged)
            {
                // CHANGED.
                if (OnCcsStateChanged != null)
                {
                    OnCcsStateChanged(err, ibp, fas);
                }
            }
            IBP = ibp;
            FAS = fas;
            // FAS
            if (FAS == OnOff.ON)
            {
                if (fasChanged)
                {
                    log.WarnFormat("中控 FAS 告警!!!: FAS = {0}", FAS);
                    _fasNotified = true;
                }
                ControlAllZone(OnOff.OFF);
            }
            else if (fas == OnOff.OFF)
            {
                if (fasChanged && _fasNotified)
                {
                    log.WarnFormat("中控 FAS 告警解除!!!: FAS = {0}", FAS);
                    _fasNotified = false;
                }
            }
            // IBP
            if (IBP == OnOff.ON)
            {
                if (ibpChanged)
                {
                    _ibpNotified = true;
                    log.WarnFormat("中控 IBP 触发: IBP = {0}", IBP);
                }
                ControlAllZone(OnOff.OFF);
            }
            else if (ibp == OnOff.OFF)
            {
                if (ibpChanged && _ibpNotified)
                {
                    log.WarnFormat("中控 IBP 关闭: IBP = {0}", IBP);
                    _ibpNotified = false;
                }
            }
        }
Example #18
0
 ///  控制某区域.
 void ControllOneZone(Zone z, OnOff to)
 {
     foreach (Door d in z.Doors)
     {
         if (d.Enabled)
         {
             ControlDoor(d, to);
         }
     }
 }
Example #19
0
 /// 处理区域控制请求.
 byte DealZoneRequest(byte bit, OnOff to)
 {
     if (bit == 6)
     {
         ControlAllZone(to);
     }
     else
     {
         ControllOneZone(_zones[bit], to);
     }
     return MBException.MB_SUCCESS;
 }
Example #20
0
        // 停止服务.
        public bool StopService()
        {
            if (!_running) return true;
            _jdqVisitor.CloseConnect(this._ccs, true);
            this._ccs = null;

            _mbserver.Stop();

            _running = false;
            foreach (Zone z in this._zones)
            {
                z.Scanner.OnDoorStateChanged -= this._OnDoorStateChanged;
                z.Scanner.Stop();
            }

            if (OnCcsStateChanged != null)
            {
                OnCcsStateChanged.Invoke(SocketError.NotConnected, IBP = OnOff.UNKNOWN, FAS = OnOff.UNKNOWN);
            }
            return true;
        }
Example #21
0
 /// 控制所有区域.
 void ControlAllZone(OnOff to)
 {
     foreach (Zone z in _zones)
     {
         foreach (Door d in z.Doors)
         {
             if (d.Enabled)
             {
                 ControlDoor(d, to);
             }
         }
     }
 }
Example #22
0
 // Start is called before the first frame update
 void Start()
 {
     instance = this;
 }
Example #23
0
 private void SwitchButtonIcon(Label btn, OnOff s)
 {
     if (btn.InvokeRequired)
     {
         SwitchButtonIconCallback cb = new SwitchButtonIconCallback(SwitchButtonIcon);
         try
         {
             this.Invoke(cb, new object[] { btn, s });
         }
         catch (Exception) { }
     }
     else
     {
         // ON: 红色.
         // OFF: 绿色
         // Unknown: 黄色
         UpdateLabelImg(btn, s);
     }
 }
Example #24
0
 /// <summary>
 /// Event handler for when the vsync setting is toggled.
 /// </summary>
 /// <param name="sender">Sender object.</param>
 /// <param name="e">Event arguments.</param>
 void VsyncOnMenuEntrySelected(object sender, PlayerInputEventArgs e)
 {
     if (e.ToggleDirection != 0)
     {
         vsyncOn += e.ToggleDirection;
         if (vsyncOn < OnOff.Off)
         {
             vsyncOn = OnOff.On;
         }
         else if (vsyncOn > OnOff.On)
         {
             vsyncOn = OnOff.Off;
         }
         ((ProjectSkyCrane)ScreenManager.Game).GraphicsDeviceManager.SynchronizeWithVerticalRetrace = vsyncOn == OnOff.On;
         SetMenuEntryText();
     }
     return;
 }
Example #25
0
 /// <summary>
 /// ESC { n
 /// </summary>
 public static byte[] UpsideDown(OnOff @switch)
 => new byte[]
 {
     0x1B, 0x7B, (byte)@switch
 };
Example #26
0
 public void SetBwLimit(OnOff value)
 {
     _oscilloscope.Write(":CHAN" + _channelID + ":BWLimit " + value.SetterDescription());
 }
Example #27
0
 /// <summary>
 /// ESC G n
 /// </summary>
 public static byte[] DoubleStrike(OnOff @switch)
 => new byte[]
 {
     0x1B, 0x47, (byte)@switch
 };
Example #28
0
 private void UpdateLabelImg(Label l, OnOff s)
 {
     l.ImageKey = s == OnOff.ON ? "red" : (s == OnOff.OFF ? "green" : "disable");
 }
Example #29
0
        /// <summary>
        /// Event handler for when the SFX are turned on or off.
        /// </summary>
        void SoundFXOnEntrySelected(object sender, PlayerInputEventArgs e)
        {
            if (e.ToggleDirection != 0)
            {
                soundFXOn += e.ToggleDirection;
                if (soundFXOn < OnOff.Off) // Toggle the values
                {
                    soundFXOn = OnOff.On;
                }
                else if (soundFXOn > OnOff.On)
                {
                    soundFXOn = OnOff.Off;
                }

                if (soundFXOn == OnOff.On) // Potentially re-enable or disable sound
                {
                    SoundEffect.MasterVolume = (float)soundFXVolume / (float)MAX_VOLUME;
                    soundFXVolumeMenuEntry.Enabled = true;
                }
                else
                {
                    SoundEffect.MasterVolume = 0;
                    soundFXVolumeMenuEntry.Enabled = false;
                }
                SetMenuEntryText();
            }
            return;
        }
Example #30
0
        /// 控制一樘门
        public byte ControlDoor(Door d, OnOff to)
        {
            if (!IsActionRequired(d, to)) {
                //log.DebugFormat("无需操作: {0}", d);
                //return MBException.MB_SUCCESS;
            }
            JDQRequest req = new JDQRequest(JDQRequest.DEV_ID, JDQRequestType.SetOutput);
            byte[] bits = new byte[] { RELAY_OPEN_LEFT, RELAY_OPEN_RIGHT}; //0-2 (继电器, )
            req.SetOutputs(bits, to == OnOff.ON);
            req.SetOutputs(new byte[]{RELAY_RED, RELAY_BEEP }, true ) ; //红灯, 蜂鸣器

            return Request(d, req);
        }
        public Turboshaft MakeTurboshaft(float gearingR, float maxtorque, int numberofshafts, Generator gen,
                                        List<Spool> spools, int egt, int isp, int numberofcycles, List<Propellant> fueList,
                                        List<Oxidiser> oxidisers, string manuf, string model, string serialnumber, float maxpower,
                                        float operatingtime, float fuelflow, OnOff stat, bool hasreverse = true, PoweredAircraft parentvehicle = null)
        {
            GeneralConditionsChecker(numberofshafts, spools, fueList, oxidisers, serialnumber);

            if (maxtorque <= 0)
                throw new ArgumentException("No max torque data was provided", nameof(maxtorque));

            return new Turboshaft(gearingR, maxtorque, hasreverse, numberofshafts, gen, spools, egt, isp,
                numberofcycles, fueList,
                oxidisers, manuf, model, serialnumber, maxpower, operatingtime, parentvehicle, fuelflow, stat);

        }
Example #32
0
 /// CCS 中控状态变更.
 private void OnCcsStateChanged(SocketError lastError, OnOff ibp, OnOff fas)
 {
     _ibp = ibp;
     _fas = fas;
     _blink_ibp = ibp == OnOff.ON;
     _blink_fas = fas == OnOff.ON;
     SwitchButtonIcon(lb_ibp, ibp);
     SwitchButtonIcon(lb_fas, fas); // IBP 接通.
 }
        public Turbojet MakeTurbojet(int numberofshafts, Generator gen, List<Spool> spools, int egt, int isp, int numberofcycles,
                                     List<Propellant> fueList, List<Oxidiser> oxidisers, string manuf, string model, string serialnumber, float maxpower,
                                     float operatingtime, float fuelflow, OnOff stat, bool hasreverse = true, PoweredAircraft parentvehicle = null)
        {
            GeneralConditionsChecker(numberofshafts, spools, fueList, oxidisers, serialnumber);

            return new Turbojet(hasreverse, numberofshafts, gen, spools, egt, isp,
                numberofcycles, fueList,
                oxidisers, manuf, model, serialnumber, maxpower, operatingtime, parentvehicle, fuelflow, stat);
        }
Example #34
0
        public TimeSpan Stagger;              // Time delay between each group of spinups at the power on (9000 series)

        /*public string UnitStatus;
         * public string DriveStatus;
         * public string AllUnitStatus;*/

        public Attributes(string driver, string model, string firmware, string memory, string bios, string monitor, string serial, string pcb, string pchip, string achip, int numports, int numunits, int numdrives, JBOD_Export_Policy exportjbod, Cache_Policy ondegrade, int spinup, OnOff autocarve, TimeSpan stagger)
        {
            Driver     = driver;
            Model      = model;
            Firmware   = firmware;
            Memory     = memory;
            BIOS       = bios;
            Monitor    = monitor;
            Serial     = serial;
            PCB        = pcb;
            PChip      = pchip;
            AChip      = achip;
            NumPorts   = numports;
            NumUnits   = numunits;
            NumDrives  = numdrives;
            ExportJBOD = exportjbod;
            OnDegrade  = ondegrade;
            SpinUp     = spinup;
            AutoCarve  = autocarve;
            Stagger    = stagger;
        }
        public Turbofan TryMakeTurbofan(float bypassratio, int numberofshafts, Generator gen, List<Spool> spools, int egt, int isp,
                                        int numberofcycles, List<Propellant> fueList, List<Oxidiser> oxidisers, string manuf, string model,
                                        string serialnumber, float maxpower, float operatingtime, float fuelflow, OnOff stat, bool isgeared = false,
                                        bool hasreverse = true, PoweredAircraft parentvehicle = null)
        {
            Turbofan turbofan = new Turbofan();

            try
            {
                turbofan = MakeTurbofan(bypassratio, numberofshafts, gen, spools, egt, isp,
                    numberofcycles, fueList,
                    oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, isgeared, hasreverse,
                    parentvehicle);
            }
            catch (ArgumentNullException argumentNullException)
            {
                Console.WriteLine(argumentNullException.Message);
                switch (argumentNullException.ParamName)
                {
                    case nameof(spools):
                        spools = new List<Spool>();
                        TryMakeTurbofan(bypassratio, numberofshafts, gen, spools, egt, isp,
                            numberofcycles, fueList,
                            oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, isgeared,
                            hasreverse,
                            parentvehicle);
                        break;
                    case nameof(serialnumber):
                        serialnumber = "no serial number specified";
                        TryMakeTurbofan(bypassratio, numberofshafts, gen, spools, egt, isp,
                            numberofcycles, fueList,
                            oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, isgeared,
                            hasreverse,
                            parentvehicle);
                        break;
                    case nameof(fueList):
                        fueList = new List<Propellant>();
                        TryMakeTurbofan(bypassratio, numberofshafts, gen, spools, egt, isp,
                            numberofcycles, fueList,
                            oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, isgeared,
                            hasreverse,
                            parentvehicle);
                        break;
                    case nameof(oxidisers):
                        oxidisers = new List<Oxidiser>();
                        TryMakeTurbofan(bypassratio, numberofshafts, gen, spools, egt, isp,
                            numberofcycles, fueList,
                            oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, isgeared,
                            hasreverse,
                            parentvehicle);
                        break;
                }
            }
            catch (ArgumentException argumentException) when (argumentException.ParamName == nameof(numberofshafts))
            {
                Console.WriteLine(argumentException.Message);
                if (argumentException.ParamName == nameof(numberofshafts))
                {
                    numberofshafts = 1;
                    TryMakeTurbofan(bypassratio, numberofshafts, gen, spools, egt, isp,
                            numberofcycles, fueList,
                            oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, isgeared,
                            hasreverse,
                            parentvehicle);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return turbofan;
        }
Example #36
0
 public Turbofan(float bypassratio, bool isgeared, bool hasreverse, int numberofshafts, Generator gen,
                 List <Spool> spools, int egt, int isp, int numberofcycles, List <Propellant> propellants,
                 List <Oxidiser> oxidisers,
                 string manufacturer, string model, string serialnumber,
                 float maxpower, float operatingtime, PoweredAircraft parentaircraft, float fuelflow, OnOff stat)
     : base(
         hasreverse, numberofshafts, gen, spools, egt, isp, numberofcycles, propellants, oxidisers, manufacturer,
         model, serialnumber, maxpower, operatingtime, parentaircraft, fuelflow, stat)
 {
     _bypassRatio = bypassratio;
     _isGeared    = isgeared;
 }