2014-08-01 update 4
This commit is contained in:
@@ -42,6 +42,12 @@ namespace ModBus.Net
|
|||||||
Protocals.Add(linkProtocal.GetType().Name, linkProtocal);
|
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)
|
public virtual OutputStruct SendReceive(ProtocalUnit unit, params object[] content)
|
||||||
{
|
{
|
||||||
int t = 0;
|
int t = 0;
|
||||||
|
|||||||
@@ -15,12 +15,11 @@ namespace ModBus.Net
|
|||||||
}
|
}
|
||||||
|
|
||||||
public abstract OutputStruct Unformat(byte[] messageBytes, ref int pos);
|
public abstract OutputStruct Unformat(byte[] messageBytes, ref int pos);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="contents"></param>
|
/// <param name="contents"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public byte[] TranslateContent(params object[] contents)
|
public static byte[] TranslateContent(params object[] contents)
|
||||||
{
|
{
|
||||||
bool b = false;
|
bool b = false;
|
||||||
var newContentsList = new List<object>();
|
var newContentsList = new List<object>();
|
||||||
@@ -31,7 +30,7 @@ namespace ModBus.Net
|
|||||||
{
|
{
|
||||||
b = true;
|
b = true;
|
||||||
IEnumerable<object> contentArray =
|
IEnumerable<object> contentArray =
|
||||||
ArrayList.Adapter((Array) content).ToArray(typeof (object)).OfType<object>();
|
ArrayList.Adapter((Array)content).ToArray(typeof(object)).OfType<object>();
|
||||||
newContentsList.AddRange(contentArray);
|
newContentsList.AddRange(contentArray);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -47,54 +46,54 @@ namespace ModBus.Net
|
|||||||
switch (t)
|
switch (t)
|
||||||
{
|
{
|
||||||
case "System.Int16":
|
case "System.Int16":
|
||||||
{
|
{
|
||||||
translateTarget.AddRange(ValueHelper.Instance.GetBytes((short) content));
|
translateTarget.AddRange(ValueHelper.Instance.GetBytes((short)content));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "System.Int32":
|
case "System.Int32":
|
||||||
{
|
{
|
||||||
translateTarget.AddRange(ValueHelper.Instance.GetBytes((int) content));
|
translateTarget.AddRange(ValueHelper.Instance.GetBytes((int)content));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "System.Int64":
|
case "System.Int64":
|
||||||
{
|
{
|
||||||
translateTarget.AddRange(ValueHelper.Instance.GetBytes((long) content));
|
translateTarget.AddRange(ValueHelper.Instance.GetBytes((long)content));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "System.UInt16":
|
case "System.UInt16":
|
||||||
{
|
{
|
||||||
translateTarget.AddRange(ValueHelper.Instance.GetBytes((ushort) content));
|
translateTarget.AddRange(ValueHelper.Instance.GetBytes((ushort)content));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "System.UInt32":
|
case "System.UInt32":
|
||||||
{
|
{
|
||||||
translateTarget.AddRange(ValueHelper.Instance.GetBytes((uint) content));
|
translateTarget.AddRange(ValueHelper.Instance.GetBytes((uint)content));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "System.UInt64":
|
case "System.UInt64":
|
||||||
{
|
{
|
||||||
translateTarget.AddRange(ValueHelper.Instance.GetBytes((ulong) content));
|
translateTarget.AddRange(ValueHelper.Instance.GetBytes((ulong)content));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "System.Single":
|
case "System.Single":
|
||||||
{
|
{
|
||||||
translateTarget.AddRange(ValueHelper.Instance.GetBytes((float) content));
|
translateTarget.AddRange(ValueHelper.Instance.GetBytes((float)content));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "System.Double":
|
case "System.Double":
|
||||||
{
|
{
|
||||||
translateTarget.AddRange(ValueHelper.Instance.GetBytes((double) content));
|
translateTarget.AddRange(ValueHelper.Instance.GetBytes((double)content));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "System.Byte":
|
case "System.Byte":
|
||||||
{
|
{
|
||||||
translateTarget.AddRange(ValueHelper.Instance.GetBytes((byte) content));
|
translateTarget.AddRange(ValueHelper.Instance.GetBytes((byte)content));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
throw new NotImplementedException("没有实现除整数以外的其它转换方式");
|
throw new NotImplementedException("没有实现除整数以外的其它转换方式");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return translateTarget.ToArray();
|
return translateTarget.ToArray();
|
||||||
|
|||||||
Reference in New Issue
Block a user