Showlib et Usblist – Vidage de poubelle dans Aminet
13 sujets de 1 à 13 (sur un total de 13)
-
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
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!
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
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 ?
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.
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!
Voila, la version 0.02 usblist1, qui affiche sommairement les chaînes unicode et corrige un bug OS4 (mon premier !!! )
Toujours au même endroit:
http://aminet.net/package/dev/c/usblist
Un grand merci aux testeurs!
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!
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:
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=
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=
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!
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