public void SetSwTriggerTest(bool value) { var registers = new ushort[] { 2000 - 1 }; var values = new[] { value }; var master = new DummyBroadcastWriteCoilModbusMaster(); var lili = new LinearLightV103(master, 0); lili.SwTrigger = value; Assert.AreEqual(registers, master.CalledCoilAdresses); Assert.AreEqual(values, master.CalledValues); }
public void ReadTemperatures1Test() { var addresses = new byte[] { 1, 2, 3 }; var startAddresses = new ushort[] { 3201 - 1, 3201 - 1, 3201 - 1, }; var lengths = new ushort[] { 1, 1, 1 }; var temperatures = new ushort[] { 30, 54, 15 }; var returnVals = temperatures.Select(x => new[] { x }).ToArray(); var master = new DummyReadInputRegistersModbusMaster(addresses, startAddresses, lengths, returnVals); var lili = new LinearLightV103(master, addresses.Length); CollectionAssert.AreEqual(temperatures, lili.Segments.Select(x => x.LedTemperature)); }
public void ReadIntensities2Test() { var addresses = new byte[] { 1, 2, 3 }; var startAddresses = new ushort[] { 4225 - 1, 4225 - 1, 4225 - 1, }; var lengths = new ushort[] { 1, 1, 1 }; var intensities = new ushort[] { 30, 54, 15 }; var returnVals = intensities.Select(x => new[] { x }).ToArray(); var master = new DummyReadRegistersModbusMaster(addresses, startAddresses, lengths, returnVals); var lili = new LinearLightV103(master, addresses.Length); CollectionAssert.AreEqual(intensities, lili.Segments.Select(x => x.SetIntensity2)); }
public void SetFanSpeedTest() { ushort setSpeed = 50; var registers = new ushort[] { 4109 - 1 }; var values = new[] { setSpeed }; var master = new DummyBroadcastWriteModbusMaster(); var linearLight = new LinearLightV103(master, 0); linearLight.FanSpeed = setSpeed; Assert.AreEqual(registers, master.CalledRegisterAdresses); Assert.AreEqual(values, master.CalledValues); }
public void ReadFanEnablesTest() { var addresses = new byte[] { 1, 2, 3 }; var startAddresses = new ushort[] { 2001 - 1, 2001 - 1, 2001 - 1, }; var lengths = new ushort[] { 1, 1, 1 }; var values = new[] { false, false, true }; var returnVals = values.Select(x => new[] { x }).ToArray(); var master = new DummyReadCoilsModbusMaster(addresses, startAddresses, lengths, returnVals); var lili = new LinearLightV103(master, addresses.Length); CollectionAssert.AreEqual(values, lili.Segments.Select(x => x.FanEnable)); }
public void ReadAmps2Test() { var addresses = new byte[] { 1, 2, 3 }; var startAddresses = new ushort[] { 3224 - 1, 3224 - 1, 3224 - 1, }; var lengths = new ushort[] { 1, 1, 1 }; var currents = new[] { 3.123, 0.054, 15.123 }; var returnVals = currents.Select(x => new[] { (ushort)(x * 1000) }).ToArray(); var master = new DummyReadInputRegistersModbusMaster(addresses, startAddresses, lengths, returnVals); var lili = new LinearLightV103(master, addresses.Length); CollectionAssert.AreEqual(currents, lili.Segments.Select(x => x.Amperes2)); }
public void ReadVolts1Test() { var addresses = new byte[] { 1, 2, 3 }; var startAddresses = new ushort[] { 3213 - 1, 3213 - 1, 3213 - 1, }; var lengths = new ushort[] { 1, 1, 1 }; var voltages = new[] { 3.123, 54, 15 }; var returnVals = voltages.Select(x => new[] { (ushort)(x * 1000) }).ToArray(); var master = new DummyReadInputRegistersModbusMaster(addresses, startAddresses, lengths, returnVals); var lili = new LinearLightV103(master, addresses.Length); CollectionAssert.AreEqual(voltages, lili.Segments.Select(x => x.Volts1)); }
public void SetIntensity() { using (var comm = new Communicator("COM29")) { var master = new ModbusRtuMaster(comm); var lili = new LinearLightV103(master, 1); lili.Intensity = 10; //lili.FanSpeed = 100; lili.FanEnable = true; lili.SwTrigger = true; Thread.Sleep(500); Console.Out.WriteLine(string.Join(", ", lili.Segments.Select(x => x.SetIntensity1.ToString()))); } }
public void SetIntensityTest() { ushort expectedIntensity = 15; var registers = new ushort[] { 4215 - 1, 4225 - 1 }; var values = new[] { expectedIntensity, expectedIntensity }; var master = new DummyBroadcastWriteModbusMaster(); var linearLight = new LinearLightV103(master, 0); linearLight.Intensity = expectedIntensity; Assert.AreEqual(registers, master.CalledRegisterAdresses); Assert.AreEqual(values, master.CalledValues); }
private T CreateLinearLight <T>(int segments) where T : class, ILinearLight { var protocol = GetProtocol(); T returnLight; switch (protocol) { case LinearLightV101.CompatibleProtocolVersion: returnLight = new LinearLightV101(master, segments) as T ?? throw new InvalidCastException( $"{typeof(LinearLightV101)} does not implement {typeof(T)}."); break; case LinearLightV102.CompatibleProtocolVersion: returnLight = new LinearLightV102(master, segments) as T ?? throw new InvalidCastException( $"{typeof(LinearLightV102)} does not implement {typeof(T)}."); break; case LinearLightV103.CompatibleProtocolVersion: returnLight = new LinearLightV103(master, segments) as T ?? throw new InvalidCastException( $"{typeof(LinearLightV103)} does not implement {typeof(T)}."); break; default: if (MajorVersion(protocol) != MajorVersion(LinearLightV103.CompatibleProtocolVersion)) { throw new Exception("Unsupported protocol."); } returnLight = new LinearLightV103(master, segments) as T ?? throw new InvalidCastException( $"{typeof(LinearLightV103)} does not implement {typeof(T)}."); break; } master.MillisecondsDelayBetweenTransmits = returnLight.MillisecondsBetweenTransmits; return(returnLight); }