elomax

[ Techniek ] [ Shop ] [ Site map
[ THidDevices ] THidDevice ] THidDataPort ] THidWaiter ]

Terug
Omhoog

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.

Volgende ]

© 2005...2008 Elomax [Voorwaarden ]