2017-10-17 10 views
0

I a développé une application Android qui se connecte à un périphérique USB externe pour envoyer et recevoir des messages.Communication USB avec DTR/DTE activé

J'ai suivi les directives de l'API USB Host Android officielle ici (ainsi que quelques autres SO messages): https://developer.android.com/guide/topics/connectivity/usb/host.html

Tout fonctionne bien sauf pour une chose: Il semble que le périphérique USB externe est envoyer des données lorsque mon application n'est pas connectée, ce qui provoque le débordement de ses tampons USB, ce qui arrête le périphérique.

Selon le fabricant de l'appareil la solution serait de permettre DTR/DTE (que je dois admettre que je ne comprends pas vraiment ce qu'il est). Mais cela leur permettrait apparemment de vérifier si mon application écoute et seulement ensuite envoyer leurs données.

Alors, pourriez-vous s'il vous plaît partager un exemple de code de l'activation DTR/DTE sur une connexion USB Android?

Mise à jour:

Après un peu plus de recherche, il semble que je aurais besoin utiliser la méthode UsbDeviceConnection.controlTransfer - mais je ne sais pas ce que les paramètres devraient être.

+0

Vous parlez d'un adaptateur USB-série, non? Que diriez-vous d'en avoir une meilleure qui ne «s'arrête» pas lorsque ses tampons débordent? Un remplissage de mémoire tampon est une chose normale qu'un adaptateur USB-série doit être préparé, et si votre appareil ne peut pas le gérer, alors il est défectueux. Je soupçonne que l'adaptateur est OK et que vous avez juste un problème de logiciel, comme peut-être vous avez besoin de vider le tampon RX lorsque votre application démarre afin de ne pas finir par lire les anciennes données dans votre application. Avec le niveau d'information que vous avez donné, il est difficile de dire quelle est la bonne solution. –

+0

Merci David, c'était aussi ma première pensée - le périphérique USB devrait gérer le problème de remplissage du tampon - mais, encore, je cherchais un moyen de résoudre ce problème du côté Android – Daniel

+0

@DavidGrayson: comment vidanger le RX tampon, pourriez-vous s'il vous plaît partager le code? – Daniel

Répondre