Exemple #1
0
        public void Load(IMeasurementUpdate update)
        {
            /*
            foreach (IndexedValue<Binary> v in update.BinaryUpdates)
            {
                NewBinaries.Add(v);
                //Console.WriteLine("value: " + v.value.value + " index: " + v.index);
            }
            foreach (IndexedValue<Analog> v in update.AnalogUpdates)
            {
                NewAnalogs.Add(v);
                //Console.WriteLine("value: " + v.value.value + " index: " + v.index);
            }*/

            if (OnMeasurementsReceived != null)
                OnMeasurementsReceived(this, update);
            /*
             foreach (var v in update.CounterUpdates) Console.WriteLine("value: " + v.value.value + " index: " + v.index);
             foreach (var v in update.ControlStatusUpdates) Console.WriteLine("value: " + v.value.value + " index: " + v.index);
             foreach (var v in update.SetpointStatusUpdates) Console.WriteLine("value: " + v.value.value + " index: " + v.index);
             foreach (var v in update.OctetStringUpdates) Console.WriteLine("value: " + v.value.AsString() + " index: " + v.index);
             */
        }
Exemple #2
0
        public void Callback_OutstationMeasurementReceived(OutstationWrapper ow, IMeasurementUpdate update)
        {
            // TODO make async

            DateTime update_time = DateTime.UtcNow;

            // TODO: FIX

            if (update.AnalogUpdates.Count > 0)
            {
                foreach (IndexedValue<Analog> ana in update.AnalogUpdates)
                {
                    // TODO: better way to do this?
                    IndexedValue<DataPoint> dp = new IndexedValue<DataPoint>(ana.value, ana.index);
                    update_point_master(ow, dp, update_time);
                    update_point_history(ow, dp, update_time);
                }
            }

            if (update.BinaryUpdates.Count > 0)
            {
                foreach (IndexedValue<Binary> bin in update.BinaryUpdates)
                {
                    IndexedValue<DataPoint> dp = new IndexedValue<DataPoint>(bin.value, bin.index);
                    update_point_master(ow, dp, update_time);
                    update_point_history(ow, dp, update_time);
                }
            }

            if (OnOutstationMeasurementReceived != null)
                OnOutstationMeasurementReceived();

            TulipContext.SaveChanges();
        }