USB-MIDI事件数据包中的电缆编号字段代表什么?

时间:2019-05-17 14:32:32

标签: usb midi

我的操作系统是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,那么这个号码分配是什么?

1 个答案:

答案 0 :(得分:0)

USB MIDI规范的第3.1节说:

  

USB-MIDI功能内的每个实体都分配有一个唯一的标识号,即EntityID,它包含在描述符的bJackIDbElementID字段中。值0x00保留用于未定义的ID,从而有效地将USB-MIDI功能(包括Jacks和Elements)中的可寻址实体总数限制为255。

因此不能用于四位电缆号。

“号码分配”是指以下算法(每个人都假装很明显):端点的电缆号从零到比bNumEmbMIDIJack小一。