예제 #1
0
        public ControllerModel(string tableName, ITable table) : base(tableName, table)
        {
            if (controlModes == null)
            {
                FillControlModeOptions();
            }
            table.AddTableListenerOnSynchronizationContext(SynchronizationContext.Current, (modifiedTable, key, value, _) =>
            {
                switch (key)
                {
                case nameof(Mode):
                    Mode = (ControlMode)(int)(double)value;
                    break;

                case "Value":
                    ShowValue((double)value);
                    break;

                default:
                    break;
                }
            }, NetworkTables.NotifyFlags.NotifyImmediate | NetworkTables.NotifyFlags.NotifyUpdate | NetworkTables.NotifyFlags.NotifyNew);
            ZeroOutput = new Command(() => Numbers["Value"] = 0.0);
            ClearGraph = new Command(() =>
            {
                lock (syncRoot)
                {
                    OutputPoints.Clear();
                    SetpointLine.Clear();
                }
            });
        }