Измените драйвер устройства Python USB, чтобы использовать только vendor_id и product_id, исключая BCD - PullRequest
0 голосов
/ 27 марта 2010

Я пытаюсь изменить драйвер устройства Android для калибра (программа управления электронными книгами), чтобы он определял устройства только по идентификатору поставщика и идентификатору продукта и исключал BCD.

Драйвер является довольно простым плагином Python и в настоящее время настроен на использование всех трех чисел, но, очевидно, когда устройства Android используют пользовательские сборки Android (например, CyanogenMod для Nexus One), он изменяет BCD, так что калибр перестает распознавать Это.

Текущий код выглядит следующим образом, с простым списком идентификаторов поставщиков, которые затем позволяют идентификаторы продуктов и BCD с ними:

VENDOR_ID   = {
        0x0bb4 : { 0x0c02 : [0x100], 0x0c01 : [0x100]},
        0x22b8 : { 0x41d9 : [0x216]},
        0x18d1 : { 0x4e11 : [0x0100], 0x4e12: [0x0100]},
        0x04e8 : { 0x681d : [0x0222]},
        }

Строка, которую я специально пытаюсь изменить:

0x18d1 : { 0x4e11 : [0x0100], 0x4e12: [0x0100]},

Это строка для определения Nexus One. Мой N1, на котором запущен CyanogenMod 5.0.5, имеет BCD 0x226, и вместо того, чтобы просто добавить его в список, я бы предпочел исключить BCD из процесса распознавания, чтобы любое устройство с идентификатором поставщика 0x18d1 и идентификатором продукта 0x4e11 или 0x4e12 будет признан. Пользовательский rom для Android не меняется достаточно, чтобы специфика имела значение.

Синтаксис, кажется, требует BCD в скобках.

Как мне отредактировать это так, чтобы оно совпадало с чем-либо в этом поле?

1 Ответ

0 голосов
/ 27 марта 2010

Это структура данных, она сама по себе ничего не соответствует. Изменение должно произойти в коде, который использует эту структуру данных для сопоставления. Ничто из того, что вы можете сделать с самой структурой данных, не будет означать «соответствовать всем» , если только не существует какого-либо флага, который распознает соответствующий код.

...