IOW 56

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
rmk
Posts: 7
Joined: Thu Jan 23, 2014 2:42 pm

IOW 56

Post by rmk »

Kann man auch zwei IOW56 gleichzeitig benutzen ?
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW 56

Post by Christoph Jung »

Unter Windows kann man 16 IO-Warrior gleichzeitig benutzen, allerdings nur mit einem Programm (einschränkung durch die iowkit.dll)
Unter Linux sind 8 IO-Warrior gleichzeitig möglich.
Unter Mac OSX weiß ich gerade nicht.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
rmk
Posts: 7
Joined: Thu Jan 23, 2014 2:42 pm

Re: IOW 56

Post by rmk »

und,

wie werden die einzelnen IOW erkannt. Spricht, wie muss man das programmtechnisch lösen ?

Ich programmiere mit PowerBasic 10
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: IOW 56

Post by Guido Körber »

Die IO-Warrior haben eindeutige Seriennummern, über die kann man sie unterscheiden.
rmk
Posts: 7
Joined: Thu Jan 23, 2014 2:42 pm

Re: IOW 56

Post by rmk »

und, wie kann ich die auslesen ?
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW 56

Post by Christoph Jung »

Wir haben ein API mit einer DLL die die Funktionen bereitstellt. Das ganze ist im SDK in unserem Download-Bereich zu finden mit beschreibung der Funktionen und allen nötigen datenblättern.
Die DLL ist in C geschrieben und sollte in PowerBasic eingebunden werden können.
Aber da ich mich mit PowerBasic Null auskenne kann ich da nicht weiterhelfen. Am besten mal Google befragen deis bezüglich oder ein Forum, was speizell
mit PowerBasic zu tun hat.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
Thoene
Posts: 33
Joined: Sat Aug 29, 2009 8:13 pm

Re: IOW 56

Post by Thoene »

Hallo.
Ich habe es noch nicht probiert aber vielleicht hilft das.

'Declarierung der IOW-Kit DLL
DECLARE FUNCTION IowKitOpenDevice LIB "iowkit.dll" ALIAS "IowKitOpenDevice"() AS LONG
DECLARE SUB IowKitCloseDevice LIB "iowkit.dll" ALIAS "IowKitCloseDevice" (BYVAL iowHandle AS LONG)
DECLARE FUNCTION IowKitWrite LIB "iowkit.dll" ALIAS "IowKitWrite" (BYVAL iowHandle AS LONG, _
BYVAL numPipe AS LONG, BYREF buffer AS BYTE, BYVAL length AS LONG) AS LONG
DECLARE FUNCTION IowKitRead LIB "iowkit.dll" ALIAS "IowKitRead" (BYVAL iowHandle AS LONG, _
BYVAL numPipe AS LONG, BYREF buffer AS BYTE, BYVAL length AS LONG) AS LONG
DECLARE FUNCTION IowKitReadNonBlocking LIB "iowkit.dll" ALIAS "IowKitReadNonBlocking" (BYVAL iowHandle AS LONG, _
BYVAL numPipe AS LONG, BYREF buffer AS BYTE, BYVAL length AS LONG) AS LONG
DECLARE FUNCTION IowKitReadImmediate LIB "iowkit.dll" ALIAS "IowKitReadImmediate" _
(BYVAL iowHandle AS LONG, BYREF Value AS LONG) AS LONG
DECLARE FUNCTION IowKitGetNumDevs LIB "iowkit.dll" ALIAS "IowKitGetNumDevs" () AS LONG
DECLARE FUNCTION IowKitGetDeviceHandle LIB "iowkit.dll" ALIAS "IowKitGetDeviceHandle" _
(BYVAL numDevice AS LONG) AS LONG
DECLARE FUNCTION IowKitSetLegacyOpenMode LIB "iowkit.dll" ALIAS "IowKitSetLegacyOpenMode" (BYVAL openMode AS LONG) AS LONG
DECLARE FUNCTION IowKitGetProductId LIB "iowkit.dll" ALIAS "IowKitGetProductId" (BYVAL iowHandle AS LONG) AS LONG
DECLARE FUNCTION IowKitGetRevision LIB "iowkit.dll" ALIAS "IowKitGetRevision" (BYVAL iowHandle AS LONG) AS LONG
DECLARE FUNCTION IowKitGetThreadHandle LIB "iowkit.dll" ALIAS "IowKitGetThreadHandle" (BYVAL iowHandle AS LONG) AS LONG
DECLARE FUNCTION IowKitGetSerialNumber LIB "iowkit.dll" ALIAS "IowKitGetSerialNumber" _
(BYVAL iowHandle AS LONG, BYREF serialNumber AS BYTE) AS LONG
DECLARE FUNCTION IowKitSetTimeout LIB "iowkit.dll" ALIAS "IowKitSetTimeout" _
(BYVAL iowHandle AS LONG, BYVAL TIMEOUT1 AS LONG) AS LONG
DECLARE FUNCTION IowKitSetWriteTimeout LIB "iowkit.dll" ALIAS "IowKitSetWriteTimeout" _
(BYVAL iowHandle AS LONG, BYVAL TIMEOUT1 AS LONG) AS LONG
DECLARE FUNCTION IowKitCancelIo LIB "iowkit.dll" ALIAS "IowKitCancelIo" _
(BYVAL iowHandle AS LONG, BYVAL numPipe AS LONG) AS LONG

DIM iowHandles(16) AS GLOBAL LONG 'Array für die einzelnen IOWs
DIM WD1(63) AS GLOBAL BYTE 'Array für Ausgabedaten Schreiben in die Ports
DIM RD1(63) AS GLOBAL BYTE 'Array für Eingabedaten Leesen aus den Ports
DIM WD2(63) AS GLOBAL BYTE 'Array für Ausgabedaten Schreiben in die Ports
DIM RD2(63) AS GLOBAL BYTE 'Array für Eingabedaten Leesen aus den Ports

iowHandles(0) = IowKitOpenDevice() 'IO-Warrior öffnen WARRIOR1
iowHandles(1) = IowKitOpenDevice() 'IO-Warrior öffnen WARRIOR2 usw.

Iow = IowKitWrite(iowHandles(0), 0, WD1(0), 8)' Schreiben nach IOW1
Iow = IowKitRead (iowHandles(0), 0, RD1(0), 8)' Lesen von IOW1
Iow = IowKitWrite(iowHandles(1), 0, WD2(0), 8)' Schreiben nach IOW2
Iow = IowKitRead (iowHandles(1), 0, RD2(0), 8)' Lesen von IOW2

Viel Glück!
rmk
Posts: 7
Joined: Thu Jan 23, 2014 2:42 pm

Re: IOW 56

Post by rmk »

prima. Danke für die Tipps. Ich probiere es aus und schreibe dann.
Post Reply