Чтение USB с помощью ioctl завершается неудачно, поскольку «значение слишком велико для определенного типа данных»Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Чтение USB с помощью ioctl завершается неудачно, поскольку «значение слишком велико для определенного типа данных»

Сообщение Anonymous »

Я пытаюсь прочитать USB-накопитель с помощью ioctl и USBDEVFS_BULK (встроенно на Android). USB-кабель, который я использую, содержит чип FTDI и передает данные с Arduino UNO, который записывает последовательный порт.

Запись на Android, кажется, всегда успешна, но и чтение тоже всегда терпит неудачу или завершается успешно для нескольких записей, а затем постоянно терпит неудачу с сообщением «Значение слишком велико для определенного типа данных» (75). Я использую эту настройку для простого пинг-теста: записываю один байт, порядковый номер на Android; Arduino читает байт и отвечает с тем же порядковым номером.

Я не совсем понимаю, о чем говорит эта ошибка. Насколько я понял, устройство отправило больше данных, чем может вместить буфер, который я передаю в ioctl. Я убедился, что мой Arduino отправляет обратно только 1 байт, и я ожидаю увидеть еще 2 для FTDI, всего 3 байта. Даже увеличение размера буфера, похоже, не решает проблему.

Код: Выделить всё

char mReadData[3];
struct usbdevfs_bulktransfer bulkTransferRead = {
mReadEndpoint,  // Endpoint
3,              // Length in bytes
0,              // Timeout (ms)
mReadData,     // Data
};

ret = ioctl(mFd, USBDEVFS_BULK, &bulkTransferRead);
Это код, который я использую изначально. Если я попытаюсь использовать код Android/Java для чтения и записи (с помощью BulkTransfer()), я столкнусь с той же периодической проблемой при чтении. В Java на Android перед записью/чтением я обязательно выполнил следующие действия:

1) Сброс PIN-кода
2) Установите скорость передачи данных
3) 8N1

Может ли кто-нибудь помочь мне описать, что я неправильно понимаю в отношении FTDI/USB, или объяснить эту ошибку о «значении, слишком большом для определенного типа данных», пожалуйста?

Подробнее здесь: https://stackoverflow.com/questions/273 ... -data-type
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»