42 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
} |