ReaktionsTest TX

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail
 

Reaktionstest mit ROBO TX und VB 2008 Console

Einfache Beispiele zum Einstieg in VB 2008 .NET

Vier Lampen an O1, O3, O5 und O7
Vier Taster an I1 - I4

Programm ReaktionEins :
Nach Text auf der Console wird eine 10er-Runde mit vom Programm zufällig gewählte Tasten gestartet : DRÜCKEN. Die Reaktionszeit wird angezeigt.

Programm ReaktionZwei :
In einer Runde über zehn Tasten die zur aufleuchtenden Lampe gehörende Taste drücken. Die einzelnen Reaktionszeiten und die Summe der Reaktionszeiten wird angezeigt. Lampenauswahl und Pausenzeit sind zufällig.

Programm ReaktionEins, der einfachste Fall :

Imports System.Environment
Imports
FishFaceTX

Module
ReaktionEins
  Dim tx As New  
  Sub Main()
    Dim Taste As     Dim StartZeit As     Dim ReaktionsZeit As     Dim ReaktionGesamt As     Dim Zuf As New    
    tx.OpenController("COM4")
    Console.WriteLine("Spiel gestartet")
    ReaktionGesamt = 0
    For i As Integer = 1 To      Taste = Zuf.Next(1, 5)
      Console.WriteLine("Taste : {0:0} drücken", Taste)
      StartZeit = TickCount
      tx.WaitForLow(Taste - 1)
      ReaktionsZeit = TickCount - StartZeit
      Console.WriteLine("Aktuelle Reaktionszeit : {0:0}", ReaktionsZeit)
      ReaktionGesamt += ReaktionsZeit
    Next
    Console.WriteLine("Gesamtzeit : {0:0} MilliSekunden", ReaktionGesamt)

    tx.CloseController()
    Console.ReadLine()
  End Sub
End
Module

Anmerkungen :
- Imports für Zugriff auf TickCount und FishFaceTX.DLL (Über My Projects | Verweise eintrage)
- tx As New FishFace() : Instanzierung der Klasse
- Dim : allerhand Variablen Deklarationen
   Zuf : Objekt für die Bildung von Zufallszahlen, hier mit Parameter 1, d.h. die Folge der Zufallszahlen ist immer 
   gleich, will man das nicht : weglassen, dann orientiert sich Zuf an der akt. Uhrzeit.
- tx.OpenController("COM4") : Herstellen einer Verbindung zum TX Controller (Um den aktuellen COM-Namen festzustellen : RoboTxTest.EXE nutzen)
- tx.WaitForLow und Tickcount : Warten auf Tastendruck, Bestimmen der Wartezeit in Millisekunden.
- Console.WriteLine : Ausgabe der Reaktionzeit und aufaddieren der Zeit
- Next nach Abschluß der For-Schleife : Anzeige der Gesamtzeit.
- tx.CloseController() : Beenden der Verbindung zum TX Controller.
 

Program ReaktionZwei :

Sub Main()
   Dim Taste As Integer ....   Dim Zuf As New   Dim tx = New FishFace()
   tx.OpenController("COM4")
   Console.WriteLine("Spiel gestartet")
   ReaktionGesamt = 0
   tx.Pause(1234)
   For i As Integer = 1 To      Taste = Zuf.Next(1, 5)
      Lampe = Taste * 2 - 1
      tx.SetLamp(CType(CInt      StartZeit = TickCount
      tx.WaitForLow(Taste - 1)
      tx.SetLamp(CType(CInt      ReaktionsZeit = TickCount - StartZeit
      Console.WriteLine("Aktuelle Reaktionszeit : {0:0}", ReaktionsZeit)
      ReaktionGesamt += ReaktionsZeit
      tx.Pause(Zuf.Next(1, 2222))
   Next
   For i As Integer = 1 To 7 Step      tx.SetLamp(CType(CInt    Next
    Console.WriteLine("Gesamtzeit : {0:0} MilliSekunden", ReaktionGesamt)
    tx.Pause(1234)
    tx.CloseController()
    Console.ReadLine()
End
Sub

Anmerkungen : 
- Aufbau wie Eins.
- Hinzugekommen sind die Lampen, die vor dem tx.WaitForLow ein- und danach wieder ausgeschaltet werden. 
  Die Textaufforderung fehlt hier.
- Hinzukommen ist noch mehr Zufall : Eine Zufällige Wartezeit vor dem Schalten der jeweiligen Lampe.
- Das Ende der For-Schleife wird durch Einschalten aller Lampen angezeigt.

Download 

Sources enthalten in DrehzahlD

Stand : 21.01.2010