public DeviceBlock(DeviceAlgorithm device, BlockSettings blockSettings, Protocol protocol)
        {
            AlarmFound = false;
            ErrorFound = false;

            Device = device;
            //DeviceManager = Device.DeviceManager;

            //DeviceManager = Device.Manager;
            BlockSettings = blockSettings;
            retryCount = BlockSettings.TimeoutRetries;
            Protocol = protocol;
            ProtocolType = Protocol.Type;
            Conversation = Protocol.GetConversation(BlockSettings.Conversation);
            Name = BlockSettings.Name;
            Type = BlockSettings.Type;
            OnDbWriteOnly = BlockSettings.OnDbWriteOnly;
            LoadRegisters();
            int? temp = BlockSettings.Base;
            Base = temp.HasValue ? temp.Value : -1;
        }
 public DeviceBlock_RequestResponse(DeviceAlgorithm device, BlockSettings blockSettings, Protocol protocol)
     : base(device, blockSettings, protocol)
 {
 }
 public DeviceBlock_NonModbus(DeviceAlgorithm device, BlockSettings blockSettings, Protocol protocol)
     : base(device, blockSettings, protocol)
 {
 }
 public DeviceBlock_Phoenixtec(DeviceAlgorithm device, BlockSettings blockSettings, Protocol protocol)
     : base(device, blockSettings, protocol)
 {
 }
 public DeviceBlock_Modbus(DeviceAlgorithm device, BlockSettings blockSettings, Protocol protocol)
     : base(device, blockSettings, protocol)
 {
     CommandId = BlockSettings.CommandId;
     IsKLNEModbus = protocol.ProtocolSettings.Name == "KLNEModbus";
 }