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); */ }
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(); }