Exemplo n.º 1
0
    void
    print(int version, FILE *aus)
    {
        word i;
        char is[8];

        if (hasdeclaration) {
            strcpy(sTDECL, "            ");

            if (TID > 9999)
                TID = 9999; // Größenbegrenzungen wg. Ausdruck

            if (NTP > 12)
                NTP = 12;

            strftime(sTDECL,sizeof sTDECL,"%d%m%y%H%M%S",&TDECL);

            // If no FDT field was received from the logger (from FW 161 upwards)
            // we have to create one
            if (!(FDT[0] | FDT[1] | FDT[2])) {
                // TDECL is used as a base
                memcpy(&T_FDT, &TDECL, sizeof T_FDT);
                // Add the timezone
                T_FDT.tm_min += zz_min;
                T_FDT.tm_isdst = -1;
                //JMW TODO	mktime(&T_FDT);
                FDT[0] = T_FDT.tm_mday;
                FDT[1] = T_FDT.tm_mon + 1;
                FDT[2] = T_FDT.tm_year % 100;
            }

            if (version >= 422) {
                FDT[0] = 0;
                FDT[1] = 0;
                FDT[2] = 0;
            }

            if (FDT[0] > 31)
                FDT[0] = 31;
            if (FDT[1] > 12)
                FDT[1] = 12;
            if (FDT[2] > 99)
                FDT[2] = 99;

            fprintf(aus, "C%s%02u%02u%02u%04u%02u\n", sTDECL, FDT[0], FDT[1], FDT[2],
                    TID, NTP); // print C1-Record

            TKF.print(version, aus, "Takeoff"); // print Takeoff-Point
            STA.print(version, aus, "Start  "); // print Start-Point

            // print Turnpoints
            for (i = 0; i < NTP; i++) {
                sprintf(is, "TP%02u   ", i + 1);
                TP[i].print(version, aus, is);
            }

            FIN.print(version, aus, "Finish "); // print Finish-Point
            LDG.print(version, aus, "Landing"); // print Landing-Point
        }
    }
Exemplo n.º 2
0
  void print(int version, FILE *aus) {
   word i;
   char is[8];

    if (hasdeclaration) {
      strcpy(sTDECL,"            ");
      if (TID>9999) TID=9999;  // Größenbegrenzungen wg. Ausdruck
      if (NTP>12) NTP = 12;


//JMW TODO??? strftime(sTDECL,sizeof sTDECL,"%d%m%y%H%M%S",&TDECL);

      // Wenn kein FDT-Feld vom Logger kam  (Logger ab FW 161)
      // dann muß eben eines erzeugt werden
      if (!(FDT[0]|FDT[1]|FDT[2])) {
	// TDECL als Basis nehmen
	memcpy(&T_FDT, &TDECL, sizeof T_FDT);
	// Zeitzone draufrechnen
	T_FDT.tm_min  += zz_min;
	T_FDT.tm_isdst = -1;
////JMW TODO	mktime(&T_FDT);
	FDT[0] = T_FDT.tm_mday;
	FDT[1] = T_FDT.tm_mon+1;
	FDT[2] = T_FDT.tm_year % 100;
      }

      if (version >= 422) {
	FDT[0] = 0;
	FDT[1] = 0;
	FDT[2] = 0;
      }

      if (FDT[0] > 31)
	FDT[0] = 31;
      if (FDT[1] > 12)
	FDT[1] = 12;
      if (FDT[2] > 99)
	FDT[2] = 99;
      fprintf(aus,"C%s%02u%02u%02u%04u%02u\n",sTDECL,FDT[0],FDT[1],FDT[2],TID,NTP); // C1-Record ausgeben
      TKF.print(version,aus,"Takeoff");             // Ausgabe von Takeoff-Point
      STA.print(version,aus,"Start  ");		    //	       Start-Point
      for (i=0; i<NTP; i++) {   	    // 	       Turnpoints
	sprintf(is,"TP%02u   ",i+1);
	TP[i].print(version,aus,is);
      }
      FIN.print(version,aus,"Finish ");             //         Finish-Point
      LDG.print(version,aus,"Landing");             //         Landing-Point
    }
  }