我的操作系统是Windows 7,我使用MIDI-OX作为MIDI实用程序,并使用Wireshark作为嗅探器。
当前在STM32上开发一些MIDI应用程序,我很难理解USB-MIDI事件数据包中电缆编号的含义。 USB MIDI Event packet
USB MIDI specification指出(第16、4页):
电缆编号(CN)是一个介于0x0到0xF之间的值,指示与正在传输数据的端点关联的Embedded MIDI Jack的编号分配。
在我的项目中,我有一个嵌入式ID为3的Jack OUT。当尝试发送USB-Midi事件并将电缆号设置为3时,我的MIDI消息无法被MIDI-OX识别,尽管我看到了由Wireshark。将电缆号更改为0可使MIDI OX识别MIDI事件。 但是我想了解为什么它起作用了。
我认为我混淆了号码分配和杰克ID,那么这个号码分配是什么?
答案 0 :(得分:0)
USB MIDI规范的第3.1节说:
USB-MIDI功能内的每个实体都分配有一个唯一的标识号,即EntityID,它包含在描述符的
bJackID
或bElementID
字段中。值0x00保留用于未定义的ID,从而有效地将USB-MIDI功能(包括Jacks和Elements)中的可寻址实体总数限制为255。
因此不能用于四位电缆号。
“号码分配”是指以下算法(每个人都假装很明显):端点的电缆号从零到比bNumEmbMIDIJack
小一。