THidDevices
Deze component geeft controle over alle compatibele devices die op de PC zijn
aangesloten. Zodra een apparaat wordt aangesloten of losgenomen, detecteert
THidDevices dit, en genereert een event. THidDevices geeft daarnaast de
mogelijkheid van elk aangesloten apparaat de Vendor- en Product ID codes op te
vragen, en verschillende andere gegevens die van een USB apparaat bekend zijn
bij Windows.
Windows herkent aan het VendorID en het ProductID om welk type apparaat het
gaat. Als het nodig zou zijn om een speciale driver te laden, dan probeert
Windows een driver te vinden die hoort bij het VendorID en ProductID die in het
apparaat staan. De Solution chips hebben geen speciale driver nodig.
Een eenvoudig voorbeeld maakt het gebruik van dit component snel duidelijk. U kunt het
voorbeeld project hier downloaden.
THidDevices is afgeleid van TComponent. THidDevices houdt intern een lijst
bij van alle compatibele devices die zijn aangesloten op de PC. In deze lijst
staan dus niet alleen USB Solution apparaten, maar ook compatibele apparaten van
een ander type.
Het aantal apparaten dat op enig moment in de lijst staat, is te verkrijgen
via de NumberOfHidDevices property. De apparaten zijn genummerd van 0 t/m
(NumberOfHidDevices - 1). Met dit nummer is elk van de apparaten uit de lijst te
benaderen. Van elk van deze apparaten kunnen een aantal eigenschappen worden
opgevraagd. Aan de hand van deze eigenschappen is uit te vinden of het een USB
Solution apparaat betreft, dan wel een ander type compatibel apparaat. Een THidDevice
component kan vervolgens aan het THidDevices component gekoppeld worden,
teneinde met één van de apparaten uit de lijst te kunnen communiceren. In het
algemeen zult u één THidDevices component in uw applicatie gebruiken, met
daaraan gekoppeld één of meerdere THidDevice componenten.
Properties
NumberOfHidDevices: Word
Dit is het aantal compatibele apparaten dat momenteel is aangesloten op de
PC. De apparaten zijn genummerd van 0 t/m (NumberOfHidDevices - 1). Gebruik
dit apparaat nummer om een van de onderstaande eigenschappen van een van de
apparaten uit de lijst te verkrijgen. Als er een apparaat bijkomt of wordt
weggenomen, kunnen de apparaat nummers veranderen. NumberOfHidDevices is
READ-ONLY.
VendorID[ Devicenr: Word]: Word
Elke fabrikant van USB apparaten kan bij het USB implementers forum een
unieke Vendor ID aanvragen. Dit nummer wordt in het apparaat geprogrammeerd,
en zorgt ervoor dat Windows de fabrikant van het apparaat kan herkennen. Samen
met het Product ID zorgt het er tevens voor dat Windows het betreffende type
apparaat kan onderscheiden van alle andere apparaten, en daardoor ervoor kan
zorgen dat bij aansluiten van het apparaat de juiste drivers worden geladen. USB Solution chips worden gemaakt door
Leiderdorp
Instruments en hun VendorID is $07A0 (1952)
ProductID[ Devicenr: Word]: Word
Samen met het Vendor ID zorgt dit nummer ervoor dat Windows het betreffende
type apparaat kan onderscheiden van alle andere apparaten, en daardoor ervoor
kan zorgen dat bij aansluiten van het apparaat de juiste drivers worden
geladen. Kijk bij de beschrijving van elk specifiek lid van de
USB Solution familie, welk ProductID erbij hoort. ProductID is READ-ONLY.
VersionNumber[ Devicenr: Word]: Word
Elk type apparaat kan een versie nummer van het apparaat in zich hebben.
Hoewel dit versie nummer als een Word wordt weergegeven, moet het beschouwd
worden als vier BCD getallen. Versienummer $0100 betekent versie 01.00.
VersionNumber is READ-ONLY.
ManufacturerString[ Devicenr: Word]: String
De fabrikant naam kan door de fabrikant als string in een USB apparaat
worden opgeslagen, en met ManufacturerString worden uitgelezen. De fabrikant
naam in een USB Solution apparaat is 'Leiderdorp Instruments'.
ManufacturerString is READ-ONLY.
ProductString[ Devicenr: Word]: String
De naam van het apparaat kan door de fabrikant als string in een apparaat
worden gezet, en met ProductString worden uitgelezen. Deze product naam wordt
door Windows op het scherm getoond als een apparaat voor de allereerste keer
wordt aangesloten, en Windows meldt bijvoorbeeld: 'New hardware found: I/O
Solution.' ProductString is READ-ONLY.
SerialNumberString[ Devicenr: Word]: String
Elk USB apparaat van een bepaald type kan een eigen serienummer hebben. Dit
nummer moet dan uniek zijn voor alle apparaten van het betreffende type. Met
SerialNumberString kan het in het apparaat opgeslagen unieke serienummer
worden uitgelezen. In een USB Solution apparaat wordt geen serienummer
toegepast. In dit geval geeft SerialNumberString een lege string terug.
SerialNumberString is READ-ONLY.
IndexedString[ Devicenr: Word; StringIndex: ULONG]: String
Behalve de bovengenoemde strings, kunnen in een USB apparaat nog een
willekeurig aantal andere strings worden opgeslagen. De betekenis van deze
extra strings hangt helemaal van het type apparaat af. In een USB Solution
apparaat worden deze strings niet gebruikt, en levert IndexedString altijd een
lege string op. In apparaten waar wel van deze extra strings aanwezig zijn, is
de index van de eerste van deze extra strings 0. IndexedString is READ-ONLY.
DevicePath[ Devicenr: Word]: String
USB apparaten worden door Windows benaderd via handles die door CreateFile
routines worden geretourneerd. DevicePath is de naam van de 'file' die voor
het verkrijgen van een dergelijke handle geopend moet worden. Als er een
apparaat bijkomt of wordt weggenomen, kunnen alle apparaat nummers veranderen.
Maar het DevicePath zal hetzelfde blijven zolang een bepaald apparaat
aangesloten is. Normaal gesproken zult u DevicePath niet nodig hebben, omdat
de andere meegeleverde componenten voldoende functies bieden. DevicePath is
READ-ONLY.
Methods
HookHidDevice( HidDevice: THidDevice)
Met deze procedure kan een component van het type THidDevice
aan het THidDevices component gekoppeld worden. THidDevice kan daarna gebruikt
worden om met één van de apparaten uit de lijst die wordt bijgehouden door
THidDevices, te communiceren. Meestal zal het niet nodig zijn deze procedure
rechtstreeks aan te roepen, omdat de koppeling ook tot stand kan worden
gebracht via de object inspector van de Delphi IDE.
UnhookHidDevice( HidDevice: THidDevice)
Met deze procedure wordt een THidDevice
dat aan THidDevices gekoppeld is, hiervan losgemaakt. Meestal zal het niet
nodig zijn deze procedure rechtstreeks aan te roepen, omdat de koppeling
automatisch wordt verwijderd als een THidDevice component wordt verwijderd.
AssociatedHidDevice[ Devicenr: Word]: THidDevice
Met deze functie kan een THidDevice gevonden worden dat is gekoppeld aan
het device met de index Devicenr in de lijst. Als er zo'n THidDevice aan het
device aangesloten is, geeft AssociatedHidDevice dit THidDevice terug, anders
NIL.
DisconnectAll
Hiermee worden alle THidDevice objecten die door THidDevices beheerd
worden, losgekoppeld.
Events
OnDeviceChange: TNotifyEvent
Dit event wordt gegenereerd wanneer er een apparaat wordt losgenomen of
wordt aangesloten. Als er THidDevice
componenten zijn gekoppeld, worden deze gekoppelde THidDevice componenten ook
op de hoogte gesteld van de verandering.
|