000
17.06.2003, 16:18 Uhr
Dirk22
|
Hi,
ich habe folgendes Problem: Ich lese Daten von der Schnittstelle ein, und bearbeite sie danach noch ein wenig. Gut, dies klappt alles und findet alles in einer Schleife statt, die läuft bis der Benutzer den Stopbutton drückt. Nun möchte ich die Zeit bestimmen, die zwischen zwei von der Schnittstelle ankommenden Datenrahmen liegt.
Also mal grob mein Aufbau bis jetzt:
C++: |
bool Start = true; SYSTEMTIME end, temp; BYTE frame[100]; FILE* fp_save;
while(!StopClicked) //solange Stopbutton nicht gedrückt { //Datenrahmen von RS232 wird in frame abgespeichert Daten_RS232(frame); GetSystemTime(&end); //Systemzeit am Ende eines Datenrahmens if (Start) { zeitstempel = 0; fwrite(&zeitstempel,sizeof(int),1,fp_save); Start = false; } else { zeitstempel = (end.wSecond - temp.wSecond) * 1000 + (end.wMilliseconds - temp.wMilliseconds); fwrite(&zeitstempel,sizeof(int),1,fp_trimble_save); } temp = end; //weiterer Code }
|
Also, mein Ziel ist es den zeitlichen Abstand zwischen 2 von der Schnittstelle empfangenen Datenrahmen in ms zu ermitteln und in einer Datei abzuspeichern. Das Abspeichern in die Datei funktioniert und ist hier nicht von Bedeutung. Ganz am Anfang soll natürlich der Wert 0 abgespeichert werden. Danach dann immer der zeitliche Abstand in ms zwischen 2 Datenrahmen. Leider funktioniert mein Code nicht gut. Er liefert mir wirre Werte. Ich hatte eigentlich vor immer die Zeiten von zwei Datenrahmenenden zu nehmen und diese dann voneinander abzuziehen. Dies soll mein Code darstellen. Aber er funktioniert nicht richtig und außerdem würde er so die Bearbeitungszeit für den restlichen Code, welcher noch anschliessend in der Schleife kommt, nicht berücksichtigen.
Ich hoffe, dass meine Frage verständlich genug formuliert ist. Ist leider ein ziemliches Wirrwarr geworden. Diese Frage ist mir aber wirklich wichtig. Und falls Verständnisprobleme wegen der Fragestellung auftreten, bitte einfach nachfragen.
Ihr könnt dieses Problem auch ganz anders angehen. Wie würdet ihr den zeitlichen Abstand zwischen 2 von der Schnittstelle empfangenen Datenrahmen bestimmen?
Vielen Dank im Voraus
Dirk |