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; } }
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; }
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; }
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; }
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; } }
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; }
/// 收到 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; } } }
/// 控制某区域. void ControllOneZone(Zone z, OnOff to) { foreach (Door d in z.Doors) { if (d.Enabled) { ControlDoor(d, to); } } }
/// 处理区域控制请求. byte DealZoneRequest(byte bit, OnOff to) { if (bit == 6) { ControlAllZone(to); } else { ControllOneZone(_zones[bit], to); } return MBException.MB_SUCCESS; }
// 停止服务. 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; }
/// 控制所有区域. void ControlAllZone(OnOff to) { foreach (Zone z in _zones) { foreach (Door d in z.Doors) { if (d.Enabled) { ControlDoor(d, to); } } } }
// Start is called before the first frame update void Start() { instance = this; }
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); } }
/// <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; }
/// <summary> /// ESC { n /// </summary> public static byte[] UpsideDown(OnOff @switch) => new byte[] { 0x1B, 0x7B, (byte)@switch };
public void SetBwLimit(OnOff value) { _oscilloscope.Write(":CHAN" + _channelID + ":BWLimit " + value.SetterDescription()); }
/// <summary> /// ESC G n /// </summary> public static byte[] DoubleStrike(OnOff @switch) => new byte[] { 0x1B, 0x47, (byte)@switch };
private void UpdateLabelImg(Label l, OnOff s) { l.ImageKey = s == OnOff.ON ? "red" : (s == OnOff.OFF ? "green" : "disable"); }
/// <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; }
/// 控制一樘门 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); }
/// 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); }
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; }
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; }