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; }