Upload
liutbald-giesel
View
106
Download
0
Embed Size (px)
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