Beispiel #1
0
        private void ProcessSysexMessage()
        {
            switch (_inputMessage[0])
            {
            case (byte)CommandCode.REPORT_VERSION:
                SendVersionAsSysEx();
                break;

            case (byte)CommandCode.REPORT_FIRMWARE:
                var key = ComputeCommandKey((byte)CommandCode.START_SYSEX, (byte)CommandCode.REPORT_FIRMWARE);
                CompleteTask(key, _inputMessage, 0, _cbInputMessage);
                break;

            case (byte)CommandCode.STRING_DATA:
                int bufferLength = (_cbInputMessage - 1) / 2;
                int i            = 1;
                int j            = 0;
                while (j < bufferLength)
                {
                    // The string length will only be at most half the size of the
                    // stored input buffer so we can decode the string within the buffer.
                    _inputMessage[j] = _inputMessage[i];
                    i++;
                    _inputMessage[j] += (byte)(_inputMessage[i] << 7);
                    i++;
                    j++;
                }
                var str = ConvertToString(_inputMessage, j);
                //.ProcessStringMessage(str);
                break;

            default:
                _dm.ProcessExtendedMessage(_inputMessage, _cbInputMessage);
                break;
            }
        }