public GarbageTerminal(Pulverizer pulverizer, GrayFan grayFan, PrimaryPump pump, PlasmaGeneratorGroup plasmaGenerator, ExhaustMain exhaustMain, ExhaustSlave exhaustSlave, Transfer transfer, ReactionCabin reactionCabin, UVLight uvLight, SecondaryPump secondary, IPowerController powerController, IOptionsMonitor <DeviceSetting> deviceSetting) { Transfer = transfer; Pulverizer = pulverizer; GrayFan = grayFan; this.PrimaryPump = pump; this.SecondaryPump = secondary; ExhaustMain = exhaustMain; ExhaustSlave = exhaustSlave; ReactionCabin = reactionCabin; UVLight = uvLight; this.controller = powerController; DeviceSetting = deviceSetting; this.GrayFan.Terminal = this; PlasmaGeneratorGroup = plasmaGenerator; plasmaGenerator.Terminal = this; }
public void StartTransfer(TransferParameter transfer) { if (!this.Enable) { throw new TerminalException("还没启动,请启动后再执行传输"); } var setting = DeviceSetting.CurrentValue.TransferRuntime; var pulverizerRunningTime = setting.PulverizerRuntimerSeconds; if (transfer.RunningSeconds > pulverizerRunningTime) { pulverizerRunningTime = transfer.RunningSeconds; } _transferTokenSource = new CancellationTokenSource(transfer.RunningSeconds * 1000); _transferEquipment = _transferTokenSource.Token; TransferEquipmentRunningTask = Task.Run(() => { Pulverizer.TurnOn(); var pulverizerStartTime = DateTime.Now; Thread.Sleep(setting.TransferStartAfterPulverizerStart * 1000); Transfer.TurnOn(); var counter = DateTime.Now - pulverizerStartTime; var remindSeconds = pulverizerRunningTime - Convert.ToInt32(counter.TotalSeconds); Thread.Sleep(remindSeconds * 1000); Pulverizer.TurnOff(); Thread.Sleep(setting.TransferStopAfterPulverizerStop * 1000); this.Transfer.TurnOff(); }, _transferEquipment); }