Showlib et Usblist – Vidage de poubelle dans Aminet

13 sujets de 1 à 13 (sur un total de 13)

  • Gilloo

      #5534

      Aujourd’hui j’ai décidé de faire dans le tutorial (diffusion de source, nettoyage de printemps du disque dur)

      showlib:

      http://aminet.net/package/dev/c/showlib

      Permet d’afficher la totalité des vecteurs de chaque librarie et chaque device du système. Marche aussi de facon unitaire, genre showlib exec.library ou showlib timer.device…

      Nécessite un assign fd: sur les .fd (disponibles dans tout sdk qui se respecte)

      J’ai eu besoin de faire cet outil pour savoir où était planqué le code de quelques routinettes, histoire de les désassembler.

      J’ai toujours aimé casser mes zouets pour voir ce qu’il ont à l’intérieur.

      L’aspect tuto de cet outil réside dans le parcours correct d’une liste (struct List) cf. le code source.

      usblist:

      http://aminet.net/package/dev/c/usblist

      Liste tous les périphériques usb présents dans le système.

      Merci à centaurz pour ce bout de code.

      Passé entre mes petits doigts agiles (normal mes doigts ont toujours été à Gilles) il est devenu compatible avec TOUS les os, et TOUS les processeurs (cf. le code source)

      Reste plus qu’à attendre la version v0.97 de la nais (hiii haan)

      Merci qui ;-)?

      J’aimerais savoir ce que cela donne sur OS4.0

      Pouvez vous me mailer les sorties de ces deux outils

      Merci ;-)

      Lion

        #92838

        sous os4 :

        6.RAM Disk:usblist> usblist

        USB opened

        USBSysBase at 0x6ff6b4d0

        [0] rawifc at 0x6fe2d710

        class=9 subclass=0

        [1] rawifc at 0x6fe2d510

        class=9 subclass=0

        Bye!

        EDIT : et si je branche mon joypad usb :

        6.RAM Disk:usblist> usblist

        USB opened

        USBSysBase at 0x6ff6b4d0

        [0] rawifc at 0x6fe2d710

        class=9 subclass=0

        [1] rawifc at 0x666b5d50

        vendor= »M »

        class=3 subclass=0

        [2] rawifc at 0x6fe2d510

        class=9 subclass=0

        Bye!

        Gilloo

          #92839

          Lion a écrit :

          sous os4 :

          6.RAM Disk:usblist> usblist

          USB opened

          USBSysBase at 0x6ff6b4d0

          [0] rawifc at 0x6fe2d710

          class=9 subclass=0

          [1] rawifc at 0x6fe2d510

          class=9 subclass=0

          Bye!

          EDIT : et si je branche mon joypad usb :

          6.RAM Disk:usblist> usblist

          USB opened

          USBSysBase at 0x6ff6b4d0

          [0] rawifc at 0x6fe2d710

          class=9 subclass=0

          [1] rawifc at 0x666b5d50

          vendor= »M »

          class=3 subclass=0

          [2] rawifc at 0x6fe2d510

          class=9 subclass=0

          Bye!

          Merci Lion! Ca marche pilpoil!

          J’ai l’impression qu’il y a toutefois un problème sur les chaines retournées par les tags vendor/product/interface.

          Ton joypad ne serait pas de Microsoft ? Le ‘M’ m’intrigue.

          Ce ne serait pas des chaines Unicode par hasard ?

          Dans ce cas comment afficher ces chaines correctement ?

          Les premiers tests sont concluants à savoir:

          – compilation d’un outil pur 68000 multi-os (du wb1.1 au wb4.0)

          – exécution (presque correcte) sur OS4.0

          Dans la journée il devrait y avoir un update sur aminet avec un usblist1 qui affiche des informations en plus.

          Dans ton cas tu devrais avoir int class=3 subclass=0 protocol=0

          Alex

            #92840

            Au hasard les chaine ne sont pas censées ête en UNICODE ? En tout cas dans OS4 je peux lire :

            /*

            ** String descriptor

            **

            ** The String descriptor is a std. Descriptor Header followed by the UNICODE string itself.

            ** The string is *not* NUL terminated - the size of the String descriptor dictates the

            ** length of the string (strlen = dh_Length-2)

            **

            ** Note: This structure is in Little Endian format! Use LE_WORD() macro for 16-bit r/w.

            */

            Ceci explique peut-être cela non ? ;-)

            Gilloo

              #92841

              Alex a écrit :

              Au hasard les chaine ne sont pas censées ête en UNICODE ? En tout cas dans OS4 je peux lire :

              /*

              ** String descriptor

              **

              ** The String descriptor is a std. Descriptor Header followed by the UNICODE string itself.

              ** The string is *not* NUL terminated - the size of the String descriptor dictates the

              ** length of the string (strlen = dh_Length-2)

              **

              ** Note: This structure is in Little Endian format! Use LE_WORD() macro for 16-bit r/w.

              */

              Ceci explique peut-être cela non ? ;-)

              Tu m’étonnes :-) Meuâ et ma manie de ne jamais lire les docs… ;-)

              Donc ce qui est pointé pour les tags (vendor, product, interface) est un descripteur pur et dur identique à ce que le protocole usb fournit. Donc ce n’est pas un char *!

              Merci Alex, je regarderais ça s’il pleut ce vikande.

              On va enfin avoir l’équivalent de la commande lsusb du ninux sur TOUS nos OS.

              Lion

                #92842

                nouveau test avec la version 0.01 :

                6.RAM Disk:usblist> usblist

                USB opened

                USBSysBase at 0x6ff664d0

                [0] rawifc at 0x6fe4b710

                class=9 subclass=0

                [1] rawifc at 0x6fe4b510

                class=9 subclass=0

                Bye!

                avec mon joypad usb (qui n est pas de M$ mais TechTools modèle mobility) :

                6.RAM Disk:usblist> usblist

                USB opened

                USBSysBase at 0x6ff664d0

                [0] rawifc at 0x6fe4b710

                class=9 subclass=0

                [1] rawifc at 0x68031a50

                vendor= »M »

                class=3 subclass=0

                [2] rawifc at 0x6fe4b510

                class=9 subclass=0

                Bye!

                Gilloo

                  #92843

                  Voila, la version 0.02 usblist1, qui affiche sommairement les chaînes unicode et corrige un bug OS4 (mon premier !!! :-D)

                  Toujours au même endroit:

                  http://aminet.net/package/dev/c/usblist

                  Un grand merci aux testeurs!

                  ;-)

                  Lion

                    #92844

                    resultats avec la version 0.02 de usblist :

                    usblist> usblist

                    USB opened

                    USBSysBase at 0x6ff6b4d0

                    [0] rawifc at 0x6fe52710

                    class=9 subclass=0

                    [1] rawifc at 0x6fe52510

                    class=9 subclass=0

                    Bye!

                    avec joypad usb :

                    usblist> usblist

                    USB opened

                    USBSysBase at 0x6ff6b4d0

                    [0] rawifc at 0x6fe52710

                    class=9 subclass=0

                    [1] rawifc at 0x640cad10

                    vendor= »Mega World »

                    class=3 subclass=0

                    [2] rawifc at 0x6fe52510

                    class=9 subclass=0

                    Bye!

                    Gilloo

                      #92845

                      Merci Lion!

                      Unicode Rulez! :-D (ça maaaârche)

                      Gilloo

                        #92846

                        Amis testeurs, bonjour!

                        Une nouvelle version 0.04 est disponible

                        http://aminet.net/package/dev/c/usblist

                        Elle montre la façon de faire et teste les fonctions:

                        USBFindInterface

                        USBGetRawInterfaceAttrs

                        USBNextDescriptor

                        USBFreeDescriptors

                        Si vous avez des codes sources dans le genre, je suis preneur :-)

                        Si vous pouvez me poster la sortie de

                        usblist1 -vv (ou usblist1 -v)

                        sous OS4.0 avec quelques devices usb branchés ce serait cool.

                        bon dimanche! sous vos applaudissements :dance:

                        Lion

                          #92847

                          usblist -vv

                          USB opened

                          001 ID 0000:0000

                          002 ID 07b5:0312 Mega World

                          003 ID 08ec:0020 Intuix

                          004 ID 0000:0000

                          Bye!

                          megaworld -> joypad

                          intuix -> clé USB

                          usblist1 -vv

                          USB opened

                          USBSysBase at 0x6ff6b4d0

                          [1] rawifc at 0x6fe52710

                          product= »Front Roothub (unit 1) »

                          DEVICE (id=1,len=18)

                          USBVer 0100

                          Class 9

                          SubClass 0

                          Protocol 0

                          MaxPacketSize0 64

                          VendorID 0000

                          Product 0000

                          DevVer 0100

                          ManufacturerStr 0

                          ProductStr 1

                          SerialStr 0

                          NumConfigs 1

                          CONFIGURATION (id=2,len=10)

                          TotalLength 27

                          NumInterfaces 1

                          ConfigID 1

                          ConfigStr 0

                          Attributes 64

                          MaxPower 0 (0 mA)

                          INTERFACE (id=4,len=9)

                          InterfaceID 0

                          AltSetting 0

                          NumEndPoints 1

                          Class 9

                          SubClass 0

                          Protocol 0

                          InterfaceStr 0

                          EP (id=5,len=8)

                          Address 81

                          Attributes 03

                          MaxPacketSize 64

                          Interval 255 ms

                          INTERFACE (id=4,len=9)

                          InterfaceID 0

                          AltSetting 0

                          NumEndPoints 1

                          Class 9

                          SubClass 0

                          Protocol 0

                          InterfaceStr 0

                          [2] rawifc at 0x6608e590

                          vendor= »Mega World »

                          product= »USB Game Controllers »

                          DEVICE (id=1,len=18)

                          USBVer 0110

                          Class 0

                          SubClass 0

                          Protocol 0

                          MaxPacketSize0 8

                          VendorID 07b5

                          Product 0312

                          DevVer 0101

                          ManufacturerStr 1

                          ProductStr 2

                          SerialStr 0

                          NumConfigs 1

                          CONFIGURATION (id=2,len=9)

                          TotalLength 34

                          NumInterfaces 1

                          ConfigID 1

                          ConfigStr 0

                          Attributes 160

                          MaxPower 175 (350 mA)

                          INTERFACE (id=4,len=9)

                          InterfaceID 0

                          AltSetting 0

                          NumEndPoints 1

                          Class 3

                          SubClass 0

                          Protocol 0

                          InterfaceStr 0

                          HID (id=33,len=9)

                          bcdHID 0110

                          bCountryCode 0

                          bNumDescriptorType 1

                          bXDescriptorType 34

                          wXDescriptorLength 117

                          EP (id=5,len=7)

                          Address 81

                          Attributes 03

                          MaxPacketSize 8

                          Interval 10 ms

                          INTERFACE (id=4,len=9)

                          InterfaceID 0

                          AltSetting 0

                          NumEndPoints 1

                          Class 3

                          SubClass 0

                          Protocol 0

                          InterfaceStr 0

                          [3] rawifc at 0x6608e690

                          vendor= »Intuix »

                          product= »U3″

                          serial= »0C91076092418909″

                          DEVICE (id=1,len=18)

                          USBVer 0200

                          Class 0

                          SubClass 0

                          Protocol 0

                          MaxPacketSize0 64

                          VendorID 08ec

                          Product 0020

                          DevVer 0200

                          ManufacturerStr 1

                          ProductStr 2

                          SerialStr 3

                          NumConfigs 1

                          CONFIGURATION (id=2,len=9)

                          TotalLength 32

                          NumInterfaces 1

                          ConfigID 1

                          ConfigStr 0

                          Attributes 128

                          MaxPower 47 (94 mA)

                          INTERFACE (id=4,len=9)

                          InterfaceID 0

                          AltSetting 0

                          NumEndPoints 2

                          Class 8

                          SubClass 6

                          Protocol 80

                          InterfaceStr 0

                          EP (id=5,len=7)

                          Address 81

                          Attributes 02

                          MaxPacketSize 64

                          Interval 0 ms

                          EP (id=5,len=7)

                          Address 02

                          Attributes 02

                          MaxPacketSize 64

                          Interval 0 ms

                          INTERFACE (id=4,len=9)

                          InterfaceID 0

                          AltSetting 0

                          NumEndPoints 2

                          Class 8

                          SubClass 6

                          Protocol 80

                          InterfaceStr 0

                          [4] rawifc at 0x6fe52510

                          product= »Rear Roothub (unit 0) »

                          DEVICE (id=1,len=18)

                          USBVer 0100

                          Class 9

                          SubClass 0

                          Protocol 0

                          MaxPacketSize0 64

                          VendorID 0000

                          Product 0000

                          DevVer 0100

                          ManufacturerStr 0

                          ProductStr 1

                          SerialStr 0

                          NumConfigs 1

                          CONFIGURATION (id=2,len=10)

                          TotalLength 27

                          NumInterfaces 1

                          ConfigID 1

                          ConfigStr 0

                          Attributes 64

                          MaxPower 0 (0 mA)

                          INTERFACE (id=4,len=9)

                          InterfaceID 0

                          AltSetting 0

                          NumEndPoints 1

                          Class 9

                          SubClass 0

                          Protocol 0

                          InterfaceStr 0

                          EP (id=5,len=8)

                          Address 81

                          Attributes 03

                          MaxPacketSize 64

                          Interval 255 ms

                          INTERFACE (id=4,len=9)

                          InterfaceID 0

                          AltSetting 0

                          NumEndPoints 1

                          Class 9

                          SubClass 0

                          Protocol 0

                          InterfaceStr 0

                          Bye!

                          Gilloo

                            #92848

                            Merci Lion! il marche impec ce bout de code!

                            et tout ça sans avoir d’os4

                            Prochaines étapes:

                            – charger le descripteur hub (pour savoir le nombre de ports)

                            – charger le descripteur HID.

                            – décoder le HID.

                            Plein de code en perspective!! :sweat:

                            corto

                              #92849

                              Hello Gilloo

                              Je suis à la bourre, je viens juste de tester UsbList vu que je suis en train de regarder l’API de Sirion. D’ailleurs ça m’aide beaucoup, c’est exactement le genre d’outil que j’aurais dû me taper pour commencer pas à pas.

                              Voici ce que j’obtiens :

                              6.Corto:sources/USB/usblist> usblist

                              USB opened

                              001 ID 0000:0000 Front Roothub (unit 1)

                              002 ID 058f:9360 Generic, Mass Storage Device

                              003 ID 0000:0000 Rear Roothub (unit 0)

                              004 ID 0c45:6009 USB camera

                              Bye!

                              Le usblist1 fonctionne bien aussi mais il faudrait rendre le log plus lisible.

                              Sinon, le makefile GCC fonctionne bien. Dans le code, j’ai juste eu à ajouter la déclaration de l’interface IUSBSys.

                              D’ailleurs, il serait peut-être bien de ne faire qu’un seul outil, avec une option « full » ou « verbose » pour avoir le log complet (équivalent de listusb1.

                            13 sujets de 1 à 13 (sur un total de 13)

                            • Vous devez être connecté pour répondre à ce sujet.

                            Forums AmigaOS, MorphOS et AROS Développement Showlib et Usblist – Vidage de poubelle dans Aminet

                            Amiga Impact