Esempio n. 1
0
        public RegisterNumber(DeviceBlock deviceBlock, RegisterSettings settings,
            SetNumberValueDelegate setValue, GetNumberValueDelegate getValue = null)
            : base(deviceBlock, settings)
        {
            UseScale = false;
            _ScaleFactor = 1;
            Inserter = null;
            String defaultValue = Settings.RegisterValue;
            if (defaultValue != null)
                RegisterValueNumber = new RegisterValueNumber(this, defaultValue);
            if (RegisterValueNumber != null)
            {
                HasFixedValue = true;
                MappedToRegisterData &= (Device.Params.Protocol.Type == ProtocolSettings.ProtocolType.Modbus);
                _Value = RegisterValueNumber.ValueDecimal;
            }
            else
                HasFixedValue = false;
            SetNumberValueInternal = setValue;
            GetNumberValueInternal = getValue;
            UseScale = settings.UseScale;
            ScaleValueType = settings.ScaleValueType;
            if (UseScale)
                _ScaleFactor = 1 / settings.DefaultScale;

            LoadExtractor(settings.Extractor);
            LoadInserter(settings.Inserter);
        }
 public VariableEntry_Numeric(String name, SetNumberValueDelegate setValueDelegate, GetNumberValueDelegate getValueDelegate = null)
     : base(name)
 {
     SetValueDelegate = setValueDelegate;
     GetValueDelegate = getValueDelegate;
 }