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; } } } }