ln.ethercat/ln.ethercat/ECDataTypeConverter.cs

42 lines
1.4 KiB
C#

using System;
using System.Text;
using ln.type;
namespace ln.ethercat
{
public static class ECDataTypeConverter
{
public static object ConvertFromEthercat(ECDataTypes dataType, byte[] rawData)
{
if (rawData == null)
return null;
int offset = 0;
switch (dataType)
{
case ECDataTypes.NONE:
return null;
case ECDataTypes.REAL:
return rawData.GetSingle(ref offset, Endianess.BIG);
case ECDataTypes.LREAL:
return rawData.GetDouble(ref offset, Endianess.BIG);
case ECDataTypes.STRING:
return Encoding.ASCII.GetString(rawData);
case ECDataTypes.INT:
return rawData.GetShort(ref offset, Endianess.BIG);
case ECDataTypes.DINT:
return rawData.GetInt(ref offset, Endianess.BIG);
case ECDataTypes.UINT:
return rawData.GetUShort(ref offset, Endianess.BIG);
case ECDataTypes.UDINT:
return rawData.GetUInt(ref offset, Endianess.BIG);
case ECDataTypes.USINT:
return rawData[offset];
default:
return rawData;
}
}
}
}