Пример #1
0
        public static ModbusTcpMessage Create(byte[] message)
        {
            if (message[7] <= 4 || message[7] == 15 || message[7] == 16)
            {
                return(BasicModbusMessage.Decode(message));
            }

            if (message[7] > 4 && message[7] < 7)
            {
                return(WriteSingleMessage.Decode(message));
            }

            if (message[7] == 8 || message[7] == 11 || message[7] == 12)
            {
                return(DiagnosticsMessage.Decode(message));
            }

            throw new InvalidCastException("Invalid modbus message type.");
        }