2017-2-8 update 1 Add interfaces.

This commit is contained in:
parallelbgls
2017-02-08 15:42:22 +08:00
parent b378fa1861
commit a3fcf6798f
21 changed files with 214 additions and 109 deletions

View File

@@ -64,7 +64,7 @@ namespace Modbus.Net.Modbus
#region PLC数据
public class ReadDataModbusInputStruct : InputStruct
public class ReadDataModbusInputStruct : IInputStruct
{
public ReadDataModbusInputStruct(byte slaveAddress, string startAddress, ushort getCount,
AddressTranslator addressTranslator)
@@ -85,7 +85,7 @@ namespace Modbus.Net.Modbus
public ushort GetCount { get; }
}
public class ReadDataModbusOutputStruct : OutputStruct
public class ReadDataModbusOutputStruct : IOutputStruct
{
public ReadDataModbusOutputStruct(byte slaveAddress, byte functionCode,
int dataCount, byte[] dataValue)
@@ -107,14 +107,14 @@ namespace Modbus.Net.Modbus
public class ReadDataModbusProtocal : ProtocalUnit
{
public override byte[] Format(InputStruct message)
public override byte[] Format(IInputStruct message)
{
var r_message = (ReadDataModbusInputStruct) message;
return Format(r_message.SlaveAddress, r_message.FunctionCode,
r_message.StartAddress, r_message.GetCount);
}
public override OutputStruct Unformat(byte[] messageBytes, ref int pos)
public override IOutputStruct Unformat(byte[] messageBytes, ref int pos)
{
var slaveAddress = BigEndianValueHelper.Instance.GetByte(messageBytes, ref pos);
var functionCode = BigEndianValueHelper.Instance.GetByte(messageBytes, ref pos);
@@ -136,7 +136,7 @@ namespace Modbus.Net.Modbus
#region PLC数据
public class WriteDataModbusInputStruct : InputStruct
public class WriteDataModbusInputStruct : IInputStruct
{
public WriteDataModbusInputStruct(byte slaveAddress, string startAddress, object[] writeValue,
AddressTranslator addressTranslator)
@@ -165,7 +165,7 @@ namespace Modbus.Net.Modbus
public byte[] WriteValue { get; }
}
public class WriteDataModbusOutputStruct : OutputStruct
public class WriteDataModbusOutputStruct : IOutputStruct
{
public WriteDataModbusOutputStruct(byte slaveAddress, byte functionCode,
ushort startAddress, ushort writeCount)
@@ -190,7 +190,7 @@ namespace Modbus.Net.Modbus
/// </summary>
public class WriteDataModbusProtocal : ProtocalUnit
{
public override byte[] Format(InputStruct message)
public override byte[] Format(IInputStruct message)
{
var r_message = (WriteDataModbusInputStruct) message;
var functionCode = r_message.FunctionCode;
@@ -207,7 +207,7 @@ namespace Modbus.Net.Modbus
return formattingBytes;
}
public override OutputStruct Unformat(byte[] messageBytes, ref int flag)
public override IOutputStruct Unformat(byte[] messageBytes, ref int flag)
{
var slaveAddress = BigEndianValueHelper.Instance.GetByte(messageBytes, ref flag);
var functionCode = BigEndianValueHelper.Instance.GetByte(messageBytes, ref flag);
@@ -222,7 +222,7 @@ namespace Modbus.Net.Modbus
#region PLC时间
public class GetSystemTimeModbusInputStruct : InputStruct
public class GetSystemTimeModbusInputStruct : IInputStruct
{
public GetSystemTimeModbusInputStruct(byte slaveAddress)
{
@@ -241,7 +241,7 @@ namespace Modbus.Net.Modbus
public ushort GetCount { get; }
}
public class GetSystemTimeModbusOutputStruct : OutputStruct
public class GetSystemTimeModbusOutputStruct : IOutputStruct
{
public GetSystemTimeModbusOutputStruct(byte slaveAddress, byte functionCode,
byte writeByteCount, ushort year, byte day, byte month, ushort hour, byte second, byte minute,
@@ -267,14 +267,14 @@ namespace Modbus.Net.Modbus
/// </summary>
public class GetSystemTimeModbusProtocal : ProtocalUnit
{
public override byte[] Format(InputStruct message)
public override byte[] Format(IInputStruct message)
{
var r_message = (GetSystemTimeModbusInputStruct) message;
return Format(r_message.SlaveAddress, r_message.FunctionCode,
r_message.StartAddress, r_message.GetCount);
}
public override OutputStruct Unformat(byte[] messageBytes, ref int flag)
public override IOutputStruct Unformat(byte[] messageBytes, ref int flag)
{
var slaveAddress = BigEndianValueHelper.Instance.GetByte(messageBytes, ref flag);
var functionCode = BigEndianValueHelper.Instance.GetByte(messageBytes, ref flag);
@@ -295,7 +295,7 @@ namespace Modbus.Net.Modbus
#region PLC时间
public class SetSystemTimeModbusInputStruct : InputStruct
public class SetSystemTimeModbusInputStruct : IInputStruct
{
public SetSystemTimeModbusInputStruct(byte slaveAddress, DateTime time)
{
@@ -338,7 +338,7 @@ namespace Modbus.Net.Modbus
public ushort Millisecond { get; }
}
public class SetSystemTimeModbusOutputStruct : OutputStruct
public class SetSystemTimeModbusOutputStruct : IOutputStruct
{
public SetSystemTimeModbusOutputStruct(byte slaveAddress, byte functionCode,
ushort startAddress, ushort writeCount)
@@ -363,7 +363,7 @@ namespace Modbus.Net.Modbus
/// </summary>
public class SetSystemTimeModbusProtocal : ProtocalUnit
{
public override byte[] Format(InputStruct message)
public override byte[] Format(IInputStruct message)
{
var r_message = (SetSystemTimeModbusInputStruct) message;
return Format(r_message.SlaveAddress, r_message.FunctionCode,
@@ -372,7 +372,7 @@ namespace Modbus.Net.Modbus
r_message.Month, r_message.Hour, r_message.Second, r_message.Minute, r_message.Millisecond);
}
public override OutputStruct Unformat(byte[] messageBytes, ref int flag)
public override IOutputStruct Unformat(byte[] messageBytes, ref int flag)
{
var slaveAddress = BigEndianValueHelper.Instance.GetByte(messageBytes, ref flag);
var functionCode = BigEndianValueHelper.Instance.GetByte(messageBytes, ref flag);

View File

@@ -8,9 +8,9 @@ namespace Modbus.Net.Modbus
/// <summary>
/// Tcp协议字节伸缩
/// </summary>
public class ModbusTcpProtocalLinkerBytesExtend : ProtocalLinkerBytesExtend
public class ModbusTcpProtocalLinkerBytesExtend : IProtocalLinkerBytesExtend
{
public override byte[] BytesExtend(byte[] content)
public byte[] BytesExtend(byte[] content)
{
//Modbus/Tcp协议扩张前面加6个字节前面4个为0后面两个为协议整体内容的长度
var newFormat = new byte[6 + content.Length];
@@ -22,7 +22,7 @@ namespace Modbus.Net.Modbus
return newFormat;
}
public override byte[] BytesDecact(byte[] content)
public byte[] BytesDecact(byte[] content)
{
//Modbus/Tcp协议收缩抛弃前面6个字节的内容
var newContent = new byte[content.Length - 6];
@@ -31,9 +31,9 @@ namespace Modbus.Net.Modbus
}
}
public class ModbusRtuProtocalLinkerBytesExtend : ProtocalLinkerBytesExtend
public class ModbusRtuProtocalLinkerBytesExtend : IProtocalLinkerBytesExtend
{
public override byte[] BytesExtend(byte[] content)
public byte[] BytesExtend(byte[] content)
{
var crc = new byte[2];
//Modbus/Rtu协议扩张增加CRC校验
@@ -44,7 +44,7 @@ namespace Modbus.Net.Modbus
return newFormat;
}
public override byte[] BytesDecact(byte[] content)
public byte[] BytesDecact(byte[] content)
{
//Modbus/Rtu协议收缩抛弃后面2个字节的内容
var newContent = new byte[content.Length - 2];
@@ -53,9 +53,9 @@ namespace Modbus.Net.Modbus
}
}
public class ModbusAsciiProtocalLinkerBytesExtend : ProtocalLinkerBytesExtend
public class ModbusAsciiProtocalLinkerBytesExtend : IProtocalLinkerBytesExtend
{
public override byte[] BytesExtend(byte[] content)
public byte[] BytesExtend(byte[] content)
{
//Modbus/Ascii协议扩张前面增加:后面增加LRC校验和尾字符
var newContent = new List<byte>();
@@ -70,7 +70,7 @@ namespace Modbus.Net.Modbus
return newContent.ToArray();
}
public override byte[] BytesDecact(byte[] content)
public byte[] BytesDecact(byte[] content)
{
//Modbus/Ascii协议收缩抛弃头尾。
var newContent = new List<byte>();

View File

@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.2.0")]
[assembly: AssemblyFileVersion("1.2.0")]
[assembly: AssemblyVersion("1.2.2")]
[assembly: AssemblyFileVersion("1.2.2")]