public void ReadWriteAnyAsyncTest() { var client = new Dacs7Client(); client.ConnectAsync(ConnectionString).Wait(); Assert.True(client.IsConnected); client.WriteAnyAsync(PlcArea.DB, TestByteOffset, (byte)0x05, new int[] { 1, TestDbNr }).Wait();; var bytes = client.ReadAnyAsync(PlcArea.DB, TestByteOffset, typeof(byte), new int[] { 1, TestDbNr }).Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x05, bytes[0]); client.WriteAnyAsync(PlcArea.DB, TestByteOffset, (byte)0x00, new int[] { 1, TestDbNr }).Wait(); bytes = client.ReadAnyAsync(PlcArea.DB, TestByteOffset, typeof(byte), new int[] { 1, TestDbNr }).Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x00, bytes[0]); client.WriteAnyAsync(PlcArea.DB, TestByteOffset, (byte)0x05, new int[] { 1, TestDbNr }).Wait(); bytes = client.ReadAnyAsync(PlcArea.DB, TestByteOffset, typeof(byte), new int[] { 1, TestDbNr }).Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x05, bytes[0]); client.WriteAnyAsync(PlcArea.DB, TestByteOffset, (byte)0x00, new int[] { 1, TestDbNr }).Wait(); bytes = client.ReadAnyAsync(PlcArea.DB, TestByteOffset, typeof(byte), new int[] { 1, TestDbNr }).Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x00, bytes[0]); client.WriteAnyAsync(PlcArea.DB, TestBitOffset, true, new int[] { 1, TestDbNr }).Wait(); var state = client.ReadAnyAsync(PlcArea.DB, TestBitOffset, typeof(bool), new int[] { 1, TestDbNr }).Result as byte[]; Assert.NotNull(state); Assert.Equal((byte)0x01, state[0]); client.WriteAnyAsync(PlcArea.DB, TestBitOffset, false, new int[] { 1, TestDbNr }).Wait(); state = client.ReadAnyAsync(PlcArea.DB, TestBitOffset, typeof(bool), new int[] { 1, TestDbNr }).Result as byte[]; Assert.NotNull(state); Assert.Equal((byte)0x00, state[0]); client.WriteAnyAsync(PlcArea.DB, TestBitOffset, true, new int[] { 1, TestDbNr }).Wait(); state = client.ReadAnyAsync(PlcArea.DB, TestBitOffset, typeof(bool), new int[] { 1, TestDbNr }).Result as byte[]; Assert.NotNull(state); Assert.Equal((byte)0x01, state[0]); client.WriteAnyAsync(PlcArea.DB, TestBitOffset, false, new int[] { 1, TestDbNr }).Wait(); state = client.ReadAnyAsync(PlcArea.DB, TestBitOffset, typeof(bool), new int[] { 1, TestDbNr }).Result as byte[]; Assert.NotNull(state); Assert.Equal((byte)0x00, state[0]); client.DisconnectAsync().Wait(); Assert.False(client.IsConnected); }
public void ReadWriteAnyAsyncDoubleTest() { var client = new Dacs7Client(); var client2 = new Dacs7Client(); var t = new Task[2]; t[0] = client.ConnectAsync(ConnectionString); t[1] = client2.ConnectAsync(ConnectionString); Task.WaitAll(t); Assert.True(client.IsConnected); Assert.Equal(true, client2.IsConnected); t[0] = client.WriteAnyAsync(PlcArea.DB, TestByteOffset, (byte)0x05, new int[] { 1, TestDbNr }); t[1] = client2.WriteAnyAsync(PlcArea.DB, TestByteOffset2, (byte)0x05, new int[] { 1, TestDbNr }); Task.WaitAll(t); var t2 = new Task <byte[]> [2]; t2[0] = client.ReadAnyAsync(PlcArea.DB, TestByteOffset, typeof(byte), new int[] { 1, TestDbNr }); t2[1] = client2.ReadAnyAsync(PlcArea.DB, TestByteOffset2, typeof(byte), new int[] { 1, TestDbNr }); Task.WaitAll(t2); var bytes = t2[0].Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x05, bytes[0]); bytes = t2[1].Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x05, bytes[0]); t[0] = client.WriteAnyAsync(PlcArea.DB, TestByteOffset, (byte)0x00, new int[] { 1, TestDbNr }); t[1] = client2.WriteAnyAsync(PlcArea.DB, TestByteOffset2, (byte)0x00, new int[] { 1, TestDbNr }); Task.WaitAll(t); t2 = new Task <byte[]> [2]; t2[0] = client.ReadAnyAsync(PlcArea.DB, TestByteOffset, typeof(byte), new int[] { 1, TestDbNr }); t2[1] = client2.ReadAnyAsync(PlcArea.DB, TestByteOffset2, typeof(byte), new int[] { 1, TestDbNr }); Task.WaitAll(t2); bytes = t2[0].Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x00, bytes[0]); bytes = t2[1].Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x00, bytes[0]); t[0] = client.WriteAnyAsync(PlcArea.DB, TestBitOffset, true, new int[] { 1, TestDbNr }); t[1] = client2.WriteAnyAsync(PlcArea.DB, TestBitOffset2, true, new int[] { 1, TestDbNr }); Task.WaitAll(t); t2 = new Task <byte[]> [2]; t2[0] = client.ReadAnyAsync(PlcArea.DB, TestBitOffset, typeof(bool), new int[] { 1, TestDbNr }); t2[1] = client2.ReadAnyAsync(PlcArea.DB, TestBitOffset2, typeof(bool), new int[] { 1, TestDbNr }); Task.WaitAll(t2); bytes = t2[0].Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x01, bytes[0]); bytes = t2[1].Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x01, bytes[0]); t[0] = client.WriteAnyAsync(PlcArea.DB, TestBitOffset, false, new int[] { 1, TestDbNr }); t[1] = client2.WriteAnyAsync(PlcArea.DB, TestBitOffset2, false, new int[] { 1, TestDbNr }); Task.WaitAll(t); t2 = new Task <byte[]> [2]; t2[0] = client.ReadAnyAsync(PlcArea.DB, TestBitOffset, typeof(bool), new int[] { 1, TestDbNr }); t2[1] = client2.ReadAnyAsync(PlcArea.DB, TestBitOffset2, typeof(bool), new int[] { 1, TestDbNr }); Task.WaitAll(t); bytes = t2[0].Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x00, bytes[0]); bytes = t2[1].Result as byte[]; Assert.NotNull(bytes); Assert.Equal((byte)0x00, bytes[0]); t[0] = client.DisconnectAsync(); t[1] = client2.DisconnectAsync(); Task.WaitAll(t); Assert.False(client.IsConnected); Assert.False(client2.IsConnected); }