public IoDeviceRunTarget(io_devices ioDevice, IIoDeviceWrapperFactory wrapperFactory, INotificationReporter reporter) { _reporter = reporter; Name = string.Format(Res.IoDeviceWithName, ioDevice.name); _filePath = GetFilePath(ioDevice.type); _options = ioDevice.options; _wrapperFactory = wrapperFactory; var digReadParameters = new List<ReadParameter>(); var digReadValueHolders = new List<ITagValueHolder>(); foreach (var t in ioDevice.dig_tags) { var holder = new DigTagValueHolder(t); _digValueHolders.Add(t.id, holder); if (t.can_read) { digReadValueHolders.Add(holder); digReadParameters.Add(new ReadParameter(t.device, typeof(bool))); } } var numReadParameters = new List<ReadParameter>(); var numReadValueHolders = new List<ITagValueHolder>(); foreach (var t in ioDevice.num_tags) { var holder = new NumTagValueHolder(t); _numValueHolders.Add(t.id, holder); if (t.can_read) { numReadValueHolders.Add(holder); numReadParameters.Add(new ReadParameter(t.device, t.TagType)); } } _readParameters = digReadParameters.Concat(numReadParameters).ToArray(); _readValueHolders = digReadValueHolders.Concat(numReadValueHolders).ToArray(); }
public IoDeviceRunTarget(IoDevice ioDevice, IIoDeviceWrapperFactory wrapperFactory, INotificationReporter reporter) { Reporter = reporter; Name = string.Format(Res.IoDeviceWithName, ioDevice.Name); _filePath = GetFilePath(ioDevice.Type); _options = ioDevice.Options; _wrapperFactory = wrapperFactory; var digReadParameters = new List <ReadParameter>(); var digReadValueHolders = new List <ITagValueHolder>(); foreach (DigTag t in ioDevice.DigTags) { var holder = new DigTagValueHolder(t); _digValueHolders.Add(t.Id, holder); if (t.CanRead) { digReadValueHolders.Add(holder); digReadParameters.Add(new ReadParameter(t.Device, typeof(bool))); } } var numReadParameters = new List <ReadParameter>(); var numReadValueHolders = new List <ITagValueHolder>(); foreach (NumTag t in ioDevice.NumTags) { var holder = new NumTagValueHolder(t); _numValueHolders.Add(t.Id, holder); if (t.CanRead) { numReadValueHolders.Add(holder); numReadParameters.Add(new ReadParameter(t.Device, t.TagType)); } } _readParameters = digReadParameters.Concat(numReadParameters).ToArray(); _readValueHolders = digReadValueHolders.Concat(numReadValueHolders).ToArray(); }