Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
            }
        }