示例#1
0
        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));
        }
示例#2
0
        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)));
             */
        }