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

Posted

技术标签:

【中文标题】USB-MIDI 事件数据包中的电缆编号字段代表啥?【英文标题】:What does the Cable Number field represents in an USB-MIDI Event packet?USB-MIDI 事件数据包中的电缆编号字段代表什么? 【发布时间】:2019-05-17 14:32:31 【问题描述】:

我的操作系统是 Windows 7,我使用 MIDI-OX 作为 MIDI 实用程序,使用wireshark 作为嗅探器。

目前在 STM32 上开发一些 MIDI 应用程序,我很难理解 USB-MIDI 事件数据包中电缆编号的含义。 USB MIDI Event packet

USB MIDI specification 声明(第 16、4 页):

电缆编号 (CN) 是一个介于 0x0 到 0xF 之间的值,指示与正在传输数据的端点关联的嵌入式 MIDI 插孔的编号分配。

在我的项目中,我有一个 ID 为 3 的嵌入式 Jack OUT。当尝试使用设置为 3 的电缆编号发送 USB-Midi 事件时,我的 MIDI-OX 无法识别我的 MIDI 消息,尽管它们被看到通过 Wireshark。将电缆编号更改为 0 可使 MIDI 事件被 MIDI OX 识别。 但我想了解它为什么会起作用。

我想我混淆了号码分配和杰克 ID,那么这个号码分配是什么?

【问题讨论】:

【参考方案1】:

USB MIDI 规范第 3.1 节说:

USB-MIDI 函数中的每个实体都被分配了一个唯一的标识号,EntityID,包含在描述符的bJackIDbElementID 字段中。值 0x00 为未定义 ID 保留,有效地将 USB-MIDI 函数(插孔和元素)中可寻址实体的总数限制为 255。

所以这不能用于四位电缆编号。

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

【讨论】:

感谢您的解释。我设法让几个 MIDI 被识别并使用它。此电缆编号是特定类别 MS 批量数据端点描述符中指示的插孔索引。

以上是关于USB-MIDI 事件数据包中的电缆编号字段代表啥?的主要内容,如果未能解决你的问题,请参考以下文章

用wireshake抓到的http数据包中的cookie字段中BDUSS是啥意思啊?

access数据库中表中字段前的黄色符号代表啥?

foxpro中的&代表啥

sap销售订单号各数值代表啥意思呀

Java 的 BST ZoneId 代表啥?

用于计算新记录中的字段的事件驱动数据宏 - MS Access