#include <zeitverlauf.h>
Öffentliche Methoden | |
| RatingVerlauf () | |
| ~RatingVerlauf () | |
| void | testRatingVerlauf () |
| void | RatingLoeschen (const MinSec &Endmoment) |
| void | RatingAnhaengen (const MinSec &Endmoment, const RatingSkala Einschaetzung) |
| MinSec | BisherLetzterMoment () |
| IntervallErgebnis | RatingAuslesen (const MinSec &Endmoment) |
| IntervallErgebnis | RatingAuslesen (MinSec2Rating::iterator it) |
| QString | printRating (const MinSec &Endmoment) |
| QString | printGesamtenRatingVerlauf (const MinSec &von, const MinSec &bis) |
| bool | liesGesamtenRatingVerlauf (QTextStream &s) |
| bool | speichereGesamtenRatingVerlauf (QTextStream &s, QString &derKlient, QString &derRater) |
| int | verkuerzeUmAufeinanderfolgendGleiche () |
Öffentliche Attribute | |
| MinSec2Rating | Sinneinheiten |
|
|
Definiert in Zeile 197 der Datei zeitverlauf.cpp. Benutzt MinSec(), null und Sinneinheiten.
00197 {
00198 // Konstruktor mit 00:00.000 und null Rating
00199 Sinneinheiten.insert(MinSec2Rating::value_type(MinSec(0,0,0),null));
00200 };
|
|
|
Definiert in Zeile 202 der Datei zeitverlauf.cpp. Benutzt Sinneinheiten.
00202 {
00203 Sinneinheiten.clear();
00204 };
|
|
|
Definiert in Zeile 215 der Datei zeitverlauf.cpp. Benutzt Sinneinheiten. Wird benutzt von VerlaufsAuswertung::GesamtDauer(), LFTVideoDialog::openKonfigDialog(), testRatingVerlauf() und LFTVideoDialog::~LFTVideoDialog().
00215 {
00216 MinSec2Rating::iterator it=Sinneinheiten.end();
00217 it--;
00218 return it->first;
00219 }
|
|
|
Definiert in Zeile 304 der Datei zeitverlauf.cpp. Benutzt MinSec::liesVonTextStream(), RatingAnhaengen(), RatingSkala und Sinneinheiten. Wird benutzt von VerlaufSpeichern::DatenLeseStream().
00304 {
00305
00306 Sinneinheiten.clear();
00307
00308 int Einschaetzung;
00309 MinSec Zeitpunkt;
00310 bool OK;
00311 QString Wort;
00312 QChar c;
00313
00314 leseSchleife:
00315 while (! s.atEnd()){
00316
00317 OK=Zeitpunkt.liesVonTextStream(s);
00318 if (!OK) {
00319 qDebug("Fehler beim Einlesen des Zeitpunktes");
00320 return false;
00321 }
00322 s >> c;
00323 switch (c) {
00324 case '\t':
00325 s >> Wort;
00326 Einschaetzung=Wort.toInt(&OK);
00327 if (!OK) {
00328 qDebug("Fehler beim Umwandeln der Einschaetzung");
00329 return false;
00330 }
00331 RatingAnhaengen(Zeitpunkt, (RatingSkala) Einschaetzung);
00332
00333 s >> c >> Wort >> c >> Wort >> c >> Wort >> c >> Wort >> c;
00334 // tab EinschDavor tab dauer tab Klient tab Rater tab
00335
00336 if (c!='\n'){ // falls uralte Version, dann ist die Zeile hier zuende
00337 s >> Wort >> c >> Wort >> c >> Wort >> c;
00338 // minuten TAB Sekunden TAB Millisekunden BR
00339 }
00340
00341 if (c!='\n') {
00342 qDebug("Rest der Zeile war nicht OK");
00343 return false;
00344 }
00345 break;
00346 case '\n':
00347 goto leseSchleife; // nächste Zeile, weil nur 00:00,
00348 // mittlerweile obsolet
00349 break;
00350 default:
00351 qDebug("Quatsch beim Einlesen");
00352 return false;
00353 break;
00354 }
00355 }
00356 return true;
00357 }
|
|
||||||||||||
|
Definiert in Zeile 281 der Datei zeitverlauf.cpp. Benutzt printRating() und Sinneinheiten. Wird benutzt von testRatingVerlauf().
00282 {
00283 qDebug("printGesamtenRatingVerlauf sollte NICHT verwendet werden, "
00284 "da a) suboptimal und b) riesiger QString als Resultat");
00285 MinSec2Rating::iterator it;
00286 MinSec Zeitpunkt;
00287 QString temp="";
00288 if ( bis < von )
00289 return temp;
00290
00291 for (it=Sinneinheiten.lower_bound(von); it != Sinneinheiten.end(); ++it){
00292 Zeitpunkt=(*it).first;
00293 if (bis < Zeitpunkt)
00294 break;
00295
00296 // suboptimal, weil darin noch ein map::find()
00297 temp+=printRating(Zeitpunkt);
00298 temp+="\n";
00299 }
00300
00301 return temp;
00302 }
|
|
|
Definiert in Zeile 268 der Datei zeitverlauf.cpp. Benutzt IntervallErgebnis::Dauer, RatingAuslesen(), IntervallErgebnis::toQString() und MinSec::toQString(). Wird benutzt von printGesamtenRatingVerlauf() und testRatingVerlauf().
00268 {
00269
00270 IntervallErgebnis gesamt;
00271 gesamt=RatingAuslesen(Endmoment);
00272
00273 QString temp;
00274 temp=Endmoment.toQString();
00275 if ( gesamt.Dauer>=0 ) {
00276 temp+="\t"+gesamt.toQString();
00277 }
00278 return temp;
00279 }
|
|
||||||||||||
|
Definiert in Zeile 210 der Datei zeitverlauf.cpp. Benutzt Sinneinheiten. Wird benutzt von liesGesamtenRatingVerlauf(), testRatingVerlauf() und verkuerzeUmAufeinanderfolgendGleiche().
00211 {
00212 Sinneinheiten.insert(MinSec2Rating::value_type(Endmoment,Einschaetzung));
00213 }
|
|
|
Definiert in Zeile 241 der Datei zeitverlauf.cpp. Benutzt IntervallErgebnis::Dauer, IntervallErgebnis::Einschaetzung, IntervallErgebnis::EinschaetzungDavor, error und Sinneinheiten.
00241 {
00242 // TODO: Diese Routine tut eigentlich dasselbe wie
00243 // IntervallErgebnis RatingAuslesen (const MinSec &Endmoment)
00244 // nur noch ELEMENTARER, nämlich mit gegebenem Iterator
00245 // innerhalb der Map (statt einem Zeitpunkt, der erst gesucht werden muss)
00246 // TODO: dies sollte in obiges eingesetzt werden,
00247 // um Redundanz zu vermeiden
00248
00249 IntervallErgebnis temp(error, error,-1);
00250
00251 MinSec2Rating::iterator it2, it1;
00252 it2=it;
00253
00254 if (it2 != Sinneinheiten.end()) // IntervallENDE existiert
00255 temp.Einschaetzung=it2->second;
00256
00257 if (it2 != Sinneinheiten.begin()) // IntervallANFANG existiert
00258 {
00259 it1=it2; it1--; // it1 = gehe einen Schritt zurück
00260 temp.EinschaetzungDavor=it1->second;
00261 }
00262 if (temp.Einschaetzung != error && temp.EinschaetzungDavor != error)
00263 temp.Dauer=(it1->first).secsTo(it2->first);
00264
00265 return temp;
00266 }
|
|
|
Definiert in Zeile 221 der Datei zeitverlauf.cpp. Benutzt IntervallErgebnis::Dauer, IntervallErgebnis::Einschaetzung, IntervallErgebnis::EinschaetzungDavor, error und Sinneinheiten. Wird benutzt von VerlaufsAuswertung::DatenAnalysieren(), VerlaufsAuswertung::DatenAnzeigen(), printRating(), testRatingVerlauf() und verkuerzeUmAufeinanderfolgendGleiche().
00221 {
00222 IntervallErgebnis temp(error, error,-1);
00223
00224 MinSec2Rating::iterator it2, it1;
00225 it2=Sinneinheiten.find(Endmoment);
00226
00227 if (it2 != Sinneinheiten.end()) // IntervallENDE existiert
00228 temp.Einschaetzung=it2->second;
00229
00230 if (it2 != Sinneinheiten.begin()) // IntervallANFANG existiert
00231 {
00232 it1=it2; it1--; // it1 = gehe einen Schritt zurück
00233 temp.EinschaetzungDavor=it1->second;
00234 }
00235 if (temp.Einschaetzung != error && temp.EinschaetzungDavor != error)
00236 temp.Dauer=(it1->first).secsTo(it2->first);
00237
00238 return temp;
00239 }
|
|
|
Definiert in Zeile 206 der Datei zeitverlauf.cpp. Benutzt Sinneinheiten. Wird benutzt von verkuerzeUmAufeinanderfolgendGleiche().
00206 {
00207 Sinneinheiten.erase(Endmoment);
00208 }
|
|
||||||||||||||||
|
Definiert in Zeile 360 der Datei zeitverlauf.cpp. Benutzt MinSec(), null, RatingSkala, Sinneinheiten und MinSec::toSecs(). Wird benutzt von VerlaufSpeichern::DatenSpeicherStream().
00361 {
00362
00363 MinSec Zeitpunkt=MinSec(0,0), ZeitpunktDavor=MinSec(0,0);
00364 RatingSkala Einsch=null, EinschDavor=null;
00365 double Dauer=0;
00366 MinSec2Rating::iterator it;
00367 it = Sinneinheiten.begin();
00368
00369 for ( ; it!= Sinneinheiten.end(); ++it){
00370 ZeitpunktDavor=Zeitpunkt;
00371 Zeitpunkt=it->first;
00372 Dauer=(Zeitpunkt - ZeitpunktDavor).toSecs();
00373
00374 EinschDavor=Einsch;
00375 Einsch=it->second;
00376
00377 s << Zeitpunkt.toQString() << '\t';
00378 s << Einsch << '\t';
00379 s << EinschDavor << '\t';
00380 s << Dauer << '\t';
00381 s << derKlient << '\t';
00382 s << derRater << '\t';
00383 s << Zeitpunkt.mins() << '\t';
00384 s << (int) Zeitpunkt.secs() << '\t';
00385 s << Zeitpunkt.millisecs() << '\n';
00386 }
00387 return true; // TODO: Was passiert, wenn innerhalb zB Platte voll?
00388 }
|
|
|
Definiert in Zeile 424 der Datei zeitverlauf.cpp. Benutzt BisherLetzterMoment(), KL, KNL, MinSec(), printGesamtenRatingVerlauf(), printRating(), RatingAnhaengen(), RatingAuslesen(), TL, TNL und IntervallErgebnis::toQString().
00424 {
00425
00426 qDebug("\nRatingVerlauf::testRatingVerlauf");
00427 RatingAnhaengen (MinSec(0,13,100), TL);
00428 RatingAnhaengen (MinSec(0,23.9), TNL);
00429 RatingAnhaengen (MinSec(0,37.6), KNL);
00430 RatingAnhaengen (MinSec(1,10,0), KL);
00431
00432 qDebug("letzter Moment " + BisherLetzterMoment().toQString() );
00433
00434 MinSec EndMoment;
00435 EndMoment=MinSec(1,10);
00436 IntervallErgebnis ges;
00437 ges=RatingAuslesen(EndMoment);
00438 qDebug(ges.toQString());
00439
00440 qDebug(printRating (MinSec(0,0)));
00441 qDebug(printRating (MinSec(0,13.1)));
00442 qDebug(printRating (MinSec(0,23.9)));
00443 qDebug(printRating (MinSec(0,37.6)));
00444 qDebug(printRating (MinSec(1,10)));
00445 qDebug(printRating (MinSec(1,11)));
00446
00447 qDebug("\n\nUnd nun alles in einer Routine:");
00448 qDebug(printGesamtenRatingVerlauf (MinSec(0,0), BisherLetzterMoment()));
00449
00450 qDebug("\n\nUnd nun nur die mittleren 3:");
00451 qDebug(printGesamtenRatingVerlauf (MinSec(0,12), MinSec(0,38)));
00452 };
|
|
|
Definiert in Zeile 392 der Datei zeitverlauf.cpp. Benutzt IntervallErgebnis::Einschaetzung, error, MinSec(), RatingAnhaengen(), RatingAuslesen(), RatingLoeschen(), RatingSkala und Sinneinheiten. Wird benutzt von LFTVideoAnalyseDialog::DatensatzVerkuerzen().
00392 {
00393
00394 RatingVerlauf kuerzer;
00395 long anzahlGekuerzter=0;
00396
00397 IntervallErgebnis interv;
00398 RatingSkala letzteEinschaetzung = error;
00399 MinSec letzterZeitpunkt = MinSec(0,0);
00400
00401 MinSec2Rating::iterator it;
00402 it = Sinneinheiten.begin();
00403 for ( ; it != Sinneinheiten.end() ; it++){
00404 interv=RatingAuslesen(it);
00405 if (interv.Einschaetzung != letzteEinschaetzung) {
00406 // falls DIESE Einschätzung anders, dann speichere die LETZTE
00407 kuerzer.RatingAnhaengen(letzterZeitpunkt, letzteEinschaetzung );
00408 } else{
00409 // sonst ignorier DIESE und incrementiere nur Zähler
00410 anzahlGekuerzter++;
00411 }
00412 letzteEinschaetzung=interv.Einschaetzung;
00413 letzterZeitpunkt=it->first;
00414 }
00415 // TODO: Stimmt das? Der letzte wird NIE eingefügt, oder?
00416 kuerzer.RatingAnhaengen(letzterZeitpunkt, letzteEinschaetzung );
00417
00418
00419 this->RatingLoeschen(MinSec(0,0)); // leere sicherheitshalber aktuelle Map
00420 this->Sinneinheiten = kuerzer.Sinneinheiten; // TODO: ist das ein COPY ?
00421 return anzahlGekuerzter;
00422 }
|
|
1.3.2