IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Ecoute de port et utilisation de librairie


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    octobre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2015
    Messages : 24
    Points : 28
    Points
    28
    Par défaut Ecoute de port et utilisation de librairie
    Bonjour,
    Pour un projet je souhaite "ecouter" un port usb, donc lire toute les trames qui circulent dessus.
    J'ai trouvé la bibliotheque LibUsb mais je ne parvient pas a l'utiliser.. Je l'ajoute bien dans les librairies.
    Sauf que je n'arrive pas a utiliser l'objet car l'import ne fonctionne pas..

    Auriez vous un exemple de "main" avec l'import et un exemple d'utilisation de LibUsb ? (ou equivalent)
    Merci d'avance...

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    septembre 2006
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2006
    Messages : 1 065
    Points : 1 496
    Points
    1 496
    Par défaut
    Bonjour,
    Il faudrait être plus précis sur la librairie utilisée. En effet, dans l'absolue, LibUSB est une librairie C qui de fait n'a rien à voire avec Java. Cette librairie a été portée vers Java via deux API Java différentes : usb4java et LibUsbJava.
    Laquelle essaies-tu d'utiliser ?

    Si la librairie que tu as trouvé ne se compose que d'un seul fichier jar, il te suffit de le copier au bon endroit pour que ton environnement de développement (dont tu ne dis rien) puisse la trouver et te permettre d'importer les classes qu'elle dispense...
    Peut-on voir le code que tu as testé ?
    De plus, certains périphériques utilisent des drivers qui transforment le port USB en port COM. Dans ce cas, inutile de s'encombrer avec une librairie dédié au port USB puisqu'une simple librairie comme RxTx permet de dialoguer avec des ports COM...
    Merci de préciser.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    octobre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2015
    Messages : 24
    Points : 28
    Points
    28
    Par défaut
    Bonjour, merci pour la réponse.
    Dans mon cas j'utilise LibUsbJava , j'ai donc essayer de lire les informations envoyé par ma clef usb.. mais je ne recois rien ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    System.out.println("Debut programme");
            //Extractor mon_extractor = new Extractor();
            Context context = new Context();
            int result = LibUsb.init(context);
            if (result != LibUsb.SUCCESS) throw new LibUsbException("Unable to initialize libusb.", result);
            else { System.out.println("OK");}
            short short_1 = 0x0781;
            short short_2 = 0x5567;
            Device ma_clef = findDevice(short_1,short_2,context);
            // sandisk id produit = 21863(0x5567)  et id vendeur = 1921(0x0781)
     
            DeviceHandle handle = new DeviceHandle();
            result = LibUsb.open(ma_clef, handle);
            if (result != LibUsb.SUCCESS) throw new LibUsbException("Unable to open USB device", result);
            try
            {
                EventHandlingThread thread = new EventHandlingThread();
                thread.run();
     
                // Use device handle here
                System.out.println("Parfait,ouvert");
                result = LibUsb.claimInterface(handle, 1);
                if (result != LibUsb.SUCCESS) throw new LibUsbException("Unable to claim interface", result);
                try
                {
                    System.out.println("Ouverture d'interface");
                    final TransferCallback bodyReceived = new TransferCallback()
                    {
                        @Override
                        public void processTransfer(Transfer transfer)
                        {
                            System.out.println(transfer.actualLength() + " bytes received");
                            LibUsb.freeTransfer(transfer);
                            System.out.println("Asynchronous communication finished");
                            exit = true;
                        }
                    };
                    final TransferCallback headerReceived = new TransferCallback()
                    {
                        @Override
                        public void processTransfer(Transfer transfer)
                        {
                            System.out.println(transfer.actualLength() + " bytes received");
                            ByteBuffer header = transfer.buffer();
                            header.position(12);
                            int dataSize = header.asIntBuffer().get();
                            read(handle, dataSize, bodyReceived);
                            LibUsb.freeTransfer(transfer);
                        }
                    };
     
                    // This callback is called after the ADB CONNECT message body is sent
                    // and starts reads the ADB answer header.
                    final TransferCallback bodySent = new TransferCallback()
                    {
                        @Override
                        public void processTransfer(Transfer transfer)
                        {
                            System.out.println(transfer.actualLength() + " bytes received");
                            read(handle, 24, headerReceived);
                            // write(handle, CONNECT_BODY, receiveHeader);
                            LibUsb.freeTransfer(transfer);
                        }
                    };
     
                    // This callback is called after the ADB CONNECT message header is
                    // sent and sends the ADB CONNECT message body.
                    final TransferCallback headerSent = new TransferCallback()
                    {
                        @Override
                        public void processTransfer(Transfer transfer)
                        {
                            System.out.println(transfer.actualLength() + " bytes sent");
                            //write(handle, CONNECT_BODY, bodySent);
                            LibUsb.freeTransfer(transfer);
                        }
            };
     
                    // Use interface here
                }
                finally
                {
                    result = LibUsb.releaseInterface(handle, 1);
                    if (result != LibUsb.SUCCESS) throw new LibUsbException("Unable to release interface", result);
                }
            }
            finally
            {
                LibUsb.close(handle);
            }
     
     
     
     
            LibUsb.exit(context);

Discussions similaires

  1. Problème avec l'utilisation de librairies
    Par Aradesh dans le forum MFC
    Réponses: 3
    Dernier message: 01/08/2005, 15h00
  2. portage d'une appli utilisant la librairie word
    Par neonico dans le forum MFC
    Réponses: 4
    Dernier message: 23/02/2005, 23h48
  3. Creer et utiliser une librairie externe à l'exécutable
    Par multani dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 06/11/2003, 10h11
  4. Utiliser une librairie graphique
    Par Troopers dans le forum Linux
    Réponses: 6
    Dernier message: 22/08/2003, 11h22
  5. [UDP][Socket] perte de paquets et arret d'ecoute sur port
    Par Guismo1979 dans le forum Développement
    Réponses: 6
    Dernier message: 02/01/2003, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo