예제 #1
0
        bool HandleMeasurementValuesChange(MeasurementValuesChanged msg)
        {
            measurements.Update(msg);
            NetworkModel model = this.Model;

            foreach (KeyValuePair <long, int> dInput in msg.DiscreteInputs)
            {
                IdentifiedObject io = model.Get(dInput.Key);
                Discrete         d  = io as Discrete;

                if (d == null)
                {
                    continue;
                }

                if (d.MeasurementType == MeasurementType.SwitchState)
                {
                    Notify(new ObservableMessage(EObservableMessageType.SwitchStatusChanged));
                    break;
                }
            }

            Notify(new ObservableMessage(EObservableMessageType.MeasurementValuesChanged));
            return(true);
        }
예제 #2
0
        public void Update(MeasurementValuesChanged message)
        {
            foreach (KeyValuePair <long, float> a in message.AnalogInputs)
            {
                analogInputs[a.Key] = a.Value;
            }

            foreach (KeyValuePair <long, float> a in message.AnalogOutputs)
            {
                analogOutputs[a.Key] = a.Value;
            }

            foreach (KeyValuePair <long, int> d in message.DiscreteInputs)
            {
                discreteInputs[d.Key] = d.Value;
            }

            foreach (KeyValuePair <long, int> d in message.DiscreteOutputs)
            {
                discreteOutputs[d.Key] = d.Value;
            }
        }