Example #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();
                }
            });
        }
        public NetworkTableBackedLookup(ITable table)
        {
            bool validType = Value.GetSupportedValueTypes().Contains(typeof(T));

            if (!validType)
            {
                throw new InvalidOperationException($"Generic type {typeof(T)} is not supported");
            }

            this.table = table;
            table.AddTableListenerOnSynchronizationContext(SynchronizationContext.Current,
                                                           (changedTable, key, value, flags) =>
                                                           NotifyPropertyChanged(System.Windows.Data.Binding.IndexerName));
        }
Example #3
0
 public CommandModel(string tableName, ITable table) : base(tableName, table)
 {
     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);
 }