Beispiel #1
0
        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;
        }
Beispiel #2
0
        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);
        }