Exemple #1
0
 internal override RemapTagsParameter CreateRemapParameter()
 {
     var parameter = new RemapTagsParameter { IoDeviceId = _id };
     UpdateDigReadIds(parameter);
     UpdateNumReadIds(parameter);
     UpdateDigWriteData(parameter);
     UpdateNumWriteData(parameter);
     if (parameter.DigReadIds.Any()
         || parameter.NumReadIds.Any()
         || parameter.DigWriteIds.Any()
         || parameter.NumWriteIds.Any())
         return parameter;
     return null;
 }
Exemple #2
0
 private void UpdateNumReadIds(RemapTagsParameter parameter)
 {
     _readNumericTags.Clear();
     var unReadTags = new List<TagAbstract<double?>>();
     foreach (var tag in _numericTags)
     {
         if (tag.IsRead)
             _readNumericTags.Add(tag);
         else
             unReadTags.Add(tag);
     }
     foreach (var tag in unReadTags)
     {
         tag.UpdateValue(null);
     }
     parameter.NumReadIds = _readNumericTags.Select(t => t.Id).ToArray();
 }
Exemple #3
0
 private void UpdateNumWriteData(RemapTagsParameter parameter)
 {
     var ids = new List<int>();
     var values = new List<double>();
     foreach (var tag in _numericTags)
     {
         if (!tag.IsWritten)
             continue;
         var value = tag.GetWrittenValue();
         if (!value.HasValue)
             continue;
         ids.Add(tag.Id);
         values.Add(value.Value);
     }
     parameter.NumWriteIds = ids.ToArray();
     parameter.NumWriteValues = values.ToArray();
 }
Exemple #4
0
 protected override void EstablishContext()
 {
     base.EstablishContext();
     Parameter = new RemapTagsParameter();
     IoDevice.Setup(d => d.CreateRemapParameter()).Returns(Parameter).Verifiable();
 }
Exemple #5
0
 private void UpdateDigReadIds(RemapTagsParameter parameter)
 {
     _readDigitalTags.Clear();
     var unReadTags = new List<TagAbstract<bool?>>();
     foreach (var tag in _digitalTags)
     {
         if (tag.IsRead)
             _readDigitalTags.Add(tag);
         else
             unReadTags.Add(tag);
     }
     foreach (var tag in unReadTags)
     {
         tag.UpdateValue(null);
     }
     parameter.DigReadIds = _readDigitalTags.Select(t => t.Id).ToArray();
 }
Exemple #6
0
 private static void Remap(IIoDeviceRunTarget ioDevice, RemapTagsParameter parameter, RemapTagsResult result)
 {
     var readOnly = !parameter.DigWriteIds.Any() && !parameter.NumWriteIds.Any();
     if (readOnly)
         ioDevice.EnterReadLock();
     else
         ioDevice.EnterWriteLock();
     try
     {
         if (!readOnly)
         {
             WriteDigValues(ioDevice, parameter.DigWriteIds, parameter.DigWriteValues);
             WriteNumValues(ioDevice, parameter.NumWriteIds, parameter.NumWriteValues);
         }
         result.DigReadValues = ReadDigValues(ioDevice, parameter.DigReadIds);
         result.NumReadValues = ReadNumValues(ioDevice, parameter.NumReadIds);
         result.Notifications = GetNotifications(ioDevice.Reporter.Notifications);
     }
     finally
     {
         if (readOnly)
             ioDevice.ExitReadLock();
         else
             ioDevice.ExitWriteLock();
     }
 }
Exemple #7
0
 public RemapTagsResult[] RemapTags(RemapTagsParameter[] parameters)
 {
     if (NotValid())
         return null;
     var results = new RemapTagsResult[parameters.Length];
     for (var parameterIndex = 0; parameterIndex < parameters.Length; parameterIndex++)
     {
         var parameter = parameters[parameterIndex];
         var result = new RemapTagsResult();
         results[parameterIndex] = result;
         var ioDevice = _project.IoDeviceRunTargets[parameter.IoDeviceId];
         Remap(ioDevice, parameter, result);
     }
     return results;
 }
Exemple #8
0
                protected override void EstablishContext()
                {
                    base.EstablishContext();
                    RemapTagsParameter = new RemapTagsParameter
                        {
                            IoDeviceId = IoDeviceId,
                            DigWriteIds = new [] {20},
                            DigWriteValues = new [] {true},
                            NumWriteIds = new [] {30},
                            NumWriteValues = new [] {33.3},
                            DigReadIds = new [] {DigReadId},
                            NumReadIds = new [] {NumReadId}
                        };
                    IoDeviceRunTarget.Setup(t => t.GetDigitalValue(DigReadId)).Returns(DigReadValue).Verifiable();
                    IoDeviceRunTarget.Setup(t => t.GetNumericValue(NumReadId)).Returns(NumReadValue).Verifiable();

                    Notifications = new ReadOnlyObservableCollection<Notification>(
                        new ObservableCollection<Notification>{new Notification(DateTime.Now, "Message", "ShortDesc", "LongDesc")});
                    Reporter = new Mock<INotificationReporter>();
                    Reporter.SetupGet(r => r.Notifications).Returns(Notifications);
                    IoDeviceRunTarget.SetupGet(t => t.Reporter).Returns(Reporter.Object);

                    RemapTagsResult = Service.RemapTags(new [] { RemapTagsParameter });
                }
Exemple #9
0
 protected override void EstablishContext()
 {
     base.EstablishContext();
     Parameter = new RemapTagsParameter();
     CommonCategory.Setup(d => d.IsRead()).Returns(true).Verifiable();
 }
Exemple #10
0
 protected override void EstablishContext()
 {
     base.EstablishContext();
     Parameter = IoDevice.CreateRemapParameter();
 }