From a6e06afb6d711f0c65bab8e64190fc9a338acbbe Mon Sep 17 00:00:00 2001 From: parallelbgls Date: Fri, 1 Aug 2014 13:59:48 +0800 Subject: [PATCH] 2014-08-01 update 4 --- NA200H/ModBus.Net/BaseProtocal.cs | 6 +++ NA200H/ModBus.Net/ProtocalUnit.cs | 83 +++++++++++++++---------------- 2 files changed, 47 insertions(+), 42 deletions(-) diff --git a/NA200H/ModBus.Net/BaseProtocal.cs b/NA200H/ModBus.Net/BaseProtocal.cs index c98e6a6..bf9d574 100644 --- a/NA200H/ModBus.Net/BaseProtocal.cs +++ b/NA200H/ModBus.Net/BaseProtocal.cs @@ -42,6 +42,12 @@ namespace ModBus.Net Protocals.Add(linkProtocal.GetType().Name, linkProtocal); } + public virtual byte[] SendReceive(params object[] content) + { + int t; + return _protocalLinker.SendReceive(ProtocalUnit.TranslateContent(content)); + } + public virtual OutputStruct SendReceive(ProtocalUnit unit, params object[] content) { int t = 0; diff --git a/NA200H/ModBus.Net/ProtocalUnit.cs b/NA200H/ModBus.Net/ProtocalUnit.cs index cb841f3..f000898 100644 --- a/NA200H/ModBus.Net/ProtocalUnit.cs +++ b/NA200H/ModBus.Net/ProtocalUnit.cs @@ -15,12 +15,11 @@ namespace ModBus.Net } public abstract OutputStruct Unformat(byte[] messageBytes, ref int pos); - /// /// /// /// - public byte[] TranslateContent(params object[] contents) + public static byte[] TranslateContent(params object[] contents) { bool b = false; var newContentsList = new List(); @@ -31,7 +30,7 @@ namespace ModBus.Net { b = true; IEnumerable contentArray = - ArrayList.Adapter((Array) content).ToArray(typeof (object)).OfType(); + ArrayList.Adapter((Array)content).ToArray(typeof(object)).OfType(); newContentsList.AddRange(contentArray); } else @@ -47,54 +46,54 @@ namespace ModBus.Net switch (t) { case "System.Int16": - { - translateTarget.AddRange(ValueHelper.Instance.GetBytes((short) content)); - break; - } + { + translateTarget.AddRange(ValueHelper.Instance.GetBytes((short)content)); + break; + } case "System.Int32": - { - translateTarget.AddRange(ValueHelper.Instance.GetBytes((int) content)); - break; - } + { + translateTarget.AddRange(ValueHelper.Instance.GetBytes((int)content)); + break; + } case "System.Int64": - { - translateTarget.AddRange(ValueHelper.Instance.GetBytes((long) content)); - break; - } + { + translateTarget.AddRange(ValueHelper.Instance.GetBytes((long)content)); + break; + } case "System.UInt16": - { - translateTarget.AddRange(ValueHelper.Instance.GetBytes((ushort) content)); - break; - } + { + translateTarget.AddRange(ValueHelper.Instance.GetBytes((ushort)content)); + break; + } case "System.UInt32": - { - translateTarget.AddRange(ValueHelper.Instance.GetBytes((uint) content)); - break; - } + { + translateTarget.AddRange(ValueHelper.Instance.GetBytes((uint)content)); + break; + } case "System.UInt64": - { - translateTarget.AddRange(ValueHelper.Instance.GetBytes((ulong) content)); - break; - } + { + translateTarget.AddRange(ValueHelper.Instance.GetBytes((ulong)content)); + break; + } case "System.Single": - { - translateTarget.AddRange(ValueHelper.Instance.GetBytes((float) content)); - break; - } + { + translateTarget.AddRange(ValueHelper.Instance.GetBytes((float)content)); + break; + } case "System.Double": - { - translateTarget.AddRange(ValueHelper.Instance.GetBytes((double) content)); - break; - } + { + translateTarget.AddRange(ValueHelper.Instance.GetBytes((double)content)); + break; + } case "System.Byte": - { - translateTarget.AddRange(ValueHelper.Instance.GetBytes((byte) content)); - break; - } + { + translateTarget.AddRange(ValueHelper.Instance.GetBytes((byte)content)); + break; + } default: - { - throw new NotImplementedException("没有实现除整数以外的其它转换方式"); - } + { + throw new NotImplementedException("没有实现除整数以外的其它转换方式"); + } } } return translateTarget.ToArray();