示例#1
0
        public DispParamViewModel(
            string displayName,
            IRecvParam <TReceive> parameterModel,
            IThreadNotifier uiNotifier,
            Func <TReceive, TDisplay> displayValueGetter,
            TDisplay fallbackValue,
            TDisplay unknownValue)
        {
            //UniqueName = fullNamePreffix + ": " + displayName;
            //DisplayName = uniqNamePrefix + ": " + displayName;
            DisplayName = displayName;

            _parameterModel     = parameterModel;
            _uiNotifier         = uiNotifier;
            _displayValueGetter = displayValueGetter;
            _fallbackValue      = fallbackValue;

            _unknownValue   = unknownValue;
            _displayValue   = unknownValue;
            _isValueUnknown = true;

            _isValueFallback = false;

            _parameterModel.NotifyDataReceived += ParameterModelOnNotifyDataReceived;
        }
        public ChartParamViewModel(
            IRecvParam <TR> recvParam,
            IDisplayParameter <TD> parameter,
            Func <TR, double> chartDataGetter,
            ParameterLogType parameterLogType,
            IParameterLogger parameterLogger,
            params string[] uniqNamePrefix)
        {
            _uniqNamePrefix   = string.Join(", ", uniqNamePrefix);
            _recvParam        = recvParam;
            _parameter        = parameter;
            _chartDataGetter  = chartDataGetter;
            _parameterLogType = parameterLogType;
            _parameterLogger  = parameterLogger;

            DisplayParameters = new List <IDisplayParameter> {
                _parameter
            };
            _isChecked = false;


            switch (_parameterLogType)
            {
            case ParameterLogType.Analogue:
                _recvParam.NotifyDataReceived += ParameterOnDisplayParameterValueMaybeChanged;
                break;

            case ParameterLogType.Discrete:
                _recvParam.NotifyDataReceived += ParameterOnDisplayParameterValueMaybeChangedBool;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(parameterLogType), parameterLogType, null);
            }
        }
示例#3
0
        public DispParamSettableViewModel(
            string displayName,
            IRecvParam <TRaw> recvModel,
            IThreadNotifier uiNotifier,
            Func <TRaw, TDisplay> displayValueGetter,
            TDisplay fallbackValue,
            TDisplay unknownValue,
            Action <TSet> sendValueValidator,
            TSet fallbackSettValue,
            TSet unknownSettValue,
            Action <TSet, Action <Exception> > asyncParamSetter)
        {
            DisplayName = displayName;

            _recvModel          = recvModel;
            _uiNotifier         = uiNotifier;
            _displayValueGetter = displayValueGetter;

            _fallbackValue   = fallbackValue;
            _unknownValue    = unknownValue;
            _displayValue    = unknownValue;
            _isValueUnknown  = true;
            _isValueFallback = false;


            _sendValueValidator  = sendValueValidator;
            _fallbackSettValue   = fallbackSettValue;
            _unknownSettValue    = unknownSettValue;
            _settValue           = unknownSettValue;
            _isSettValueUnknown  = true;
            _isSettValueFallback = false;

            _backgroundColor = Colors.Transparent;

            _asyncParamSetter = asyncParamSetter;
            _setCommand       = new DependedCommand(Set, () => IsSettValueNotFallbackAndNotUnknown);
            _setCommand.AddDependOnProp(this, () => IsSettValueNotFallbackAndNotUnknown);


            _recvModel.NotifyDataReceived += ParameterModelOnNotifyDataReceived;
        }