Forum: PC Hard- und Software Serielle Schnittstelle


von Johann (Gast)


Lesenswert?

Hallo,

ich versuche gerade ein computerbasiertes, universitäres Experiment zum 
Laufen zu bringen.
Von einem Steuer-PC steuer ich über eine Anwendung (Eprime, ein Programm 
zum durchführen psychologischer Experimente) einen anderen PC (auf dem 
ein Eye Tracker läuft) an.

Von dem Steuer-PC aus sende ich Befehle, über die serielle 
Schnittstelle. Ich habe aber folgendes Problem:
Die Software des Eye Tracker reagiert auf die Befehle "StartRecording" 
und "StopRecording"
--> aber im Data-File werden diese Ereignisse nicht immer notiert.

Was ich in der Software des Steuerrechner vorgefunden habe ist folgendes 
Stück Code:

Sub WriteThreeTimes(Data As Integer)
  Dim i As Integer
  for i = 1 to 3
  Serial.WriteInteger Data
  Serial.WriteInteger Data
  Serial.WriteInteger Data
sleep (2000/SamplingRate)
  next
  'Debug.Print "Sleep Time: " & (1000/SamplingRate)
End Sub


D.h. jemand hatte scheinbar schonmal das Problem, dass Ereignisse 
(Integer, die über die serielle Schnittstelle gesendet werden)
nicht zuverlässig GESPEICHERT werden.

Könnte das daran liegen, dass der Computer des Eye Tracker zu langsam 
(Windows 98) ist - oder ist das eher ein Problem mit der Schnittstelle?

Falls jemand Ideen zu diesem Problem hat, wäre ich sehr Dankbar,

Johann

von Johann (Gast)


Lesenswert?

Hallo,

ich versuche gerade ein computerbasiertes, universitäres Experiment zum 
Laufen zu bringen.
Von einem Steuer-PC steuer ich über eine Anwendung (Eprime, ein Programm 
zum durchführen psychologischer Experimente) einen anderen PC (auf dem 
ein Eye Tracker läuft) an.

Von dem Steuer-PC aus sende ich Befehle, über die serielle
Schnittstelle. Ich habe aber folgendes Problem:

--> aber im Data-File werden diese Ereignisse nicht immer notiert.

Was ich in der Software des Steuerrechner vorgefunden habe ist folgendes 
Stück Code:

Sub WriteThreeTimes(Data As Integer)
Dim i As Integer
for i = 1 to 3
Serial.WriteInteger Data
Serial.WriteInteger Data
Serial.WriteInteger Data
sleep (2000/SamplingRate)
next
'Debug.Print "Sleep Time: " & (1000/SamplingRate)
End Sub


D.h. jemand hatte scheinbar schonmal das Problem, dass Ereignisse 
(Integer, die über die serielle Schnittstelle gesendet werden)
nicht zuverlässig Gesendet/Gespeichert werden.

Könnte das daran liegen, dass der Computer des Eye Tracker zu langsam 
(Windows 98) ist - oder ist das eher ein Problem mit der Schnittstelle?

Falls jemand Ideen zu diesem Problem hat, wäre ich sehr Dankbar,

Johann

von The other side of Horst (Gast)


Lesenswert?

Das könnte am fehlenden oder nicht funktionierenden Handshake liegen - 
der Sender sendet zu viele Daten, als daß der Empfänger sie zeitgerecht 
abholen und auswerten kann.

Abhilfe schafft hier eine niedrigere Baudrate (natürlich auf beiden 
Seiten der Verbindung die gleiche ...)

Auch kann es sein, daß das "Protokoll" komplette Grütze ist, gerade bei 
Software, die im akademischen Bereich entwickelt wird, ist das ja eher 
der Standard, wenn nicht gerade technische Informatiker oder 
Übertragungstechniker daran beteiligt sind.

von paul (Gast)


Lesenswert?

>Abhilfe schafft hier eine niedrigere Baudrate (natürlich auf beiden
>Seiten der Verbindung die gleiche ...)

is' gut

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.