Exemplo n.º 1
0
    private static ValueData DeconstructValue(byte[] trame)
    {
        // Taille de la key codé sur 2 byte car c'est un ushort
        ushort keyCount = (ushort)BitConverter.ToInt16(trame, indiceTrame);

        indiceTrame += 2;
        string key = Encoding.ASCII.GetString(trame, indiceTrame, keyCount);

        indiceTrame += keyCount;

        // Type de data codé sur 1 byte
        byte            dataTypeByte = trame[indiceTrame];
        DataTypeTrameId dataType     = (DataTypeTrameId)dataTypeByte;

        indiceTrame++;

        // Taille de la data codé sur 2 byte car c'est un ushort
        ushort dataCount = (ushort)BitConverter.ToInt16(trame, indiceTrame);

        indiceTrame += 2;

        object data = new object();

        switch (dataType)
        {
        case DataTypeTrameId.Numeric:
            data = BitConverter.ToDouble(trame, indiceTrame);
            break;

        case DataTypeTrameId.Alphabetic:
            data = Encoding.ASCII.GetString(trame, indiceTrame, dataCount);
            break;

        case DataTypeTrameId.Boolean:
            data = BitConverter.ToBoolean(trame, indiceTrame);
            break;

        default:
            break;
        }

        return(new ValueData(key, dataType, data));
    }
Exemplo n.º 2
0
 public ValueData(string key, DataTypeTrameId dataType, object data)
 {
     this.Key      = key;
     this.DataType = dataType;
     this.Data     = data;
 }