THidDevice
Waar THidDevices algemene controle geeft
over alle compatibele devices die op de PC zijn aangesloten, geeft THidDevice de
controle over één specifiek apparaat. Eén of meer THidDevice componenten
wordt gekoppeld met een THidDevices component. Het THidDevice wordt dan
aangesloten (connect) op één van de apparaten uit de lijst die THidDevices
beheert. THidDevice kan dan gebruikt worden om met dat ene specifieke apparaat
te communiceren. Via een THidData array kan data naar het apparaat worden
opgestuurd. Als het apparaat data naar de PC stuurt, genereert THidDevice een
event. THidDevice is afgeleid van TComponent.
Een eenvoudig voorbeeld maakt het gebruik van dit component snel duidelijk. U kunt het
voorbeeld project hier downloaden.
Properties
HidDevices: THidDevices
Dit is een verwijzing naar het meer algemene THidDevices
component. THidDevice kan dan worden aangesloten op één van de apparaten uit
de lijst die THidDevices bijhoudt.
Connected: Boolean
THidDevice kan worden aangesloten op één van de apparaten uit de lijst
die THidDevices bijhoudt. Zolang THidDevice is aangesloten op een apparaat, en
dit apparaat niet is verwijderd, is Connected TRUE.
Handle: THandle
USB apparaten worden door Windows benaderd via een handle. Normaal
gesproken zult u Handle niet nodig hebben, omdat THidDevice voldoende functies
biedt. Handle 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.
Methods
Connect[ DeviceIndex: Word]
Met deze procedure wordt THidDevice aangesloten op het apparaat met nummer
[ DeviceIndex] uit de lijst met apparaten van THidDevices.
Als het niet lukt om aan te sluiten op het apparaat, wordt een USBException
gegenereerd. Als THidDevice eerder al op een apparaat was aangesloten, dan
wordt deze bestaande verbinding eerst verbroken.
Disconnect
Met deze procedure wordt THidDevice losgemaakt van het apparaat waarop het
is aangesloten. Als er een apparaat was aangesloten dat als gevolg van het
aanroepen van de Disconnect procedure wordt losgemaakt, wordt een OnDisconnect
event gegenereerd.
HookHidDataPort( HidDataPort: THidDataPort)
Met deze procedure kan een component van het type THidDataPort
aan het THidDevice component gekoppeld worden. THidDataPort kan daarna
gebruikt worden om met het apparaten waaraan THidDevice is gekoppeld, te
communiceren. THidDataPort geeft de mogelijkheid de 8 bytes waarmee de
communicatie gepaard gaat te beschouwen als 8 losse bytes, 4 short integer, 2
long integers, een int64, of als 64 losse bits. Meestal zal het niet nodig
zijn deze procedure rechtstreeks aan te roepen, omdat de koppeling ook tot
stand kan worden gebracht via de Delphi IDE.
UnhookHidDataPort( HidDataPort: THidDataPort)
Met deze procedure wordt een THidDataPort
die aan een THidDevice gekoppeld is, hiervan losgemaakt. Meestal zal het niet
nodig zijn deze procedure rechtstreeks aan te roepen, omdat de koppeling
automatisch wordt verwijderd als een THidDataPort component wordt verwijderd.
Events
OnDisconnect: TNotifyEvent
Dit event wordt gegenereerd wanneer er het apparaat waaraan THidDevice is
aangesloten, wordt losgenomen.
OnHidData: THidDataEvent
Dit event wordt gegenereerd wanneer het apparaat waaraan THidDevice is
aangesloten data naar de PC gestuurd heeft. Deze data kan in de
THidDevice.OnHidData event handler verwerkt worden. Als een THidDataPort
is gekoppeld, wordt de data tevens naar de THidDataPort gestuurd, en kan de
data via dit component verwerkt worden.
|