communiquer en usb entre une application Android et un microcontrôleur

  • Réponses :1
Ahmed Sabbani
  • Posts de Forum 2

13 mai 2015 à 10:13:32 via site

Bonjour,

j'essaye de réaliser une application android qui communique en usb avec une carte électronique à base de microcontrôleur msp430 d'une façon asynchrone, alors j'arrive à établir la connexion entre à la carte et l'application, mais pour envoyer des données et recevoir la réponse je n'arrive pas toujours à le faire, voici le code que j'utilise dont le but d'envoyer le caractère "T" et de recevoir la réponse en asynchrone (le firmeware dans le microcontrôleur envoi la date à la réception de la lettre "T"). pouvez vous m'aidez

void getLokerTime(UsbDeviceConnection connection){

int bufferMaxLength=endPointWrite.getMaxPacketSize();

ByteBuffer buffer = ByteBuffer.allocate(bufferMaxLength);
UsbRequest request = new UsbRequest(); // create an URB


request.initialize(connection, endPointWrite);

buffer.putChar('T');

// queue the outbound request
boolean retval = request.queue(buffer, 1); 

Toast.makeText(getApplicationContext(), " envoi de la donnée " + retval  , Toast.LENGTH_SHORT).show();
if (connection.requestWait() == request) { 
    //if(retval == true){
         // wait for confirmation (request was sent)
         UsbRequest inRequest = new UsbRequest(); 
         // URB for the incoming data
         inRequest.initialize(connection, endPointRead); 
         // the direction is dictated by this initialisation to the incoming endpoint.
         if(inRequest.queue(buffer, bufferMaxLength) == true){
             connection.requestWait(); 
              // wait for this request to be completed
              // at this point buffer contains the data received
             byte[] dst = new byte[8];
             buffer.get(dst);
             buffer.clear();
             String contenu;


            //byte[] data = buffer.array();
            //String str = new String( data);


             try {

                contenu = new String(dst , "UTF-8");
                Toast.makeText(getApplicationContext(), " le contenu du buffer : " +  contenu , Toast.LENGTH_SHORT).show();
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

         }
    }

}

Répondre
Fred Renoir
  • Posts de Forum 30

25 mai 2016 à 03:24:23 via site

Bonjour,
Je pense que tu devrais consulter des tutoriels Android ou même suivre des formations pour trouver des pistes. Ainsi, tu peux résoudre ton problème.

Répondre