public void Polling_Frequency_Cannot_Be_Undershot()
        {
            // Act
            var frequency = PlcItemMonitorConfigurations.ValidatePollingFrequency(TimeSpan.FromMilliseconds(10));

            // Assert
            Assert.AreEqual(PlcItemMonitorConfigurations.MinimumPollingFrequency, frequency);
        }
        public void Check_Default_Frequency()
        {
            //Arrange
            var item = Moq.Mock.Of <IPlcItem>();

            Moq.Mock.Get(item).SetupGet(plcItem => plcItem.Identifier).Returns(Guid.NewGuid().ToString);
            var configurations = new PlcItemMonitorConfigurations();

            // Act
            var frequency = configurations.GetPollingFrequencyForPlcItem(item);

            // Assert
            Assert.AreEqual(PlcItemMonitorConfigurations.DefaultPollingFrequency, frequency);
        }
        public void Check_Custom_Frequency()
        {
            //Arrange
            var itemIdentifier = Guid.NewGuid().ToString();
            var itemFrequency  = TimeSpan.FromMilliseconds(100);
            var item           = Moq.Mock.Of <IPlcItem>();

            Moq.Mock.Get(item).SetupGet(plcItem => plcItem.Identifier).Returns(itemIdentifier);
            var configurations = new PlcItemMonitorConfigurations(new[] { new PlcItemMonitorConfiguration(itemIdentifier, (uint)itemFrequency.TotalMilliseconds), });

            // Act
            var frequency = configurations.GetPollingFrequencyForPlcItem(item);

            // Assert
            Assert.AreEqual(itemFrequency, frequency);
        }
Example #4
0
 /// <summary>
 /// Creates a <see cref="IMonitorablePlc"/> utilizing the <paramref name="plc"/>.
 /// </summary>
 /// <param name="plc"> The <see cref="IPlc"/> object that is used for monitoring. </param>
 /// <param name="plcItemMonitorConfigurations"> <see cref="PlcItemMonitorConfigurations"/> for specifying special polling frequencies for some <see cref="Phoenix.Data.Plc.Items.IPlcItem"/>s. </param>
 /// <returns> An <see cref="IMonitorablePlc"/> instance. </returns>
 public static IMonitorablePlc MakeMonitorable(this IPlc plc, PlcItemMonitorConfigurations plcItemMonitorConfigurations)
 {
     return(new PollingMonitorablePlc(plc, plcItemMonitorConfigurations));
 }