Какой поток я должен обработать событие RxTx SerialEvent.DATA_AVAILABLE? - PullRequest
1 голос
/ 17 сентября 2008

Я использую библиотеку RxTx поверх usbserial в дистрибутиве Linux. Библиотека RxTx, похоже, ведет себя совершенно иначе (плохо), чем то, как она работает в последовательном.

Мое приложение имеет несколько потоков, и одна из моих самых больших проблем заключается в том, что из ниоткуда я, кажется, получаю от одного до двух дополнительных байтов в своем потоке. Я не могу понять, откуда они и почему. Эта проблема возникает чаще, когда я пишу в поток RxTx, используя другой поток.

Поэтому мне было интересно, должен ли я обрабатывать чтение в текущем потоке RxTx или мне нужно обрабатывать чтение в другом потоке, когда я получаю событие DATA_AVAILABLE.

Я надеюсь, что у кого-то могут быть хорошие или плохие причины для того или иного действия.

1 Ответ

1 голос
/ 20 сентября 2008

Это всего лишь предположение, но оно может дать вам подсказку.

Возможно ли, что отправитель и получатель совместно используют буфер или что при отправке байты также поступают на вход как-то - я видел это раньше на некоторых встроенных системах.

Лучше всего сначала сделать так, чтобы отправка и получение оставались в одном потоке. Еще одна вещь может заключаться в том, чтобы убедиться, что выходное значение сливается перед попыткой чтения.

Надеюсь, это даст вам некоторую подсказку.

...