Exemplo n.º 1
0
            public static void Init(IJournal journal, ISignalsFactory signals)
            {
                mPressureAlarmMin     = signals.GetSignal(string.Format("{0}.alarm.min", SensorName.Cabel(SignalName.Pressure))).Value;
                mPressureAlarmMax     = signals.GetSignal(string.Format("{0}.alarm.max", SensorName.Cabel(SignalName.Pressure))).Value;
                mPressureWarningMax   = signals.GetSignal(string.Format("{0}.warning.max", SensorName.Cabel(SignalName.Pressure))).Value;
                mStartTrackingTimeout = signals.GetSignal("pump.alarm.startup.timeout").Value;

                // датчик давления в системе рулевого и его обработка
                mCabelPressure = new Sensor(SensorName.Cabel(SignalName.Pressure), signals)
                {
                    OnUpdate = value =>
                    {
                        if (mStartAt == DateTime.MaxValue)
                        {
                            return;
                        }

                        if (DateTime.Now.Subtract(mStartAt).TotalSeconds < mStartTrackingTimeout)
                        {
                            return;
                        }

                        if (value > mPressureAlarmMax)
                        {
                            if (OnError != null)
                            {
                                OnError(SystemStateCodes.Alarm.CabelPressureMax);
                            }

                            return;
                        }

                        if (value < mPressureAlarmMin)
                        {
                            if (OnError != null)
                            {
                                OnError(SystemStateCodes.Alarm.CabelPressureMin);
                            }

                            return;
                        }

                        if (value > mPressureWarningMax)
                        {
                            return;
                        }

                        if (OnWarning != null)
                        {
                            OnWarning(SystemStateCodes.Warning.CabelPressureMax);
                        }
                    }
                };
            }
Exemplo n.º 2
0
        private void ConfigureSensors()
        {
            mDataStore = DataStoreFactory.CreateDefaultDataStore(0, 0, 1200, 1200);

            mSensors = new List <Sensor>
            {
                new Sensor(SensorName.Filter(SignalName.Pressure), mSignals),
                new Sensor(SensorName.Steering(SignalName.Pressure), mSignals),
                new Sensor(SensorName.Cabel(SignalName.Pressure), mSignals),
                new Sensor(SensorName.Brake(SignalName.Pressure), mSignals),
                new Sensor(SensorName.Tank(SignalName.Level), mSignals),
                new Sensor(SensorName.Tank(SignalName.Temperature), mSignals)
            };


            mKeyboard = mSignals.GetSignal(SensorName.Keyboard());
            //mSignals.GetSignal(SensorName.Tank(SignalName.Level)).OnUpdate += signal => Console.WriteLine("Level: {0}", signal.Value);
            Keyboard.Init(mKeyboard);
        }