15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung...

Preview:

Citation preview

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

PDV VertiefungPDV Vertiefung

ProjektProjekt

GeschwindigkeitsmessungGeschwindigkeitsmessung

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Positionsbestimmung einer Modelleisenbahn durch Positionsbestimmung einer Modelleisenbahn durch Geschwindigkeitsmessung.Geschwindigkeitsmessung.

MIT :MIT :

– Messvorrichtung Messvorrichtung – Programm zurProgramm zur Geschwindigkeitsermittlung Geschwindigkeitsermittlung – Weiterverarbeitung durch JavaprogrammWeiterverarbeitung durch Javaprogramm

AufgabenstellungAufgabenstellung

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

ProjektplanungProjektplanung

Umsetzung der Messung durch Umsetzung der Messung durch Funkmaus.Funkmaus.

Entwicklungsumgebung (C++, VB, Java, Entwicklungsumgebung (C++, VB, Java, C#,….).C#,….).

Laufzeitumgebung des fertigen Laufzeitumgebung des fertigen Programms (Windows, Linux, Dos).Programms (Windows, Linux, Dos).

Schnittstelle für Java Programm.Schnittstelle für Java Programm.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

ProjektplanungProjektplanung

Was für ein Maustyp ?Was für ein Maustyp ?USB FunkmausUSB Funkmaus

USB Funkmaus mit seriellem AdapterUSB Funkmaus mit seriellem Adapter

PS2 FunkmausPS2 Funkmaus

Serielle FunkmausSerielle Funkmaus

ProblemProblemSerielle Funkmaus nur schwer bzw. gar nicht zu Serielle Funkmaus nur schwer bzw. gar nicht zu beschaffenbeschaffen

Serieller Adapter ist nicht immer mit jeder USB Serieller Adapter ist nicht immer mit jeder USB Maus kompatibelMaus kompatibel

Deshalb USB Maus

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Weitere ProblemeWeitere Probleme

Messmaus darf nicht als „normale Maus“ Messmaus darf nicht als „normale Maus“ vom BS erkannt werden. (Messverfälschung)vom BS erkannt werden. (Messverfälschung)

Keinen direkten Zugriff auf Hardware unter Keinen direkten Zugriff auf Hardware unter Win2000/XP/NTWin2000/XP/NT

Einsatz eines generischen Treibers mit Win32 Einsatz eines generischen Treibers mit Win32 API SchnittstelleAPI Schnittstelle

VorteileVorteile

Plug & Play durch USB TreiberPlug & Play durch USB Treiber

Läuft unter fast allen gängigen BS Läuft unter fast allen gängigen BS (Win95/98/2000/NT/XP)(Win95/98/2000/NT/XP)

HW wird nicht als Maus erkannt vom HW wird nicht als Maus erkannt vom BetriebssystemBetriebssystem

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Aufbau des Aufbau des UUniversal niversal SSerial erial BBusus

Alle Aktivitäten gehen vom Master (PC) aus.Alle Aktivitäten gehen vom Master (PC) aus.

Datenpakete werden wahlweise von 8 – 256 Bytes Datenpakete werden wahlweise von 8 – 256 Bytes versendet/empfangen.versendet/empfangen.

Jedes USB Gerät hat :Jedes USB Gerät hat :- 1 Device-Deskriptor- 1 Device-Deskriptor- 1 od. mehrer Configuration-Deskriptor- 1 od. mehrer Configuration-Deskriptor- 1 od. mehrer Interface-Deskriptor- 1 od. mehrer Interface-Deskriptor- 1 od. mehrer Endpoint-Deskriptor- 1 od. mehrer Endpoint-Deskriptor

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

USB Descriptor HierarchieUSB Descriptor Hierarchie

Das System fragt neben dem Konfiguration-, Interface- auch die Endpoint-Deskriptoren ab.

Jedes Gerät wird anhand der beiden 16-Bit-Zahlen (Vendor-ID/Produkt-ID) genau Identifiziert.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Einbindung des generischen USB TreiberEinbindung des generischen USB Treiber

Benutzt wurde das USBIO Development Kit V2.0(LT) Benutzt wurde das USBIO Development Kit V2.0(LT) der Firma Thesycon.der Firma Thesycon.

Durch Benutzung der Programmierschnittstellen Durch Benutzung der Programmierschnittstellen wurde ein direktes Auslesen der Daten von der wurde ein direktes Auslesen der Daten von der USB Maus möglich.USB Maus möglich.

Programm ist als Freeware zu bekommen.Programm ist als Freeware zu bekommen.

Entwicklung eines eigenen Treibers entfällt.Entwicklung eines eigenen Treibers entfällt.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Win32 USB Treiber StackWin32 USB Treiber Stack

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Einbindung des generischen USB TreiberEinbindung des generischen USB Treiber

Einfache Installation durch Setuproutine.Einfache Installation durch Setuproutine.

Nach der Installation erfolgt die Konfiguration Nach der Installation erfolgt die Konfiguration (Umleiten des gewünschten USB Gerätes).(Umleiten des gewünschten USB Gerätes).

Die Funkmaus wird hier als HID (Human Die Funkmaus wird hier als HID (Human Interface Device) bezeichnet.Interface Device) bezeichnet.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Einbindung des generischen USB TreiberEinbindung des generischen USB Treiber

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipeDas Programm ReadPipe

Die Hauptaufgaben :Die Hauptaufgaben :

Stellt die Verbindung zum USB Gerät her.Stellt die Verbindung zum USB Gerät her.

Ließt die Daten kontinuierlich aus der USB Maus aus.Ließt die Daten kontinuierlich aus der USB Maus aus.

Errechnet aus diesen die Aktuelle Geschwindigkeit.Errechnet aus diesen die Aktuelle Geschwindigkeit.

Speichert Messdaten in eine Textdatei für spätere Speichert Messdaten in eine Textdatei für spätere Auswertung.Auswertung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipeDas Programm ReadPipe

Das Programm wird momentan noch mit 2 Parametern aufgerufen.Das Programm wird momentan noch mit 2 Parametern aufgerufen.Para1 = Datei zum Speichern der MessdatenPara1 = Datei zum Speichern der MessdatenPara2 = Endpoint Adresse des USB Gerätes z.B. 0x81Para2 = Endpoint Adresse des USB Gerätes z.B. 0x81

Folgende Include Dateien werden benötigt :Folgende Include Dateien werden benötigt :#include <windows.h>#include <windows.h> #include <stdio.h>#include <stdio.h>#include <iostream.h>#include <iostream.h> #include <conio.h>#include <conio.h>#include <stdlib.h>#include <stdlib.h> #include <sys/timeb.h>#include <sys/timeb.h>#include <sys/types.h>#include <sys/types.h> #include <string.h>#include <string.h>#include <time.h>#include <time.h> #include <winioctl.h>#include <winioctl.h>#include <setupapi.h>#include <setupapi.h> #include "usbio_i.h„#include "usbio_i.h„#include "usbspec.h“#include "usbspec.h“

Die Includedatei usbio_i.h stellt USBIO Treiber Interface da.Die Includedatei usbio_i.h stellt USBIO Treiber Interface da.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipeDas Programm ReadPipe

Die externe Funktion IoctlSync( )Die externe Funktion IoctlSync( )

Die IoctlSync ist eine generische Unterstützungsfunktion,Die IoctlSync ist eine generische Unterstützungsfunktion,

um die IOCTL Request´s zum USBIO Gerätetreiberum die IOCTL Request´s zum USBIO Gerätetreiber

weiterzuleiten. Diese Funktion wird intern verwendet, umweiterzuleiten. Diese Funktion wird intern verwendet, um

die asynchrone USBIO API zu handeln. Sie ruft unterdie asynchrone USBIO API zu handeln. Sie ruft unter

anderem den Gerätetreiber auf.anderem den Gerätetreiber auf.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipe Das Programm ReadPipe Funktion IoctlSync()Funktion IoctlSync()

DWORDIoctlSync( HANDLE FileHandle, DWORD IoctlCode, const void *InBuffer, DWORD InBufferSize, void *OutBuffer, DWORD OutBufferSize, DWORD *BytesReturned ){ DWORD Status; DWORD BytesRet = 0; BOOL succ; OVERLAPPED Overlapped; ZeroMemory(&Overlapped,sizeof(Overlapped)); Overlapped.hEvent = CreateEvent(NULL,FALSE,FALSE,NULL); if ( Overlapped.hEvent==NULL ) { return USBIO_ERR_NO_MEMORY; }

/*Ruft den Gerätetreiber*/ succ = DeviceIoControl( FileHandle, // driver handle IoctlCode, // IOCTL code (void*)InBuffer, // input buffer InBufferSize, // input buffer size OutBuffer, // output buffer OutBufferSize, // output buffer groesse &BytesRet, // anzahl der zurückgegebenen bytes &Overlapped // OVERLAPPED structure ); if ( succ ) { Status = USBIO_ERR_SUCCESS; } Else { ……………………

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipe Das Programm ReadPipe Main()Main()

Auflisten aller angeschlossener USBIO Auflisten aller angeschlossener USBIO Geräte mit der Funktion Geräte mit der Funktion SetupDiGetClassDevs( );SetupDiGetClassDevs( );

Aufzählen der Geräte-InterfacesAufzählen der Geräte-Interfaces

Auslesen der Interfaces Detail DatenAuslesen der Interfaces Detail Daten

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipe Das Programm ReadPipe Main()Main()

Öffnen des Gerätes mit der Funktion Öffnen des Gerätes mit der Funktion CreateFile( ); // Gerätehandle erstellenCreateFile( ); // Gerätehandle erstellen

Danach Konfiguration des USB Gerätes Danach Konfiguration des USB Gerätes durch Aufruf der Funktion IoctlSync( ) durch Aufruf der Funktion IoctlSync( )

Nun muss noch der Gerätehandle an eine Nun muss noch der Gerätehandle an eine Pipe gebunden werden, wieder durch Pipe gebunden werden, wieder durch IoctlSync( ) // nur eine Pipe pro HandleIoctlSync( ) // nur eine Pipe pro Handle

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipe Das Programm ReadPipe Main()Main()

Herzstück des Programms:Herzstück des Programms:

Endlos For Schleife wird nur bei _kbhit() Endlos For Schleife wird nur bei _kbhit() unterbrochen.unterbrochen.Mit der Funktion ReadFile() lesen wir nun Mit der Funktion ReadFile() lesen wir nun die Daten in unseren Buffer.die Daten in unseren Buffer.Abfrage ob das Auslesen korrekt gelaufen Abfrage ob das Auslesen korrekt gelaufen ist ist Buffer auslesen und Geschwindigkeit Buffer auslesen und Geschwindigkeit ausrechnen.ausrechnen.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipe Das Programm ReadPipe Main()Main()

BufferPosition=2;BufferPosition=2;result=(char)(Buffer[BufferPosition]);result=(char)(Buffer[BufferPosition]);

sum = sum+result;sum = sum+result;

BufferPosition=BufferPosition+4;BufferPosition=BufferPosition+4;

stop = clock();stop = clock();VerstricheneTime = (double)(stop - start) / CLOCKS_PER_SEC;VerstricheneTime = (double)(stop - start) / CLOCKS_PER_SEC;GesamtTime = (double)(stop - gtime) / CLOCKS_PER_SEC;GesamtTime = (double)(stop - gtime) / CLOCKS_PER_SEC;if (VerstricheneTime >= MSEC)if (VerstricheneTime >= MSEC){{ start = clock();start = clock(); deltasum = sum - tmpsum;deltasum = sum - tmpsum; tmpsum = sum;tmpsum = sum; strecke = (double)((double)(deltasum*EICHUNG)/MOUSE_AUFLOESUNG);strecke = (double)((double)(deltasum*EICHUNG)/MOUSE_AUFLOESUNG); gesamtstrecke = (double)((double)(sum*EICHUNG)/MOUSE_AUFLOESUNG);gesamtstrecke = (double)((double)(sum*EICHUNG)/MOUSE_AUFLOESUNG); geschwindigkeit = (strecke/VerstricheneTime);geschwindigkeit = (strecke/VerstricheneTime);………….//Ausgabe .//Ausgabe }}

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Aufbau einer Maus IAufbau einer Maus I

Logitech Funkmaus(Logi CL Maus €32)Logitech Funkmaus(Logi CL Maus €32)

Reichweite ca. 2mReichweite ca. 2m

Ball an der Unterseite eingelassenBall an der Unterseite eingelassen

Übertragung der Bewegung über eine Übertragung der Bewegung über eine Walze zu der CodierscheibeWalze zu der Codierscheibe

Abnahme der Bewegung mit Leucht- und Abnahme der Bewegung mit Leucht- und FotodiodeFotodiode

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Aufbau einer Maus IIAufbau einer Maus II

Signale werden von Chip codiertSignale werden von Chip codiert

Codierung in 5 Byte breite WörterCodierung in 5 Byte breite Wörter

11 22 33 44 55

0000 0000 FAFA 0000 0000KnöpfeKnöpfe Links-Links-

RechtsRechtsVor/Vor/ZurückZurück

Scroll-Scroll-RadRad

????

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Anforderungen an die MausAnforderungen an die Maus

USB (wegen Hilfstool)USB (wegen Hilfstool)

Ball zur Bewegungsaufnahme (wegen Ball zur Bewegungsaufnahme (wegen Übertragung Achse-Codierscheibe)Übertragung Achse-Codierscheibe)

FunkübertragungFunkübertragung

Mind. 2m ReichweiteMind. 2m Reichweite

=> Logitech Funkmaus(Logi CL Maus €32)=> Logitech Funkmaus(Logi CL Maus €32)

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Der Umbau IDer Umbau I

Fragestellung:Fragestellung: Maus auf die Schiene oderMaus auf die Schiene oder

Maus auf den Wagen ?Maus auf den Wagen ?

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Der Umbau IIDer Umbau II

Entfernen aller Komponenten vom Entfernen aller Komponenten vom MausgehäuseMausgehäuse

Aussägen der Halterung für die Aussägen der Halterung für die Codierscheibe und eine nicht VerwendeteCodierscheibe und eine nicht Verwendete

Markieren der Position der Halterungen Markieren der Position der Halterungen auf dem Wagenauf dem Wagen

Position ist abhängig von der AchsePosition ist abhängig von der Achse

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Der Umbau IIIDer Umbau III

Durchbohren des Wagens zur AchseDurchbohren des Wagens zur Achse

Halterungen mit Heißkleber befestigenHalterungen mit Heißkleber befestigen

Auslöten der LED´s aus der Hauptplatine Auslöten der LED´s aus der Hauptplatine und auf Trägerplatine (1cm x 1cm) lötenund auf Trägerplatine (1cm x 1cm) löten

Verbinden der Träger-Verbinden der Träger-

platine mit der Hauptplatine platine mit der Hauptplatine

und in Halterung steckenund in Halterung stecken

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Der Umbau IVDer Umbau IV

Hauptplatine festklebenHauptplatine festkleben

Keilriemen aufziehen (von Handschuh)Keilriemen aufziehen (von Handschuh)

Batterien anschließenBatterien anschließen

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Der Umbau VDer Umbau V

=> Fertig !!=> Fertig !!

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Aufgetretene Probleme und ErkenntnisseAufgetretene Probleme und Erkenntnisse

Bei höheren Geschw. Wegverlust Bei höheren Geschw. Wegverlust (Datenverlust)(Datenverlust)

Resultierend aus der Trägheit der DiodeResultierend aus der Trägheit der Diode

=> Übersetzung durch einen Keilriemen, => Übersetzung durch einen Keilriemen, anstatt Direktmontierung auf der Achseanstatt Direktmontierung auf der Achse

Verlust aufgrund von Schlupf sollte Verlust aufgrund von Schlupf sollte vernachlässigbar seinvernachlässigbar sein

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Weitere ErkenntnisseWeitere Erkenntnisse

Optische Maus nicht geeignetOptische Maus nicht geeignetDurch Beschaffenheit der GleiseDurch Beschaffenheit der Gleise

Abstand Gleise – MausoptikAbstand Gleise – Mausoptik

Aufbau der Messeinrichtung auf der Aufbau der Messeinrichtung auf der Lokomotive nicht geeignetLokomotive nicht geeignet

Wegen PlatzmangelWegen Platzmangel

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Kommunikation mit dem JAVA-ProgrammKommunikation mit dem JAVA-Programm

Shared Memory SegmentShared Memory Segment (-)(-)

TCPTCP (+)(+)

UDPUDP (++)(++)

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

UDPUDP

Anforderungen die wir stellen:Anforderungen die wir stellen:Kurze Nachrichten versenden (+)Kurze Nachrichten versenden (+)

Schnell und unkompliziert einzurichten (+)Schnell und unkompliziert einzurichten (+)

Schneller TransportSchneller Transport

Wiederholen der Anfrage bei keiner AntwortWiederholen der Anfrage bei keiner Antwort

=> UDP Verbindung=> UDP Verbindung

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

UDP Programm Aufbau (Client/Server)UDP Programm Aufbau (Client/Server)

Erzeugen eines Sockets ( Socket (...) )Erzeugen eines Sockets ( Socket (...) )

Binden des Sockets an den gewünschten Binden des Sockets an den gewünschten Port ( bind(...) )Port ( bind(...) )

Abrufen des nächsten PaketsAbrufen des nächsten PaketsMit recv(...) (Thread blockiert)Mit recv(...) (Thread blockiert)

Inhalt interpretierenInhalt interpretieren

Ggf. antworten ( send(...) )Ggf. antworten ( send(...) )

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

PAP für Kommunikation und AuswertungPAP für Kommunikation und Auswertung

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Quellcodebeispiele zur Kommunikation Quellcodebeispiele zur Kommunikation Client/Server:Client/Server:

while( rc != SOCKET_ERROR )while( rc != SOCKET_ERROR ){{

rc = recv(connectedSocket,buf,256,0); //Empfangen der Daten(Anforderung)rc = recv(connectedSocket,buf,256,0); //Empfangen der Daten(Anforderung)................empfang[rc]='\0'; //Zur Vorsorge Terminierenempfang[rc]='\0'; //Zur Vorsorge Terminierenif( 0 == strcmp(empfang,"99999") ) if( 0 == strcmp(empfang,"99999") ) {{

anfrage = true; //Setzen das es eine Anfrage gibtanfrage = true; //Setzen das es eine Anfrage gibtwhile( ready != true ) while( ready != true ) {{

//Wartet bis das Ergebnis berechnet ist//Wartet bis das Ergebnis berechnet ist}}rc = send(connectedSocket,ergebnis,strlen(ergebnis),0);rc = send(connectedSocket,ergebnis,strlen(ergebnis),0);ready = false;ready = false;anfrage = false;anfrage = false;

}}if( 0 == strcmp(empfang,"0815") )if( 0 == strcmp(empfang,"0815") ){{

//Beendet den Server//Beendet den Serverbreak;break;

}}}}

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Messdatenauswertung I Messdatenauswertung I eine Rundeeine Runde

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Messdatenauswertung II Messdatenauswertung II Mittel von 10 RundenMittel von 10 Runden

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Messdatenauswertung IIIMessdatenauswertung III

Gleis

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Erkenntnisse und ZukunftsperspektivenErkenntnisse und Zukunftsperspektiven

Erkenntnisse:Erkenntnisse:Hinreichend genaue MessergebnisseHinreichend genaue Messergebnisse

Trägheit der Dioden setzen GrenzenTrägheit der Dioden setzen Grenzen

Abweichungen pro Runde im Bereich von 9-20 Abweichungen pro Runde im Bereich von 9-20 Pixel entspricht 3-7mmPixel entspricht 3-7mm

PerspektivenPerspektivenStromversorgung über GleisanlageStromversorgung über Gleisanlage

Umbau der Messeinrichtung auf die LokUmbau der Messeinrichtung auf die Lok

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

QuellenQuellen

http://www.c-programming.de/http://www.c-programming.de/

http://www.thesycon.dehttp://www.thesycon.de

http://ac16.uni-paderborn.de/arbeitsgebiethttp://ac16.uni-paderborn.de/arbeitsgebiete/messtech/elektro_grundlagen/usb/index.e/messtech/elektro_grundlagen/usb/index.htmlhtml

http://www.microsoft.comhttp://www.microsoft.com

Recommended