Приветствую всех.
Возникла задача заставить BC04 прикинуться на USB не чем нибудь, а PL2303 от Prolific (USB to COM)
Прикинуться удалось. Изваяние опознано системой (XP) и устройством для которого это все делается, драйвера установлены. Для передачи данных открыто два ендпоинта в bulk режиме.
Данные с bluetooth в usb едут без проблем.
А вот с приемом с usb конкретная грабля - каждая порция данных падает с дополнительным байтом в начале. Это циклический счетчик, я так понимаю, связанный именно с гарантированной доставкой в bulk режиме и служит для отслеживания повторной передачи порции данных. Но какого он падает мне в данные, разве это не дело драйверов csr отрезать его?...ну этот вопрос скорее риторический.
Да все бы ничего пока передача идет малыми порция. Тогда сообщение MESSAGE_MORE_DATA содержит только одну порцию данных и счетчик можно откусить. Но когда плотность потока возрастает, данные уже приходят пачками например 13 байт где на самом деле 1+1 и 1+10 и различить где счетчик уже нельзя. Пробовал входящий стрим мапить через SourceMapHeader, говорит нет хидера, размер ноль.
Попробовал сцепить потоки через TransformSlice с отрезанием первого байта. Данные поехали но криво. Что именно криво пока не выяснил.
Результат выглядит странно - если например в терминалке (использую TeraTerm) включить передачу большого файла без подтверждения с другой стороны, то передача идет рывками с очень большой паузой, что наводит на мысль о проблеме именно с usb.
Как вариант осталось отправить поток на kalimba и там попробовать что-то сделать, но это уж как-то слишком, так что будет на закусь :)
Остался без закуси, калимбы то в BC04 нету... :(
Ну и собственно вопрос - кто имел дело с usb в BC04, отзовитесь, что я делаю не так?