2017-05-17 Update 2 Change Unittests
This commit is contained in:
@@ -27,7 +27,7 @@ namespace Modbus.Net.Modbus
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Modbus基础Api入口
|
/// Modbus基础Api入口
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ModbusUtility : BaseUtility, IIUtilityMethodTime
|
public class ModbusUtility : BaseUtility, IUtilityMethodTime
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Modbus协议类型
|
/// Modbus协议类型
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace Modbus.Net.Tests
|
|||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task Get()
|
public async Task MultiStation()
|
||||||
{
|
{
|
||||||
var addresses = new List<AddressUnit>
|
var addresses = new List<AddressUnit>
|
||||||
{
|
{
|
||||||
@@ -85,56 +85,72 @@ namespace Modbus.Net.Tests
|
|||||||
_modbusRtuMachine1.GetAddresses = addresses.ToList();
|
_modbusRtuMachine1.GetAddresses = addresses.ToList();
|
||||||
_modbusRtuMachine2.GetAddresses = addresses.ToList();
|
_modbusRtuMachine2.GetAddresses = addresses.ToList();
|
||||||
|
|
||||||
await _modbusRtuMachine1.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary<string, double>()
|
Random r = new Random();
|
||||||
|
var dic1 = new Dictionary<string, double>()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"A1", 70
|
"A1", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A2", 71
|
"A2", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A3", 72
|
"A3", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A4", 73
|
"A4", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A5", 717870
|
"A5", r.Next()
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A6", 717871
|
"A6", r.Next()
|
||||||
},
|
},
|
||||||
});
|
};
|
||||||
await _modbusRtuMachine2.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary<string, double>()
|
|
||||||
|
var dic2 = new Dictionary<string, double>()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"A1", 74
|
"A1", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A2", 75
|
"A2", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A3", 76
|
"A3", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A4", 77
|
"A4", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A5", 717873
|
"A5", r.Next()
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A6", 717874
|
"A6", r.Next()
|
||||||
},
|
},
|
||||||
});
|
};
|
||||||
|
|
||||||
|
await _modbusRtuMachine1.SetDatasAsync(MachineSetDataType.CommunicationTag, dic1);
|
||||||
|
await _modbusRtuMachine2.SetDatasAsync(MachineSetDataType.CommunicationTag, dic2);
|
||||||
|
|
||||||
var ans = await _modbusRtuMachine1.GetDatasAsync(MachineGetDataType.CommunicationTag);
|
var ans = await _modbusRtuMachine1.GetDatasAsync(MachineGetDataType.CommunicationTag);
|
||||||
var ans2 = await _modbusRtuMachine2.GetDatasAsync(MachineGetDataType.CommunicationTag);
|
var ans2 = await _modbusRtuMachine2.GetDatasAsync(MachineGetDataType.CommunicationTag);
|
||||||
|
|
||||||
_modbusRtuMachine1.Disconnect();
|
_modbusRtuMachine1.Disconnect();
|
||||||
_modbusRtuMachine2.Disconnect();
|
_modbusRtuMachine2.Disconnect();
|
||||||
|
|
||||||
Assert.AreEqual(ans["A1"].PlcValue, 70);
|
Assert.AreEqual(ans["A1"].PlcValue, dic1["A1"]);
|
||||||
Assert.AreEqual(ans2["A1"].PlcValue, 74);
|
Assert.AreEqual(ans2["A1"].PlcValue, dic2["A1"]);
|
||||||
|
Assert.AreEqual(ans["A2"].PlcValue, dic1["A2"]);
|
||||||
|
Assert.AreEqual(ans2["A2"].PlcValue, dic2["A2"]);
|
||||||
|
Assert.AreEqual(ans["A3"].PlcValue, dic1["A3"]);
|
||||||
|
Assert.AreEqual(ans2["A3"].PlcValue, dic2["A3"]);
|
||||||
|
Assert.AreEqual(ans["A4"].PlcValue, dic1["A4"]);
|
||||||
|
Assert.AreEqual(ans2["A4"].PlcValue, dic2["A4"]);
|
||||||
|
Assert.AreEqual(ans["A5"].PlcValue, dic1["A5"]);
|
||||||
|
Assert.AreEqual(ans2["A5"].PlcValue, dic2["A5"]);
|
||||||
|
Assert.AreEqual(ans["A6"].PlcValue, dic1["A6"]);
|
||||||
|
Assert.AreEqual(ans2["A6"].PlcValue, dic2["A6"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ namespace Modbus.Net.Tests
|
|||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task ModbusCoilSingle()
|
public async Task ModbusCoilSingle()
|
||||||
{
|
{
|
||||||
|
Random r = new Random();
|
||||||
|
|
||||||
var addresses = new List<AddressUnit>
|
var addresses = new List<AddressUnit>
|
||||||
{
|
{
|
||||||
new AddressUnit
|
new AddressUnit
|
||||||
@@ -33,15 +35,17 @@ namespace Modbus.Net.Tests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
_modbusTcpMachine.GetAddresses = addresses;
|
var dic1 = new Dictionary<string, double>()
|
||||||
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
|
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"0X 1.0", 1
|
"0X 1.0", r.Next(0, 2)
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
|
_modbusTcpMachine.GetAddresses = addresses;
|
||||||
|
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
|
||||||
var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
||||||
Assert.AreEqual(ans["0X 1.0"].PlcValue, 1);
|
Assert.AreEqual(ans["0X 1.0"].PlcValue, dic1["0X 1.0"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@@ -89,6 +93,8 @@ namespace Modbus.Net.Tests
|
|||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task ModbusRegSingle()
|
public async Task ModbusRegSingle()
|
||||||
{
|
{
|
||||||
|
Random r = new Random();
|
||||||
|
|
||||||
var addresses = new List<AddressUnit>
|
var addresses = new List<AddressUnit>
|
||||||
{
|
{
|
||||||
new AddressUnit
|
new AddressUnit
|
||||||
@@ -102,20 +108,24 @@ namespace Modbus.Net.Tests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
_modbusTcpMachine.GetAddresses = addresses;
|
var dic1 = new Dictionary<string, double>()
|
||||||
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
|
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"4X 1", 31125
|
"4X 1", r.Next(0, UInt16.MaxValue)
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
|
_modbusTcpMachine.GetAddresses = addresses;
|
||||||
|
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
|
||||||
var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
||||||
Assert.AreEqual(ans["4X 1.0"].PlcValue, 31125);
|
Assert.AreEqual(ans["4X 1.0"].PlcValue, dic1["4X 1"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task ModbusRegMultiple()
|
public async Task ModbusRegMultiple()
|
||||||
{
|
{
|
||||||
|
Random r = new Random();
|
||||||
|
|
||||||
var addresses = new List<AddressUnit>
|
var addresses = new List<AddressUnit>
|
||||||
{
|
{
|
||||||
new AddressUnit
|
new AddressUnit
|
||||||
@@ -174,35 +184,38 @@ namespace Modbus.Net.Tests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
_modbusTcpMachine.GetAddresses = addresses;
|
var dic1 = new Dictionary<string, double>()
|
||||||
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary<string, double>()
|
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"A1", 70
|
"A1", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A2", 71
|
"A2", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A3", 72
|
"A3", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A4", 73
|
"A4", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A5", 717870
|
"A5", r.Next()
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A6", 717871
|
"A6", r.Next()
|
||||||
},
|
},
|
||||||
});
|
};
|
||||||
|
|
||||||
|
_modbusTcpMachine.GetAddresses = addresses;
|
||||||
|
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, dic1);
|
||||||
|
|
||||||
var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.CommunicationTag);
|
var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.CommunicationTag);
|
||||||
Assert.AreEqual(ans["A1"].PlcValue, 70);
|
Assert.AreEqual(ans["A1"].PlcValue, dic1["A1"]);
|
||||||
Assert.AreEqual(ans["A2"].PlcValue, 71);
|
Assert.AreEqual(ans["A2"].PlcValue, dic1["A2"]);
|
||||||
Assert.AreEqual(ans["A3"].PlcValue, 72);
|
Assert.AreEqual(ans["A3"].PlcValue, dic1["A3"]);
|
||||||
Assert.AreEqual(ans["A4"].PlcValue, 73);
|
Assert.AreEqual(ans["A4"].PlcValue, dic1["A4"]);
|
||||||
Assert.AreEqual(ans["A5"].PlcValue, 717870);
|
Assert.AreEqual(ans["A5"].PlcValue, dic1["A5"]);
|
||||||
Assert.AreEqual(ans["A6"].PlcValue, 717871);
|
Assert.AreEqual(ans["A6"].PlcValue, dic1["A6"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ namespace Modbus.Net.Tests
|
|||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task SiemensCoilSingle()
|
public async Task SiemensCoilSingle()
|
||||||
{
|
{
|
||||||
|
Random r = new Random();
|
||||||
|
|
||||||
var addresses = new List<AddressUnit>
|
var addresses = new List<AddressUnit>
|
||||||
{
|
{
|
||||||
new AddressUnit
|
new AddressUnit
|
||||||
@@ -34,15 +36,18 @@ namespace Modbus.Net.Tests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
_siemensTcpMachine.GetAddresses = addresses;
|
var dic1 = new Dictionary<string, double>()
|
||||||
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
|
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"Q 0.0", 1
|
"Q 0.0", r.Next(0, 2)
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
|
_siemensTcpMachine.GetAddresses = addresses;
|
||||||
|
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
|
||||||
|
|
||||||
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
||||||
Assert.AreEqual(ans["Q 0.0"].PlcValue, 1);
|
Assert.AreEqual(ans["Q 0.0"].PlcValue, dic1["Q 0.0"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@@ -69,6 +74,8 @@ namespace Modbus.Net.Tests
|
|||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task SiemensMSingle()
|
public async Task SiemensMSingle()
|
||||||
{
|
{
|
||||||
|
Random r = new Random();
|
||||||
|
|
||||||
var addresses = new List<AddressUnit>
|
var addresses = new List<AddressUnit>
|
||||||
{
|
{
|
||||||
new AddressUnit
|
new AddressUnit
|
||||||
@@ -84,19 +91,23 @@ namespace Modbus.Net.Tests
|
|||||||
|
|
||||||
_siemensTcpMachine.GetAddresses = addresses;
|
_siemensTcpMachine.GetAddresses = addresses;
|
||||||
|
|
||||||
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
|
var dic1 = new Dictionary<string, double>()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"M 0", 31125
|
"M 0", r.Next(0, UInt16.MaxValue)
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
|
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
|
||||||
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
||||||
Assert.AreEqual(ans["M 0.0"].PlcValue, 31125);
|
Assert.AreEqual(ans["M 0.0"].PlcValue, dic1["M 0"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task SiemensMSingleBool()
|
public async Task SiemensMSingleBool()
|
||||||
{
|
{
|
||||||
|
Random r = new Random();
|
||||||
|
|
||||||
var addresses = new List<AddressUnit>
|
var addresses = new List<AddressUnit>
|
||||||
{
|
{
|
||||||
new AddressUnit
|
new AddressUnit
|
||||||
@@ -112,19 +123,24 @@ namespace Modbus.Net.Tests
|
|||||||
|
|
||||||
_siemensTcpMachine.GetAddresses = addresses;
|
_siemensTcpMachine.GetAddresses = addresses;
|
||||||
|
|
||||||
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
|
var dic1 = new Dictionary<string, double>()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"M 0.0", 1
|
"M 0.0", r.Next(0, 2)
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
|
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
|
||||||
|
|
||||||
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
||||||
Assert.AreEqual(ans["M 0.0"].PlcValue, 1);
|
Assert.AreEqual(ans["M 0.0"].PlcValue, dic1["M 0.0"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task SiemensDbSingle()
|
public async Task SiemensDbSingle()
|
||||||
{
|
{
|
||||||
|
Random r = new Random();
|
||||||
|
|
||||||
var addresses = new List<AddressUnit>
|
var addresses = new List<AddressUnit>
|
||||||
{
|
{
|
||||||
new AddressUnit
|
new AddressUnit
|
||||||
@@ -138,20 +154,25 @@ namespace Modbus.Net.Tests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
_siemensTcpMachine.GetAddresses = addresses;
|
var dic1 = new Dictionary<string, double>()
|
||||||
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
|
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"DB2 0.0", 31125
|
"DB2 0.0", r.Next(0, UInt16.MaxValue)
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
|
_siemensTcpMachine.GetAddresses = addresses;
|
||||||
|
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
|
||||||
|
|
||||||
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
|
||||||
Assert.AreEqual(ans["DB2 0.0"].PlcValue, 31125);
|
Assert.AreEqual(ans["DB2 0.0"].PlcValue, dic1["DB2 0.0"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task SiemensDbMultiple()
|
public async Task SiemensDbMultiple()
|
||||||
{
|
{
|
||||||
|
Random r = new Random();
|
||||||
|
|
||||||
var addresses = new List<AddressUnit>
|
var addresses = new List<AddressUnit>
|
||||||
{
|
{
|
||||||
new AddressUnit
|
new AddressUnit
|
||||||
@@ -210,35 +231,37 @@ namespace Modbus.Net.Tests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
_siemensTcpMachine.GetAddresses = addresses;
|
var dic1 = new Dictionary<string, double>()
|
||||||
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary<string, double>()
|
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"A1", 70
|
"A1", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A2", 71
|
"A2", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A3", 72
|
"A3", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A4", 73
|
"A4", r.Next(0, UInt16.MaxValue)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A5", 717870
|
"A5", r.Next()
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"A6", 717871
|
"A6", r.Next()
|
||||||
},
|
},
|
||||||
});
|
};
|
||||||
|
|
||||||
|
_siemensTcpMachine.GetAddresses = addresses;
|
||||||
|
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, dic1);
|
||||||
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.CommunicationTag);
|
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.CommunicationTag);
|
||||||
Assert.AreEqual(ans["A1"].PlcValue, 70);
|
Assert.AreEqual(ans["A1"].PlcValue, dic1["A1"]);
|
||||||
Assert.AreEqual(ans["A2"].PlcValue, 71);
|
Assert.AreEqual(ans["A2"].PlcValue, dic1["A2"]);
|
||||||
Assert.AreEqual(ans["A3"].PlcValue, 72);
|
Assert.AreEqual(ans["A3"].PlcValue, dic1["A3"]);
|
||||||
Assert.AreEqual(ans["A4"].PlcValue, 73);
|
Assert.AreEqual(ans["A4"].PlcValue, dic1["A4"]);
|
||||||
Assert.AreEqual(ans["A5"].PlcValue, 717870);
|
Assert.AreEqual(ans["A5"].PlcValue, dic1["A5"]);
|
||||||
Assert.AreEqual(ans["A6"].PlcValue, 717871);
|
Assert.AreEqual(ans["A6"].PlcValue, dic1["A6"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user