JoyWarrior24 F8 / Zeitintervall bei den .csv Dateien ändern

Dies ist das deutsche Forum für alle Themen um den JoyWarrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
Daniel Gleichauf
Posts: 2
Joined: Tue Mar 24, 2009 7:33 pm

JoyWarrior24 F8 / Zeitintervall bei den .csv Dateien ändern

Post by Daniel Gleichauf »

Guten Tag,
Ich möchte den Sensor JoyWarrior24 F8 benutzen um ein Versuchsexperiment durchzuführen und Bewegung eines z.b. Autos zu protokollieren. Hierzu lass ich mir von dem „Analyser“ die Werte aufzeichnen.
Jedoch sind 125 Werte pro Sekunde zu viele Daten. Insgesamt würde die Dateimenge sogar den max. Input in Excel von ~65000 Zeilen übersteigen. Und das schon nach wenigen Minuten. Der Versuch soll jedoch länger laufen und eine Auswertung in Excel gleichzeitig möglich sein.
So würde es zum Beispiel schon reichen, wenn nur jede Sekunde der Wert vom Sender ausgelesen wird.
Ob, wie und wo ich dies einstellen kann ist meine Frage!

Vorab Dankeschön
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: JoyWarrior24 F8 / Zeitintervall bei den .csv Dateien ändern

Post by Christoph Jung »

Das Analyser-Tool ist als Beispiel gedacht und nicht als produktive Anwendung. Hinzu kommt, dass man nicht aufzeichnen und gleichzeitig die Werte in Exel auswerten kann. Der Analyser schreibt in die Datei und Exel wird diese nicht auslesen können. Somit fällt eine Live-Auswertung weg. Dafür muss man ein eigenes Programm entwickeln.

Die Zeitintervalle kann man natürlich einstellen. Das Analyster biete sogar eine funktion dafür. Einfach den Timer hochsetzten (ist aber auf 104ms begrenzt). Das kann man im Quellcode einfach ändern, denn wie gesagt das ist ein Beispiel und somit Open-Source.

In der Funktion

Code: Select all

void CAnalyserDlg::MMTimerHandler(UINT nIDEvent)
sind zwei Variablen, die den Timer einstellen: iTime und iStep.
iTime gibt den Zeitintervall x8 an, also iTime=5 wären 40ms. Der Startwert steht in der OnInit-Funtion.
iStep Zählt mit, also am besten nicht ändern.

Oder man ändert den Wert der Funktion von 8 in 1000 (angabe in Milisekunden). Die Funktion steht in "OnBnClickStart()"

Code: Select all

timeSetEvent(8, resolution, TimerFunction, (DWORD)this, TIME_PERIODIC); 
Dann sollte man den Wert von iTime nicht ändern. Allerdings stimmt dann die
Skalierung vom Analyser-Tool nicht mehr. Ich würde diese Variante aber bevorzugen, da so das System entlastet wird (es wird nicht mehr alle 8ms gepollt).

Das ändert allerdings noch nicht den Schreibvorgang. Dieser muss verschoben werten. Der Vorgang ist auch in der "MMTimerHandler()" zu finden.
Einfach den Block

Code: Select all

	if(bLogRun == TRUE)
	{
		if(bDateiRun == TRUE)
			WriteIntoFile(tRare.x, tRare.y, tRare.z, GetTimestamp());
	}
in die if-Anweisung

Code: Select all

	
if(iStep == iTime)
	{
.....
}
verschieben und dann sollte es Theoretisch funktionieren.


Es gibt neben dem normalen Exel noch die professionelle Exel-Version. Die ist nicht auf 65000 Zeilen begrenzt.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
Daniel Gleichauf
Posts: 2
Joined: Tue Mar 24, 2009 7:33 pm

Re: JoyWarrior24 F8 / Zeitintervall bei den .csv Dateien ändern

Post by Daniel Gleichauf »

Entschuldigung für die erst späte Reaktion.
Dankeschön für die Antwort. Ich werde jetzt mal versuchen den Quellcode zu verändern.

Wie sehen denn generell die Vorgehensweisen für mein beschriebenes Projekt aus?
Ich möchte den Sensor JoyWarrior24 F8 benutzen um ein Versuchsexperiment durchzuführen und Bewegung eines z.b. Autos zu protokollieren.
Wie zeichnet Ihr die Daten auf, wie lest ihr sie aus und wie bearbeitet und stellt ihr sie da.
Mit freundlichen Grüßen
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: JoyWarrior24 F8 / Zeitintervall bei den .csv Dateien ändern

Post by Christoph Jung »

Wie sehen denn generell die Vorgehensweisen für mein beschriebenes Projekt aus?
Bewegungen eines Autos sind meiner Meinung nach schwer zu ermitteln, da der JW24F8 keine Rotationsachse besitzt (Gyroskop). Damit würde man dann Kurvenfahrten nur schwer detektieren können. Aber kommt halt drauf an, was man genau Messen will. Beschleuningung ist aber kein problem, genau wie Neigung, Bremsen oder sehr Enge Kurven.
Wie zeichnet Ihr die Daten auf, wie lest ihr sie aus und wie bearbeitet und stellt ihr sie da.
Dazu gibt es viele Möglichkeiten. Man könnte die Daten in eine SQL-Datenbank schreiben oder halt in eine XML oder was auch immer da ist.
Problem ist nur, dass die Geschwindigkeit des Auslesens zu groß ist. Wir haben es anfangs mit MySQL versucht, aber bei 8ms ist das einfach zu schnell und die MySQL kam nicht hinterher.

Bei der Aufbereitung der Daten gibts nicht viel, was man machen kann, denn man bekommt ja einen relativ festen Wert aus dem JW24F8 (halt die maximalen Joystickdaten). Man kann das in die Mili-G umrechnen, aber sonst fällt mir da nicht viel ein.

Darstellungsformen kann man sich eigenltich aussuchen, denn wenn man die Daten hat kann man draus machen was man will.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
Post Reply