elomax

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

Terug
Omhoog

THidWaiter

Als u een apparaat voorziet van een Solution chip, zal Windows dit apparaat kunnen herkennen zodra het wordt aangesloten, en de juiste drivers laden. De applicatie software die u zelf schrijft voor het apparaat wordt niet automatisch gestart. Het THidWaiter component geeft de mogelijkheid de voor het apparaat geschreven applicatie automatisch te activeren wanneer het apparaat wordt aangesloten, en weer te de-activeren wanneer het apparaat wordt losgenomen.

Een voorbeeld vindt u hier. Als u dit voorbeeld start, denk er dan aan dat het programma niet gestopt wordt als u op 'sluiten' drukt. In plaats daarvan verdwijnt het naar de tray. Als u het programma echt wilt sluiten klikt u met de rechter muisknop op het icoon in de tray, en kiest u 'close' uit het popup menu.

Deze component is afgeleid van THidDevices, en geeft dezelfde functionaliteit als THidDevices. THidWaiter geeft daarnaast echter ook de controle over de applicatie die voor een bepaald apparaat is geschreven. THidWaiter kan ervoor zorgen dat deze applicatie onzichtbaar op de achtergrond staat te wachten totdat een geschikt type apparaat wordt aangesloten. Zodra dit gebeurt, kan de applicatie op de voorgrond gebracht worden. Als het apparaat dan weer wordt losgenomen, kan de applicatie weer naar de achtergrond gebracht worden. Als de applicatie op de achtergrond staat, is er optioneel alleen een icoon in de icon-tray zichtbaar. De icon-tray is het deel van de taakbalk waar ook de datum en tijd in staan (indien dit zo ingesteld is in Windows.) Het is ook mogelijk de applicatie volkomen onzichtbaar te maken. Op de desktop is dan niet te zien dat de applicatie aanwezig is, alleen in de taak lijst die wordt getoond na Ctrl-Alt-Del zal de applicatie genoemd worden.

Zodra een apparaat wordt aangesloten of losgenomen, detecteert THidWaiter dit, en genereert een event. THidWaiter geeft 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. Hierdoor is het mogelijk te onderzoeken of het apparaat dat werd aangesloten van het juiste type is, dat wil zeggen van het type waarvoor de applicatie geschreven is. Als dit inderdaad zo is, kan de applicatie op de voorgrond gebracht worden. Het lijkt dan voor de gebruiker alsof het aansluiten van het apparaat automatisch het bijbehorende programma activeert.

THidWaiter houdt intern een lijst bij van alle compatibele devices die zijn aangesloten op de PC. In deze lijst staan dus niet alleen 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 Solution apparaat betreft, dan wel een ander type compatibel apparaat. Een THidDevice component kan vervolgens aan het THidWaiter component gekoppeld worden, teneinde met één van de apparaten uit de lijst te kunnen communiceren. In het algemeen zult u één THidWaiter 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.

Icon: TIcon

Dit is het icoon dat op de icon-tray getoond wordt.

TaskVisible: Boolean

Als TaskVisible de waarde 'TRUE' krijgt, wordt de applicatie op de voorgrond geplaatst. Krijgt TaskVisible de waarde 'FALSE' dan wordt de applicatie onzichtbaar gemaakt, en is er alleen nog het icoon op de icon-tray dat de aanwezigheid van de applicatie verraadt. Dit is dus niet hetzelfde als het minimaliseren van de applicatie, omdat daarbij op de taakbalk een knop wordt getoond waarbij de applicatie weer getoond kan worden.

Hint: String

Als de gebruiker met de muiscursor boven het icoon op de icon-tray zweeft, wordt deze tekst getoond.

IconVisible: Boolean

Als TaskVisible de waarde 'TRUE' krijgt, wordt de applicatie op de voorgrond geplaatst. Krijgt TaskVisible de waarde 'FALSE' dan wordt de applicatie onzichtbaar gemaakt, en is er alleen nog het icoon op de icon-tray dat de aanwezigheid van de applicatie verraadt. En zelfs dit icoon kan onzichtbaar gemaakt worden, waardoor aan niets meer is te zien dat het programma draait. Als IconVisible 'TRUE' is, is het icoon op de icon-tray zichtbaar. Als IconVisible 'FALSE' is, is het icoon op de icon-tray onzichtbaar.

PopupMenu: TPopupMenu

Als de gebruiker met de rechter muisknop op het icoon op de icon-tray klikt, wordt dit lokale menu getoond.

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.

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.

OnClick: TNotifyEvent

Dit event wordt gegenereerd wanneer de gebruiker met de linker muisknop op het icoon op de icon-tray klikt.

OnDblClick: TNotifyEvent

Dit event wordt gegenereerd wanneer de gebruiker met de linker muisknop dubbel-klikt op het icoon op de icon-tray.

Vorige ]

© 2005...2008 Elomax [Voorwaarden ]