private bool SetPointValue(uint pointId, DateTime time, PointSourceEntry.Quality quality, double value, PointSourceEntry.Reason reason) { bool success = false; lock (m_manualPoints) { try { PointSourceEntry p; if (m_manualPoints.TryGetValue(pointId, out p)) { p.SetValue(time, quality, reason, value); success = true; App.LogApp(true, "SetPointValue: Setting " + pointId.ToString() + " Time: " + time.ToString() + " Quality: " + quality.ToString() + " Value: " + value); // We are not updating the point in OnScan so flush here FlushUpdates(); } else { App.LogError(1, "SetPointValue: Failed to find Manual Point with ID " + pointId.ToString()); } } catch (Exception e) { Log("Exception: " + e.Message); } } if (!success) { Log("Point Set Failed for Manual Point with ID " + pointId.ToString()); } return(success); }
public override void OnExecuteAction(DriverTransaction transaction) { switch (transaction.ActionType) { case (uint)OPC.AddInScannerDriverActions.ProcessValue: App.LogApp(true, LogSource + "Processing 'Process Value' driver action..."); // Process Manual Value { uint pointId = (uint)(transaction.get_Args(0)); DateTime time = (DateTime)(transaction.get_Args(1)); PointSourceEntry.Quality quality = (PointSourceEntry.Quality)(transaction.get_Args(2)); double value = (double)(transaction.get_Args(3)); PointSourceEntry.Reason reason = (PointSourceEntry.Reason)(transaction.get_Args(4)); bool success = SetPointValue(pointId, time, quality, value, reason); CompleteTransaction(transaction, (success ? 1 : 0), (success ? "Success" : "Failed")); } break; default: base.OnExecuteAction(transaction); break; } }