Hallo,
ich habe die Aufgabe auf einen Warrior 24 aus zwei Thread zuzugreifen. Ist das möglich? Was muss ich beachten?
Danke Michael Vanderheyden
Zugriff aus mehreren Thraeds
Moderator: Guido Körber
- Christoph Jung
- Posts: 670
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: Zugriff aus mehreren Thraeds
Was soll man dazu sagen. Ja es ist möglich.
Was genau soll denn gemacht werden mit dem IO-Warrior24?
Was genau soll denn gemacht werden mit dem IO-Warrior24?
Re: Zugriff aus mehreren Thraeds
Es soll zwei identische Messplätze geben, deren Ergebnisse per Warrior und Rechner abgefragt werden sollen. Die Messplätze arbeiten unabhängig voneinander und haben einen eigenen Takt. Um die Ergebnisse parallel abgreifen zu können, dachten wir an zwei Threads.
Im Moment arbeitet nur ein Platz an der Software und die Threadfunktion siegt ungefähr so aus:
while not terminateanforderung
iowHandle = IowKitOpenDevice();
while not zyklusende
readWarrior();
....
IowKitCloseDevice(iowHandle);
Kommt der neue Messplatz hinzu muss das umgebaut werden. Es ist sicher nicht ok immer CloseDevice und Open für den Zyklus aufzurufen.
Muss man die Zugriffe auf den Warrior aus mehreren Threads über Synchronisationsobjekte regeln?
Michael
Im Moment arbeitet nur ein Platz an der Software und die Threadfunktion siegt ungefähr so aus:
while not terminateanforderung
iowHandle = IowKitOpenDevice();
while not zyklusende
readWarrior();
....
IowKitCloseDevice(iowHandle);
Kommt der neue Messplatz hinzu muss das umgebaut werden. Es ist sicher nicht ok immer CloseDevice und Open für den Zyklus aufzurufen.
Muss man die Zugriffe auf den Warrior aus mehreren Threads über Synchronisationsobjekte regeln?
Michael
- Christoph Jung
- Posts: 670
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: Zugriff aus mehreren Thraeds
Naja man könnte das Öffnen und schließen außerhalb des Threads vornehmen und die Handles an die Threads durchreichen.
Denn jeder Thread ist eine eigene Instanz und ich glaube dann wird wenn ein Thread OpenDevice() aufruft der Andere ins leere fallen weil
er keine Device-Handles bekommt.
Ansonsten könnte man das Auch nacheinander abarbeiten, wenn es nichts Zeitkritisches ist. Oder wie ist das mit dem Takt gemeint?
Denn jeder Thread ist eine eigene Instanz und ich glaube dann wird wenn ein Thread OpenDevice() aufruft der Andere ins leere fallen weil
er keine Device-Handles bekommt.
Ansonsten könnte man das Auch nacheinander abarbeiten, wenn es nichts Zeitkritisches ist. Oder wie ist das mit dem Takt gemeint?
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
Re: Zugriff aus mehreren Thraeds
oder man verwendet den IOW-Socket-Server (IOWSS) ... (Vorsicht Werbung in eigener Sache)
Gruss Ralf
Gruss Ralf