Что представляет собой поле «Номер кабеля» в пакете событий USB-MIDI? - PullRequest
2 голосов
/ 17 мая 2019

Моя ОС - Windows 7, я использую MIDI-OX в качестве утилиты MIDI и Wireshark в качестве анализатора.

В настоящее время разрабатываются некоторые MIDI-приложения на STM32, мне сложно понять значение номера кабеля в пакете событий USB-MIDI. Пакет событий USB MIDI

Спецификация USB MIDI гласит (стр. 16, 4), что:

Номер кабеля (CN) - это значение в диапазоне от 0x0 до 0xF, указывающее назначение номера встроенного разъема MIDI, связанного с конечной точкой, которая передает данные.

В моем проекте у меня есть встроенный разъем Jack OUT с идентификатором 3. При попытке отправить событие USB-Midi с номером кабеля, установленным на 3, мои MIDI-сообщения не были распознаны моим MIDI-OX, хотя их видели по Wireshark. Изменение номера кабеля на 0 сделало MIDI-события распознаваемыми MIDI OX. Но я хочу понять, почему это заставило его работать.

Я думаю, что я перепутал присвоение номера и Jack ID, так что это за назначение номера?

1 Ответ

0 голосов
/ 17 мая 2019

Раздел 3.1 спецификации USB MIDI гласит:

Каждому объекту в функции USB-MIDI назначается уникальный идентификационный номер, EntityID, содержащийся в поле bJackID или bElementIDдескриптора.Значение 0x00 зарезервировано для неопределенного идентификатора, фактически ограничивая общее количество адресуемых объектов в функции USB-MIDI (как разъемы, так и элементы) до 255.

, поэтому его нельзя использовать для четырехбитовый номер кабеля.

То, что «назначение номера» относится к следующему алгоритму (который каждый притворяется очевидным): номера кабелей конечной точки от нуля до единицы меньше, чем bNumEmbMIDIJack.

...