public void PercentualeApertura(int percentuale) { if (percentuale == 0) { _lightBulb.Off(); Task.Delay(20); _blindingFence.PosizionaFineCorsaAntiOrario(); //Si posiziona a fine-corsa anti oraria chiude le persiane paralume Task.Delay(20); _posizioneAttualeInStep = 0; } else if (percentuale == 100) { _lightBulb.On(); Task.Delay(20); _blindingFence.PosizionaFineCorsaAntiOrario(); //Si posiziona a fine-corsa oraria apre le persiane paralume Task.Delay(20); _posizioneAttualeInStep = _stepTotali; } else if ((percentuale < 100) && (percentuale > 0)) { _lightBulb.On(); Task.Delay(20); _blindingFence.PosizionaFineCorsaOrario(); //Si posiziona a fine-corsa anti oraria chiude le persiane paralume Task.Delay(20); _posizioneAttualeInStep = (Int32)(((double)_stepTotali / 100.0) * (double)percentuale); _blindingFence.StepAntiOrario(_posizioneAttualeInStep); Task.Delay(20); } _percentuale = percentuale; InvokeWriteLog("Setted to % -> " + _percentuale); _blindingFence.Folle(); }
public LightController(string n, StepperMotorDevice fence, OnOffDevice light) : base(n, new PhysicalDevice[] { fence, light }) { _blindingFence = fence; _lightBulb = light; _lightBulb.Off(); Task.Delay(20); _blindingFence.PosizionaFineCorsaAntiOrario(); Task.Delay(20); _stepTotali = _blindingFence.CalculateStepNumberAndGoToEnd(); _posizioneAttualeInStep = 0; _percentuale = 0; _blindingFence.Folle(); InvokeWriteLog("Device setted up"); }