public static void Init(IJournal journal, SignalsFactory signals, InvertorsService powers) { mSpeed = signals.GetSignal(SensorName.Derivative(SystemName.Conveyor, SignalName.Speed)); if (mSpeed == null) { throw new Exception("bad signal"); } mSpeed.Update(mCurrentSpeed); //mSpeed.OnChange += sensor => Console.WriteLine("Conveyor speed: {0}"); AcceptCheckout.OnTimeout += sender => mSpeed.Update(mCurrentSpeed); mCord = new Cord(signals.GetSignal(SensorName.Cord(6))); mCord.OnChange += sensor => { if (sensor.Value > 0) { //Console.WriteLine("Conveyor: cord F6"); OnErrorCaller(sensor); } }; mKv9 = new Relay(journal, RelayName.Kv9, signals); mKv9.OnError += OnErrorCaller; mKv10 = new Relay(journal, RelayName.Kv10, signals); mKv10.OnError += OnErrorCaller; mState = signals.GetSignal(SensorName.Derivative(SystemName.Conveyor, SignalName.Status)); }
public static void Init(SignalsFactory signals, InvertorsService powers) { mTaskEngineStop = new DelayedTask(100); mTaskEngineStop.OnTimeout += sender => InternalStop(); // active mKv1Feedback = signals.GetSignal(SensorName.Relay(RelayName.Kv1, SignalName.Feedback)); mKv1Feedback.OnChange += sensor => { //Console.WriteLine("mKv1Feedback: {0}", sensor.Value); // выключился активный режим выпрямителя //if(sensor.Value == 0) // SetState(SystemState.Failure, sensor, args); }; // charge mKv2Feedback = signals.GetSignal(SensorName.Relay(RelayName.Kv2, SignalName.Feedback)); mKv2Feedback.OnChange += sensor => { //Console.WriteLine("mKv2Feedback: {0}", sensor.Value); // включился режим заряда выпрямителя /* * if (sensor.Value > 0) * { * if (mState != SystemState.Init) * SetState(SystemState.Failure, sensor, args); * } */ }; /* * mEngineSpeed = signals.GetSignal(SensorName.Derivative(SystemName.System, SignalName.Speed)) as LocalOutput; * if (mEngineSpeed == null) * throw new Exception("bad signal"); * * mEngineSpeed.Set(mCurrentSpeed); * //mEngineSpeed.OnChange += sensor => Console.WriteLine("Engine speed: {0}", args.Code); * AcceptCheckout.OnTimeout += sender => mEngineSpeed.Set(mCurrentSpeed); * * mInvertors = powers; * * foreach (var invertor in mInvertors.Invertors) * { * invertor.OnError += (sender, args) => * { * OnErrorCaller(sender, args); * * SetInvertorState(sender.Id, 2); * }; * } * * for (var i = 0; i < 4; i++) * { * var rv = new Cord(signals.GetSignal(SensorName.Cord((byte)(i + 2)))); * rv.OnChange += sensor => * { * if (sensor.Value <= 0) return; * * Console.WriteLine(sensor.Id); * OnErrorCaller(null, new EngineEventArgs { Sensor = sensor }); * }; * Cords.Add(rv); * } * * mKv8 = new Relay(RelayName.Kv8, signals); * mKv8.OnError += sensor => OnErrorCaller(null, new EngineEventArgs { Sensor = sensor }); * * State.Add(SensorName.Invertor(1), signals.GetSignal(SensorName.Derivative(SystemName.Uz, 2, SignalName.Status))); * State.Add(SensorName.Invertor(2), signals.GetSignal(SensorName.Derivative(SystemName.Uz, 3, SignalName.Status))); * State.Add(SensorName.Invertor(3), signals.GetSignal(SensorName.Derivative(SystemName.Uz, 4, SignalName.Status))); * State.Add(SensorName.Invertor(4), signals.GetSignal(SensorName.Derivative(SystemName.Uz, 5, SignalName.Status))); */ }