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

Lazarus Pascal Discussion :

[Mac OS X] Communication USB


Sujet :

Lazarus Pascal

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Mac OS X] Communication USB
    Bonjour,

    je poste un message car je tente de réaliser une application multiplateforme ( MAC OX S, Windows et linux) avec Lazarus pour récupérer des données d'une carte électronique en utilisant l'USB.
    Après plusieurs jours de recherche et d'essai j'ai réussi à faire fonctionner un programme en C sur mon MAC (MAC OS X).
    J'ai converti mon code C en Pascal sur lazarus mais je n'arrive pas à le faire fonctionner.
    J'utilise la librairie LIBUSB (ci-jointe).
    Je vous poste aussi mon code en C et en FreePASCAL
    Je vous remercie par avance.
    Je travaille sur MAC.

    Je vous poste mon code en C :
    Code C : 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
     
    #include <stdio.h>
    #include <usb.h>
     
     
    int main(void)
    {
      struct usb_bus *bus;
      struct usb_device *dev;
      int i;
     
      i = 0;
     
      usb_init();
     
      usb_find_busses();
      usb_find_devices();
     
      printf("Detection de la carte USB :       ");
      for (bus = usb_busses; bus; bus = bus->next)
      {
        for (dev = bus->devices; dev; dev = dev->next)
        {
          usb_dev_handle *udev;
     
       if ((dev->descriptor.idVendor == 0x04D8) && (dev->descriptor.idProduct == 0x0005))
       {
          i = 1;
          printf("La carte a ete trouvee");
     
          udev = usb_open(dev);
                if (udev)
          {
          }
          usb_close(udev);
            }
     
        }
      }
      if (i == 0)
      {
         printf("La carte n a  pas ete trouvee. Connectez la carte et reessa");
      }
    }

    mon code en pascal :


    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
    procedure TForm1.Button1Click(Sender: TObject);
    var
      foundvendor,foundprodukt:boolean;
      bus: pusb_bus;
      dev: pusb_device;
      hUSB : pointer;
      ProdStr,Serial:string;
    begin
      foundvendor:=false;
      usb_init;                         // Initialize libusb
      memo1.Lines.Add(usb_strerror);
      if(usb_find_busses<1) then
        showmessage(usb_strerror);
     
      if (usb_find_devices<1) then
        showmessage(usb_strerror);      // Find all devices on all USB devices
     
      bus := usb_get_busses;             // Return the list of USB busses found
      if  bus=nil then
        showmessage(usb_strerror);
     
      while Assigned(bus) do begin
            l := l + 1;
        dev := bus^.devices;
        while Assigned(dev) do begin
          if (dev^.descriptor.idVendor = $04d8) and (dev^.descriptor.idProduct = $0005)  then
          begin
            foundvendor:=true;
            hUSB := usb_open( dev );
     
     
            usb_close(hUSB);
           end;
     
          dev := dev^.next;
        end;
     
        bus := bus^.next;
      end;
     
     
    end;
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/04/2015, 20h36
  2. [USB]Comment utiliser cette API pour la communication USB
    Par fouguasse dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 19/08/2007, 18h18
  3. Routine de Communication USB
    Par JeanneVB dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 24/07/2007, 13h11
  4. Communication USB HID ?
    Par MonQQ dans le forum C++
    Réponses: 1
    Dernier message: 23/04/2007, 11h00
  5. comment peut-on réaliser une communication usb avec un MC moto ?
    Par Super2006 dans le forum Périphériques
    Réponses: 10
    Dernier message: 25/03/2007, 22h38

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