Home
        Aviation Research Lab Institute of Aviation IPC DATA LOGGER (A
         Contents
1.                            The unit used in this application is the QTERM II TM manufactured by QSI Corporation  The particular  model chosen has a backlighted display  RS 232 9 pin    D    type connector  and the wide temperature  option  The alphanumeric display is four lines of twenty characters each  The unit has a forty  40  key  tactile keypad  of which  five are user definable  Five light emitting diode  LED  indicators are available  for displaying status information in addition to the alphanumeric display     The five LED indicators are labeled REC  GPS  DIFF  GYRO  and MARK     REC indicates that the Data Logger is recording data    GPS indicates that the GPS receiver is providing 3 dimensional position data    DIFF indicates differential corrections are being applied to the GPS data    GYRO indicates that the vertical gyroscope has erected    MARK indicates that the data being recorded is being    marked     to aid later analysis      Below the five LED indicators are five custom keys labeled START STOP  EXIT  RESTART  CAL  COMP  and TGGLE  These are the only keys that the operator normally uses during operation of the  system     e START STOP allows the operator to start and stop logging data  The GPS and GYRO LED s  must be lit before logging can be started  Logging can be started and stopped as often as required   all the recorded data is stored in a single file    e EXIT allows the operator to start the shutdown procedures after the final termination of data  l
2.         CopyToFloppy calls FileCopy to perforn the disk to disk copy               TNT KEIKKA SORORE RORUORROR ACE RORHOR JOR ACE AA JOE EES ERE ARES ER EE EERE ERED EH EEE RY    void CopyToFloppy void      char   fname            char   dest    a      char destfile 20    char search 80    char sourcefile 80    struct ffblk block   struct diskfree_t free     int FileCopy char   char      if _dos_getdiskfree 1  amp free     0   f    QTReset      QTWLine   No Disk in Drive   1    QTWLine   FILE COPY ABORTTED  3    QTBeep      delay 2000     return     53    if strlen DataDirPath       strcpy  search  DataDirPath    strcpy  sourcefile  DataDirPath       strcat search  fname    if findfirst search  amp block FA ARCH     0  return   strcpy destfile  dest    strcat destfile block ff name    strcat sourcefile block ff name    if  chmod sourcefile 0      0x20     1  CopyM essage destfile    if FileCopy destfile  sourcefile       chmod sourcefile 1 0x00         for          if  findnext  amp block     0  return   strcpy sourcefile  DataDirP ath    strcat sourcefile block ff name    strcpy  destfile dest    strcat destfile block ff name    if  chmod sourcefile 0      0x20   f   CopyM essage destfile    if FileCopy destfile sourcefile     chmod sourcefile 1 0x00                  JE EE ASKE ALES AL ESA ES ART A ER AE ER EER EET A EE A ER AE Ko oo eo ER eoe                FileCopy copies source to destination returning  true  if      ka if suuccessful and  false  if not      p       JERKK
3.       K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K DOR OK OK OK OK OK OK OK OK OK OK OK K K K K e x              JA Writes the null terminated string  buffer  to designated line              HE A K K K K E KKK E RE AR Kk E OR RE RK EKE      void QTW Line char   buffer int line     char pos 4     ESC  I              position to col 1  line 1       char clear 2     ESC  K Y    clear to end of line      pos 2      line   1     modify line to that selected      WriteBuffer QT pos 4      exec positioning       WriteBuffer QT clear  2      exec clear      WriteString QT  buffer  1      write string         EP ESSLES ELE SELES IEI KITEET ERE EERE A ERE SEALS ERE SEALS EER EARLE ERE       i     Control Status of Q Term LED s xj   ka       abaka NEA AGA NEA AA AA AA AA      void OTLed int lamp  int function         char string 3     ESC  P      unsigned char c       lamps numbered 1 5 from right to left        0   off  1  On  2  blink  3   toggle       59    c  0x40   lamp   8 function     string 2    c    W riteBuffer QT string  3        Jt   E ERROR EOROR EL ELE EEE LES ER ESLER ESE EEE A EES EEE AE EES EES ERE RARE Rog OR EURO OE E         i  Toggle Backlight on display              JEEE KRKK E K kk Kk Ak Kk kkk KKK K KK k KKK k K Kk akk k kk EK k kk K E k Kk K k E EE kK E de     void QTBackLite void        char back 3     ESC  V   B     WriteBuffer QT back 3          PK AK OK K K OK K K OK K K OK CE K OK CK OK OK K OK OK CK OK CE CE K OK CK K OK CK
4.      delta 2 delta 2   delta 6     delta 2 delta 4     sinlat   sinl latrad    coslat   cosl latrad    tanlat   tanl latrad      coslat 3   coslat  coslat  coslat   coslat 5   coslat 3 coslat  coslat   coslat 7   coslat 3 coslat 3 coslat     tanlat 2   tanlat tanlat   tanlat 4     tanlat 2 tanlat 2   tanlat 6     tanlat 2 tanlat 4     ETA   eccenbsqr  coslat  coslat     ETA 2   ETA ETA   ETA 3   ETA 2 ETA   ETA 4   ETA 2 ETA 2     SN   rad cur major  eccensqr sinlat    TMD   true mer dis AP BP CP DP EP latrad      tl   TMD OK    t2   SN sinlat  coslat  OK 2 0L    t3   SN sinlat  coslat_3  OK   5 0L  tanlat 2   9 0L ETA   4 0L ETA 2  24 0L    t4   SN sinlat coslat 5 OK  61 0L  58 0L tanlat 2   tanlat 4   270 0L ETA   330 0L tanlat 2 ETA   445 0L ETA 2   324 0L  ETA 3  680 0L tanlat 2 ETA 2    88 0L  ETA 4  600 0L tanlat 2 ETA 3  192 0L tanlat 2 ETA 4  720 0L    t5   SN sinlat coslat 7 OK  1385 0L  3111 0L tanlat 2   543 0L tanlat 4     tanlat 6  40320 0L     if latrad gt    0 0L   north   OL  else  north   1 0e7L     T4     north     tl   delta 2 t2   delta 4 t3   delta 6 t4   delta 4 delta 4 t5     t6   SN coslat  OK    t7   SN coslat 3 OK  1 0L   tanlat 2   ETA  6 0L    t8   SN coslat 5 OK  5 0L  18 0L tanlat 2   tanlat 4   14 0L ETA   58 0L tanlat 2 ETA   13 0L ETA 2   4 OL ETA 3  64 0L tanlat 2 ETA 2   24 0L tanlat 2 ETA 3  120 0L    t9   SN coslat 7 OK  61 0L  479 0L tanlat 2   179 0L tanlat 4   tanlat 6  5040 0L      east   FE   delta meridian t6   delta 2 delta meridian
5.     NULL          strcpy tempbuffer marker   1    if sscanf tempbuffer    s  path   return 1         path 0    0x00   return 0           GPSTEST C     include  lt  stdio h gt    include  lt  dos h gt    include  lt  time h gt    include  lt  ctype h gt    include  lt  bios h gt    include  lt  alloc h gt    include  lt  stdlib h gt    include  lt  conio h gt    include  lt  math h gt    include  lt  string h gt    include  lt  dir h gt   tinclude  lt  io h gt    include  al2drvc h     include  ibmkeys h    include  asciidef h    include  gsci h     time t WriteTime   int PacingFlag  0   int WriteTimeFlag   0        include  logger h        Logger Header      FILE   restart    FILE   logfilepointer    char LogFileName 80      int GPSFlag   O   RecFlag   0   CalFlag   0   GyroFlag   0   ReStartFlag   O   DCIFlag   0   InitFlag   0   MarkFlag   0   Marklndex   0   ReStartFileFlag   0        the lines below          GPS Data Available        Recording Data         Calibrating Compass         Gyro Erect          Restart Recording to old file        Differential Corrections good          Init in progress      4 Marking in progress          Current or last mark index          Valid restart file read       40    int  int  int  int  int  int  int  int  int    ReStartUpdateFlag   0     Update present restart ini file     ReStartM arkIndex   0     CompassCheckFlag   0     display compass check      LogFileNamed   0     valid filename in  logfilename      WriteRecordFlag   0   4 write a 
6.    ADTask   9     get data from buffer     ADParameters 0    3    ADParameters 1    offdatbuf    ADParameters 2    offpntbuf     ADParameters 3    12   status   call driver     if  status    0  FatalError   A004       return on error       for  I   0     lt  ADParameters 3  14       f  channel    ADPointBuffer l   amp  Oxff00  256   data   ADDataBuffer l    0 001   gain   ADPointBuffer I   amp  OxOOff     switch l      case 0   tempx   data   PitchOffset     pitch     tempx    PitchGain   Record Pitch     pitch    int tempx   break     case 1     roll       tempx   data   RollOffset   tempx    RollGain    Record Roll     roll    int tempx   break     case 2     airspeed     tempx    data   AltOffset   AltGain   tempx   142 91 sgrt fabs tempx     Record Airspeed      int tempx   break    case 3     ball       tempx    data   BallOffset   BallGain   Record Ball     tempx     break   case 4   4 CDI2 L R     case 7     CDI1 L R     case 10      GS Dev       tempx   2000 data 3    if tempx  lt   120 0  tempx    120 0   if tempx  gt    120 0  tempx     120 0   if l    4  Record CDI2     int tempx     else  if l  2 7  Record CDI1     int tempx   else Record GSDev     int tempx     note sign change       break   case 5     CDI2 T F     case 8     CDI1 T F     tempx   0   if data  gt  0 042  tempx    1     FROM       32    if data  lt   0 042  tempx   1     TO     if I2   5  Record CDIT F2   tempx     note sign change     else Record CDIT F1   tempx     break   case 6   4 CDI2 Flag   
7.    Disables or enables the application of the WAAS data to the  positional computation     Disable or enables the    precision    mode of WAAS  corrections     Disables or enables information to be sent to    port     either A  or B  describing the reception status of the WAAS signal     The format of the information message is as follows    PASHR WAS INFsat sig lock where sat is the WAAS  satellite number  sig is the signal strength  and lock is a bit   mapped field indicating the state of the various decoding  processes  a lock value of  3F  is fully locked   This message  is output once per second until turned off by command     Disables or enable information to be sent to    port  either A or  B  describing the corrections being applied to the positional  computation by WAAS data     The format of the information message is as follows   SPASHR WAS WCA num      Where num is the number of  satellite records in the remainder of the message     Each satellite record consists of seven  7  fields  Satellite PRN number   Fast correction  WAAS    Long term correction  WAAS    Ionospheric correction  WAAS   Tropospheric corrections   Sum of all used correction   Flag of used WAAS corrections where flag is  e        po corrections   e  F  only fast    SEU OU Po    26       L        only long term      S        fast and long term    I      only ionospheric      G      fast and ion      H      long term and ion      U        all corrections   This message is output once per second un
8.    gets  InputFile          printf   n nEnter name of File for result       gets OutputFile           fnsplit InputFile  NULL  NULL name ext    fnmerge OutputFile  NULL  NULL  name new ext      size   sizeof Record    if  Buffer 2  struct record    malloc 500 size       NULL       printf   Storage Allocation Failed  n      printf   Exiting Program n       exit 0         if  in   fopen InputFile  rb        NULL      printf   s not Found  n   InputFile    printf   Exiting Program  n n     exit 0          if  out   fopen OutputFile  wt        NULL     printf  Error opening file  s   OutputFile    printf   Exiting Program  n     exit 0      printf   n nPreprocessing  n td  decimate  n tm  marked only  n     printf   tn  none  n nEnter d  m  orn         do       Res   toupper  char getch       while Res     D   amp  amp  Res     M   amp  amp  Res     N       if Res 2 2  D        printf   n nDecimation Factor       gets temp    sscanf temp   d   amp factor         printf   n n       sprintf  StrBuffer   Time tM ark tM ode tZone tNorthing tEasting tAlt tRate_of_Climb tAirspeed tM agHeading tPitch tR  oll tBall tCDI_1 tT_F1 tFlagl tCDI_2 tT_F2 tFlag2 tGSC DI tGS Flag tCOG tSOG n     fputs StrBuffer  out      76    f  count   fread Buffer size 500 in    if  count  break   for i  0 i lt  count i       if  Res      M   amp  amp  Buffer i  Mark    0    Res     M    f  ifj    0    Res     D    II2UTM   long double Buffer i   Latitude    long double Buffer i   Longitude   amp north   amp e
9.    in   FILE   out   char StrBuffer 500    struct record   Buffer   int size i count  factor  j     printf  Data Logger Conversion Utility n n      printf  Enter name of File to Convert        gets InputFile     printf   n nEnter name of File for result        gets OutputFile     printf   n nPreprocessing  n td  decimate  n tm  marked only  n     printf   tn  none  n nEnter d  m  orn        do       Res   toupper  char getch       while Res     D   amp  amp  Res     M   amp  amp  Res     N       if Res     D     f  printf   n nDecimation Factor       gets temp    sscanf temp   d   amp factor         printf   n n       size   sizeof Record    if  Buffer    struct record    malloc 500 size       NULL     printf  Storage Allocation Failed  n     printf   Exiting Program  n       exit 0       if  in   fopen InputFile  rb        NULL   f  printf   s not Found  n   InputFile    printf   Exiting Program  n n     exit 0       if  out   fopen OutputFile  wt        NULL   f  printf   Error opening file 96s    OutputFile    printf   Exiting Program n     exit 0         sprintf StrBuffer   Time tM ark tM ode tLat tLong tA It tRate_of_Climb tA irspeed tM agHeading tPitch tRoll tBall tCDI_1   tT_F1 tFlag1 tCDI_2 tT_F2 tFlag2 tGS CDI tGSFlag tC OG tS OG n       71    fputs StrBuffer  out      j  0   do     count   fread Buffer size 500 in    if  count  break   for i  0 i lt  count i        if  Res      M   amp  amp  Bufferl i   Mark    0     Res     M    f  if j   0    Res     D    convert 
10.    void NameFile void    void WriteToFile void    void ReadS ysParameters void      void SysTime long int    void WriteToBuffer void    int W riteRestart  void    void checkdisk void     void CopyToFloppy void     int handler int  int  int  int    void DisplaySignOn char  char      void QTClear void     void QTWLine char    int    void QTBeep void     void LEDUpdate void     void GetKeyboardlnput     void UpdateCount char      void ReadRestart void    void QTReset void     void DisplayRestart void    unsigned ADSetup void    unsigned ADProcedures void    unsigned ADCheckRdy  void    void GetKeyboardlnput void    void Pacing void     void ADLoop void     void SignOff void     void CopyM essage char        void ReadCompass void    float GetM agHeading void    void DisplayCompass void        SHHBBEHBHEHHBHHE     void GetGPSParameters void      int ReadResponse void    void ResetGPSRate void      FILE   in     int main       int status   ReadS ysParameters     ReadRestart     harderr handler      error handler subsitute       42    status   GreenleafSet16550TriggerLevel TRIGGER 04    if status    0      printf  Error returned on Trigger    d n  status    FatalError  1001     exit 0          GreenleafS etPortHardw are COM 3 IRQ5 0x268     KVH   PortOpenGreenleafPolled COM 3 9600L  N  8 1    if KVH     NULL  FatalError  1002       GPS   PortOpenGreenleafFast COM 1 9600L  N  8 1    if GPS     NULL     printf  Port Open Failedin     FatalError   1003     exit 0         UseRtsCts GPS 
11.   1   status     call driver     if  status    0  FatalError   A001     4 return on error       ADParameters 0     ADParameters 1   ADParameters 2     status   call driver      if  status    0  FatalError   A001       return on error       4  13   2         return 0           J  RKI OR SOROR SOROR IORROR OR TOR HORROR OR IOR HORROR GROR IOR HORROR ROR IOR HORROR ORE RORORCOROR OE EOEOEORORORE     ka x   ka ADProcedures performs two functions         1  Start a conversion if a conversion is not in progress          2  Read and store the data if a conversion was completed  ki   ka Xj     t     GORACE SOROR ROR ROERORHOR RORAOE BOROR EROR ROEROR OR ROROEROEHOR OR ROE ROEHOR REGE EGEOEOE REE ERE TJ    unsigned ADProcedures    f  static unsigned channel gain l status  temp offpntbuf offdatbuf   double data tempx  tempy   static int  templ   int pitch roll   extern int ADCount     if  A DInProgressFlag   f  ADTask   11   ADParameters 0    1   status   call driver     if  status    0  FatalError  A002        return on error       temp1   ADDataBuffer   offdatbuf   FP OFF temp1    temp   ADPointBuffer   offpntbuf   FP OFF temp      ADTask   9     timer driven interrupt data acquisition     ADParameters 0   ADParameters 1   ADParameters 2  OFF ADTempBuffer    ADParameters 3    FP_SEG ADTempBuffer     status   call driver      if  status    0  FatalError  A003        return on error     ADInProgressFlag   1    return 0      ml  12   FP_    31    if ADDataReadyFlag          ADCount     
12.   case 9   4 CDI1 Flag     tempx   0     if data  gt  0 175  tempx   1    if I2   6  Record CDIFlag2   tempx   else Record CDIFlagl   tempx   break     case 11     GS Flag     tempx   0   if data  gt  0 20  tempx   1     Record GSFlag   tempx   break             if  GyroFlag  amp  amp   abs pitch   lt  7   amp  amp   abs roll   lt  5   GyroFlag   1   ADInProgressFlag   ADDataReadyFlag   0        return 0        EFS EERE LES ALAS ALES AEE ALARA EASA EASA EAE AEA REE EAA EEE EKER REE ote J         Ft ADCheckRdy merely checks to see if the interrupt driven I     conversions are complete and set a flag               MT    unsigned ADCheckRdy      int status    if ADInProgressFlag  amp  amp   ADDataReadyFlag         look for complete flag     ADTask   9     ADParameters 0    2    status   call_driver      if ADParameters 1      0  ADDataReadyFlag   1    if  status    0  FatalError  A003        exit on error       return ADDataReadyFlag          KE               ADLoop check for a condition wereby the A D system accepts all      Ft commands with no errors but never returns a conversion      JA complete signal  This condition reguires power be removed      JE and the system started cold   j   p       a AGA NA AGA ERLE AA AA AA AA AA AA    void ADLoop       printf   d  din  ADCount LoopCounter         if   ADCount  amp  amp   LoopCounter  gt  200   FatalError  A005     return          33    COMPASS C     include  lt stdlib h gt    include  lt string h gt    include    dos h     inclu
13.   serial port which is associated with the SIIG I O Professional multifunction input output board   This  allows the Data Logger to supply the 12 VDC to power the compass engine     The compass engines used in the Data Logger are set to communicate at 9600 baud  however  the default  baud rate of a new unit is 4800 baud  The parameters should be set as follows     Heading Type  magnetic  PowerUp Mode  Not Sending  Baud Rate  9600   Message Units  d  degrees   Output Type  0   Output Format  0   Damping Type  3   Damping Rate  0    The Data Logger sends a type    d1    command to the compass engine to read the present heading in degrees  and does not expect to see any output from the compass engine except responses from such commands  If  the PowerUp Mode is inadvertently set to sending  the Data Logger will flag an error immediately     Calibration should always be performed using the Data Logger built in feature with the entire system  mounted and configured in the airframe in which the system will operate     Appendix 4     Configuration of the A D System    AD12 8    The AD12 8 is configured for  5 volt input  bipolar   Analog to digital conversions are started using the  on board counter timer  The unit is configured to interrupt the main processor on end of conversion   EOC   The base I O address is 310 hexadecimal and the interrupt output is selected as IRQ 7  IRQ3 5 are  used by the serial ports      A DIP switch S1 configures the base address  the individual switches 
14.   status   ReadChar QT    lt  0  return     return on error     switch  status        case  B      Q Term BackLite     case  G    QTBackLite     return   case  C      Q Term Contrast     case  H    QTContrast     return   case  0    case  1    case  2    case  3    case  4    case  5    WriteBuffer QT mess1 4    WriteBuffer QT mess2 2    DiagnosticFlag   status   return   default   return         else     if  status   ReadChar QT    lt  0  return     read and discard first     if  status 2 ReadChar QT      0  return     read and retain second        switch  status      case  5      toggle marking     if  RecFlag  return     must be recording to toggle     if  M arkFlag     not presently marking        MarkFlag   1     set Mark flag     QTLed 1 1      MARK LED on          increment index     sprintf buffer  MARKING   9d      Marklndex    Record Mark   Marklndex     should be updated       QTWLine buffer 4      Display message     ReStartUpdateFlag   1     set flag to indicate the restart ini file  return     62    case  4      case  3      case  2      case  1      default        else    presently marking         MarkFlag   0     reset Mark flag     Record Mark   0   sprintf buffer   Last MARK was  5d  MarklIndex      QTWLine buffer 4      Display Message     QTLed 1 0    4 MARK Led off     return            calibrate compass     if  CalFlag  amp  amp   ReStartFileFlag  amp  amp   RecFlag      if not cal ing and no possibility of restart and  not recording data  allow a calibr
15.  2     ADParameters 3     status   call driver       if  status    0  FatalError   A001       ADParameters 0   ADParameters 1   ADParameters 2    i  ADParameters 3    5000   status   call_driver       if  status    0  FatalError  A001       ADParameters 0   ADParameters 1   ADParameters 2  HOt   ADParameters 3    1000   status   call driver       if  status    0  FatalError   A001       ADParameters 0     ADParameters 1   ADParameters 2   ADParameters 3      status   call driver            4  4   5                                                                             JE                   channels 0 1 2  and 3       return on error       channels 4 5  and 6       return on error       channals 8 9  and 10       return on error       channels 12 and 13     return on error      set up timers     counter 1      mode 3      period 4 47 usec       return on error       counter 2     1760period 8 millisec       return on error       set scale for point 0      return on error       same for points 1 and 2       return on error       set scale for point 3       return on error       set acale for point 4       return on error       same for points 4 thru 11       30    if  status    0  FatalError   A001       return on error                 ADTask   4   ADParameters 0   ADParameters 1   ADParameters 2    0    status   call driver      if  status    0  FatalError   A001     4 return on error       set gains     0   2    ADParameters 0    3   ADParameters 1    3   ADParameters 2  
16.  Commands may be input using the second computer to determine the internal state of the G12 receiver  including the WAAS setting and data     The first to be used is    SPASHQ PAR    which displays the parameters presently in use by the receiver   The output of this command is shown on page 77 of G12 GPS Board and Sensor Manual  However  an  additional line appears which is not shown which is descriptive of the state of the WAAS process  This  line begins  WAS  122   The remainder of this line should contain  in any order  the following     POS   ON        COR  ON        PAR  OFF        FLT  ON     TON  ON        VIT  SFT     and    PRC  ON     If these are present   the system is assumed to be operating in differential mode  however  if sufficient WAAS corrections have  not been received and decoded  the DIFF LED may not be lit     If    COR  OFF    is observed  the receiver may not be receiving the WAAS satellite  This can be verified by  the command    SPASHS WAS INF B ON     See Appendix 5 for an explanation of the output generated by  this command  The INF message will be output once per second  If the characters just before the asterisk  are NOT  3F   the WAAS corrections are NOT being received  Use the command    PASHS WAS INF B OFF  stop this message     If the INF message indicates proper reception of the WAAS signal  use the command     SPASHS WAS WCA B ON    to view the actual WAAS data being applied to the positional solution  See  Appendix 5 for an explanation of
17.  Could not request WAAS WCA message from the GPS receiver   G103 Could not change baud rate of the GPS receiver    I001 Error initializing 16550 serial UARTs    1002 Error initialing COM3 serial port  compass     1003 Error initialing COMI serial port  GPS receiver     I004 Error initialing COM2 serial port  terminal     S001 Failed to find file logger ini  This file must be present for the system to start   S002 Data in file logger ini is incomplete or corrupt    W001 Error opening data file    W002 Error writing to the data file    W003 Error closing the data file        Structure and Content of Data Files    Each data file is automatically assigned a unique name when a logging session is started  This is done to  minimize the number of steps the operator must do to record a session  The file is named using a  combination of the System identifier  the date  and the time  Zulu or Universal Coordinated Time  which  the particular logging session was started     The format is  SystemID DDHHMM YYM where     SystemID  is the character    A    or    B      DD is the two digit day of the month   HH is the two digit hour of the day in 24 hour format   MM is the two digit minute of the hour   YY is the last two digits of the year   M is a character representing the month  1 9  A Oct   B Nov   and C Dec      As noted previously  the Data Logger files are stored in binary format  The details of the binary storage  format is defined by the C    structure    record which may be found in
18.  IReadString KVH response 40 0x0d    QTW Line response  2     QTBeep      delay 3000     InitFlag   1    QTClear      CalFlag   0    ClearRX Buffer GPS      36    JETTTRSESETRETENTETETETETETERTTETETETETETETERTETETETETETTEEETETEEETERETESTEKI            Send Command to Compass and return the response  Ft Makes five attempts to send command    ka Fatal Error is Compass Fails to respond                                EL EEEA ESTAS EA ESSE AG AA      void CompassCommand char   command  char   responsel     f   int loop   0    int ERROR   0    char temp 21     if  IsRXEmpty KVH   ClearRX Buffer KVH      assure clear buffer      do      WriteString KVH command 0x0d      send the command     if command 0          delay 60      delay     else delay 200    if ReadChar KVH        gt    break     check for command accepted      ClearRX Buffer KV H      command ignored  clear buffer     if     loop  gt    5  ERROR   1     increment error count  retry      3 while loop  lt  5     if ERROR  FatalError  C001       abort with Fatal Error      do     temp 0    ReadChar KVH      purge remains of first line       while temp 0     0x0d  amp  amp  temp 0   gt    0     ReadCharTimed KVH 100L      wait for first character of next      if command 0          delay 100       increase delay for  cals        else delay 5    if responsel    NULL  ReadStringTimed KVH response1 40 0x0d 100L      ERRHAND C     include  lt  stdio h gt    include  lt  conio h gt    include  lt  dos h gt     include  lt  ctype 
19.  K OK K K OK CK OK OK OK OK OK OK OK OK K OK OK OK K OK K K OK OK K K OK OK OK OK OK K K K K OK K KOK KK              f  Reset QT   Clears dislay  Clears LEDs  resets stored parameters     pr        ET ETORSRCESORROEOEGOE EOEROEROEHEORE      void QTReset void   char rst 2     ESC  M       WriteBuffer QT rst 2    delay 350    4 command requires 300 ms         kaa AA AA AA AA AA REE KEN       ka 8   f  Adjust Contrast on Q Term Screen     pr       KE      void QTContrast void      char c   char msg 3     ESC  L       c   CurrentContrast   0x04    if c  gt  0x78  c   0x60    CurrentContrast   msg 2     char c      printf   Contrast is   x hex n  c        WriteBuffer QT msg 3           EP EFEAELELAE ST EA ELA LEA ER ELLE SEA ESSA AEA EL EAL EER ES ER EE EERE EER LEE OE EROGO   Fa K     Next three routines control the buzzer of the Q Term W            JF EUR SORSRORIOR ACRIORROROROR REESE SEAS EAA EE EAA EASES AAS ERAS RE ERE EER EEE EEE REY    void QTBeep void   f    char beep 3     ESC  O   B     WriteBuffer QT  beep  3         void QTAudioOff void        char beep 3     ESC  0           60    WriteBuffer QT beep 3         void QTAudioOn void        char beep 3     ESC  0   A     WriteBuffer QT  beep  3          I             Display and Announces Occurance of a Software Fatal Error              JF TETORSOESOERORGORESOEACEROE SE AA AA EKE EEE ERES TEES ERE ERLE ERE KKE     void FatalError char   message   f   char string 20     int i     sprintf string   Fatal Error 4 96 s   mes
20.  SystemID     time  amp secs now     time now   localtime  amp secs now    strftime tempstr 13  96 d  H96 M  96 y  time now    strcat str tempstr     month   time now 5 tm mon   1     56    sprintf LogFileName   96 s96 X   str  month    LogFileNamed   1        PACING C     include  lt  stdlib h gt    include    time h     include  lt  dos h gt     extern time t WriteTime   extern int PacingFlag   extern int WriteRecordFlag   extern int WriteTimeFlag   extern int RecFlag    extern int GPSFlag    extern int DCIFlag    extern struct record    f  unsigned long Time   int Mark   int Mode     double Latitude   double Longitude     int Altitude   int RateOfClimb   int Airspeed   int M agHeading   int Pitch   int Roll   float Ball   int CDI1   int CDIT F1   int CDIFlag1   int CDI2   int CDIT F2   int CDIFlag2   int GSDev   int GSFlag   int COG   int SOG   E    extern struct record Record     PERF ERE EERE A ERR AEE A ERR EERE A EE EE A ER ER k KKK k KK Kk EEK Robe E K kk EK Kk o eee               WriteTo Buffer will set WriteTime  Pacing   will check for loss       of 1Hz datarate  ScanGPS may reset PacingFlag if reacquired  t  fr        ELEFEA ESTES FALSE LE LEA ESTAS SEA ELA OE ECEROR SS    void SetTimeRecord void       struct time now    long temp     gettime  amp now      temp   100 now ti_hour   now ti_min   temp   100 temp   now ti_sec   Record Time   temp     57    void Pacing void        static time t PresentTime   time t diff     if  RecFlag     W riteTimeFlag  return   if  
21.  TORRGR EASES EAE OR HORROR OR EA AES ARE ARE EEE      p tj     This is the routine which creates and updates the restart        file  The data file name and the last index mark used is li     recorded in this file for possible append operations               PERS REE TTS    int WriteRestart void     extern FILE   restart    char   filename    FileName       char   mark    MarklndexNumber       char buffer 80     int ERROR   0     if IReStartUpdateFlag  return 1     ReStartUpdateFlag   0    if  restart 2 fopen  restart ini   wt    2 2 NULL   return 0    4 unable to open file      if sprintf buffer  96 s  sin   filename LogFileName      EOF   ERROR       if fputs buffer restart     EOF   ERROR       if sprintf buffer    s  d   mark  MarkIndex      EOF   ERROR       if fputs buffer restart      EOF   ERROR       fclose restart     if ERROR     unlink  restart ini     return 0         else   return 1           SYSTIME C     include    stdio h gt    include  lt  dos h gt    include  lt  time h gt   extern int SetTimeFlag      EPEFELESELES SELES ERES ELLE ELE SLES ERE SEALE EEE SLES ERE EEE RLS EEE RES EEE EH       Ej     This routine sets the system time to UTC time as determined        by the GPS system after acguistion       ka       PERESERES EASE ARES ERASE REA ERE AA RES EREE ARES AREAS PEASE ERE EH EEE RY    int SysTime long int GPSTime     68         struct time t   long int a b   long int x   10000L     a   GPSTime 10000L     b   a x    GPSTime   GPSTime   b    b    GPSTi
22.  Vertical Gyroscope requires 24 volt DC for operation  the secondary converter provides this voltage   This converter is not required if the aircraft electrical system is 24 volt DC since then the aircraft power bus  can power the gyroscope directly     The secondary DC to DC converter used is Model VT25 142 10 manufactured by Converter Concepts   Inc  This unit requires an input of 10 to 40 volts DC and provides an output of 28 volts DC   1 amp     3  Software    System Operating Software    The software for the Data Logger was developed using Borland C   Version 3 1  however  the code is all  standard C with no C   extensions  An asynchronous communication library  Greenleaf CommLib Level  2  was used to provide a more robust serial communication environment than is natively available in the  Borland product  Software drivers for the analog to digital converter system were provided by the  manufacturer  Industrial Computer Source     The objectives and constrains on the software design are outlined in the following list     Simple and easy to use  placing as little additional workload on the operator as possible   Self diagnostics of sub systems on start up   As immune from operator error as practical   Capable of recovery from in process errors     The program requires a file called logger ini to function  This file contains the system identification  A or  B  as presently only two systems have been constructed   the path or directory into which the logger data  files are 
23.  any of the program listings in    Appendix 7     Note that an    int    is a 16 bit and a    long  int  is a 32 bit integer  A    float    is equivalent to the    13       32 bit floating point and a    double    is equivalent to the 64 bit floating point representation defined by  ANSI IEEE 754 1985  IEEE Standard for Binary Floating Point Arithmetic     Since it was never intended that the data files be read directly in binary format  the above is more for  informational than practical purposes  The following tables indicate the variables stored in the files  The  first is exactly the same variables and in the same order as the raw binary data files described above     Table 2 Legend for Latitude Longitude ASCII Conversion                                                                            Column Heading Description Format and Limits  Time Universal Coordinated Time HHMMSS  Mark Observer Data Mark Auto incrementing integers  Mode GPS Operational Moda    0 2 none  2   non diff  3   diff  Lat Latitude in WGS 84 Datum    or    ddmm mmmmm    indicates North Latitude  Long Longitude in WGS 84 Datum    or      dddmm mmmmm  t indicates East Longitude  Alt Altitude Above MSL Units of feet  Rate of Climb Vertical Speed Units of feet minute  Airspeed Indicated Airspeed Units of Knots  MagHeading Magnetic Heading Degrees  Pitch Pitch Attitude Degrees  4 nose up   Roll Roll Attitude Degrees    right   Ball Coordination  Yaw  Units of  Ball Width   CDI 1 VOR LOC   1 Course Devia
24.  f       char temp1 15  temp2 5   string 20    Log File       if  Recordindex  lt  10   amp  amp   FlushRecordBufferFlag  return     not yet and no flush     if Recordindex     0       FlushRecordBufferFlag   0    return        if we get here  there is data to write      if  LogFileNamed     50    if  ReStartFlag        NameFile       generate file name from date     if strlen DataDirPath      If there is a path  add it     strcpy  directory  DataDirPath    strcat directory LogFileName      add filename     strcpy  LogFileName  directory      copy to global       LogFileNamed   1   ReStartUpdateFlag   1   fnsplit LogFileName  NULL  NULL temp1 temp2    strcat temp1 temp2    strcat string temp1    QTW Line string 2       if  logfilepointer   fopen LogFileName  a  b        NULL  FatalError  W001     if  fw rite RecordBuffer  sizeof Record  Recordindex  logfilepointer      Recordindex   FatalError  W002     if fclose logfilepointer     0  FatalError  W 003     Recordindex   0   FlushRecordBufferFlag   0        PERF REESE RES AERA ES ARR AR AER EE A K Kk A A EE A EEK RE RO OR oo                WriteToBuffer averages summed fields in the data record and         writes the resulting record into the buffer   J            EA ERAS AL ESE RES ERE RARE EE EE RE RE RR    void WriteT oBuffer    f  static unsigned int count   0   char s 10    float tempy   if WriteRecordFlag      printf   Count    d n  ADCount    printf  Loops    u n  LoopCounter    LoopCounter  0     if A DCount        Rec
25.  flight data     After ten seconds  the automatically generated filename will be displayed  The filename format is   SystemID   day   hours   minutes    year   month   e g  A072115 985 is the filename of the flight data  taken with System    A    beginning at 2115Z on May 7  1998     Once recording  the operator may press TGGLE to flag certain critical segments of flight data records  The  MARK LED will light and all subsequent records will be marked until TGGLE is pressed once again  A  mark is an integer recorded in the record  beginning at one  1  and incremented upon each use of the  marking function  The bottom line of the display indicates the present state of the marking function and the  present or last marking number used     If the GPS signal or differential corrections are lost while recording  the recording will continue with no  position or altitude data in the first case or with loss of precision in the second  The appropriate LED will  blink rapidly to signal the loss of either function     Pressing START STOP once again terminates recording of data     Pressing the EXIT key will attempt to write the recorded data to the floppy disk  Regardless is the success  or failure of this operation  the system will shut down the interfaces to the data systems and inform the  operator when it is permissible to shut off the power to the system     Errors and Recovery    There are many possible fatal  and non fatal  errors  which will be trapped  and a message displayed on 
26.  if ns     S   PLat     1 0   if ew     W  PLon     1 0   if POSTime  lt    Record Time  WriteRecordFlag   0   else Record Time   POSTime   Record Latitude     PLat   Record Longitude   PLon   Record Altitude  3 2808  PAlt   Geoidal      Record RateOfClimb   0 25 Record RateOfClimb   147 636  Rate     m s to ft min       49       three second time constant added to rate of climb    Record COG   COG   Record SOG   SOG     if SetTimeFlag  SysTime Record Time      set system time to GPS      4 Removed for WAAS  if PFlag     1   f  Record Mode    0x0001   DCIFlag   10      else     Record Mode  amp   Oxfffe   if  DCIFlag  gt  0   amp  amp   LastTimeD    POSTime   DCIFlag     LastTimeD   POSTime         if POSTime  gt  LastTimeD   2      Record Mode  amp   Oxfffe   if DCIFlag  gt  0  DCIFlag        if  GPSFlag  gt  0   amp  amp    LastTimeT   1L   gt  POSTime       Record Mode  amp   Oxfffd   GPSFlag        PacingFlag   WriteTimeFlag   0   else       Record Time        Record Mode   0    if GPSFlag  gt  0  GPSFlag     if GPSFlag     0  DCIFlag   0   PacingFlag   WriteTimeFlag   0             GPSBufferFlag index    0    return        EFEES ELE SELES ELES TASS EEE EAE A ERE EAE A TREE EES EER EERE              WriteToFile uses previously defined file name if present or A      generates a new name based on the date and time  Then Ay     writes the contents of the buffer to this file and closes        the file each time      p       KE     void WriteToFile       char directory 80     
27.  of Third Serial Data Port    The SIIG I O Professional multifunction input output board  Model IO1809  used in this application  requires that only one serial port be active and that the other serial port and the parallel port be disabled     The board is configured by means of jumpers  There are fifteen sets of three pins each  the sets are labeled  JP1 through JP15  Each set may be jumped in three ways     e H  the center and upper pins jumpered  e  L  the center and lower pins jumpered  e Open  no jumper installed    The following table documents the jumper configuration used in the Data Logger     Table 4 SIIG I O Board Configuration     Position  Jumper   Position   Jumper     3   H   IP   OPEN      ji   H         OPE   OPE   i         N    po   H    N    24    Appendix 3     Configuration of the KVH Compass System    The KVH C100 compass system is configured by software supplied by the manufacturer  This is MSDOS  program but can be run within the Windows environment  The files C100USR EXE and CLIST TXT  must be copied to a directory and the executable run from that directory     Since the C100 compass system is mounted in separate enclosure and both the RS 232 serial  communications and the DC power are routed through the single interconnection cable  the following  procedure should be used to run the setup program  Use a serial extension cable to connect the computer  running the C100USR program to the cable in the Data Logger which is normally connected to COMG  the
28.  of minimizing the file writing time and  to allow them to be easily transported via floppy disks  Although the binary format uses standard IEEE  floating point formats  it was determined that conversion to a standard text  ASCII  format would allow the  maximum flexibility in viewing and analyzing these data     Programs have been written to read the binary data files and convert the records to text format  ASCID  In  the converted ASCII file     tab    characters separate the fields of each record and records are separated by a  carriage return line feed  newline  character s      There are two versions of the conversion program  these differ only in the treatment of the horizontal  position information  The standard horizontal position output of the Global Positioning System Receiver is  latitude and longitude  The first version of the conversion program  convert exe  directly converts this  data to the ASCII format  The second version  utm con exe  converts the horizontal position data to  Universal Transverse Mercator  UTM   in place of latitude and longitude  UTM uses    northing    and   easting  as the coordinates  in addition to a UTM zone number      The advantage of using UTM coordinates is that UTM is a rectilinear system  This simplifies the process  of plotting the aircraft s  course  The    northing    and    easting    coordinates are expressed in meters and are    converted from the latitude longitude data to a resolution of one meter in this application     
29.  plugging it into the spare   there is no need to remove the original unit nor to connect the inputs to the spare AT16 P used for testing  purposes  If this procedure is used  be certain that the replacement AT16 P is placed on an insulating  surface before applying power     Spare AD12 8 and AT16 P are available  already properly configured  in addition to a spare cable used to  connect these units     Operational Checks Using the Terminal    If no errors are flagged but it is suspected that there is a problem with one or more of the analog to digital  channels  the actual converted data from these channels can be displayed on the handheld terminal to aid in  maintenance and troubleshooting     When the Data Logger is in the recording mode  the actual values being stored in the flight data records for  pitch  roll  airspeed  ball  yaw   and radio navigation course deviation indicators  CDP s   and associated  flags can be displayed on the third line of the alphanumeric display     Pressing    1    displays the pitch and roll in degrees  positive is right or up    Pressing    2    displays the airspeed in knots and the ball position in unit of    ball width   Pressing    3    displays the VOR LOC  1 course deviation in percent and the flag status  Pressing    4    displays the VOR LOC  2 course deviation in percent and the flag status  Pressing    5    displays the Glideslope course deviation in percent and the flag status  Pressing    O    clears the display    Errors in Hig
30.  t7    delta 4 delta meridian t8   delta 6 delta meridian t9      north   floorl  north   0 5L     east   floorl  east   0 5L           void initialize void      long double TN2 TN3 TN4 TN5   recflat   1 0L flat   bmajor   major  1 0L  flat    eccensqr   1 0L  powl bmajor major  2 0L    eccenbsqr   powl major bmajor 2 0L   1 0L     TN    major bmajor   major  bmajor      TN2   TN TN   TN3   TN2 TN   TN4   TN3 TN   TN5   TN4 TN   AP   major    1 0L  TN   5 0L  TN2   TN3  4 0L   81 0L  TN4   TN5  64 0L    BP   3 0L   major   TN  TN2   7 0L   TN3  TN4  8 0L   55 0L  TN5 64 0L  2 0L     CP   15 0L  major   TN2  TN3   0 75L  TN4  TN5   16 0L   DP   35 0L majort  TN3  TN4   11 0L  TN5 16 0L  48 0L   EP   315 0L  major   TN4  TN5  512 0L         long double rad_cur long double x long double y  long double z     long double temp   temp   x sqrtl 1 0L   y z z    return temp           long double true mer dis long double a  long double b  long double c  long double d  long double e   long double f     long double temp     temp   atf  b sinl 2 0L f    c sinl 4 0L f   d sinl 6 0L f    e sinl 8 0L f    retum temp      int main void   char InputFile 80   OutputFile 80   temp 10      int Res   FILE   in     75    FILE   out   char StrBuffer 500    struct record   Buffer   int size i count factor j   char name M AXFILE   ext MAXEXT    char newext MAXEXT      txt    int zone   long double north east     printf   Data Logger Conversion Utility n n     printf   Enter name of File to Convert    
31.  the aircraft frame and electrical systems  The output is in units of degrees with  a resolution of 0 1 degrees  The compass engine is provided with user selectable output filters and a  selectable time constant for this filter  The filter selected for this application is a double low pass filter  with a time constant of three  3  seconds     The C100 Compass Engine has a built in autocompensation system that enables the system to calibrate  itself to maintain accuracy to a fraction of a degree even when surrounded by the airframe that distorts the  earth s magnetic field  The autocompensation procedure is performed upon initial installation of the Data  Logger     The Data Logger displays the heading determined by the compass system during the start up procedures   The operator is given the opportunity to compare this reading with the aircraft magnetic compass to verify  proper operation  In the event of a discrepancy  the operator or a technician can initiate a new  autocompensation procedure directly from the Display Control Console  See the Maintenance and  Troubleshooting section for details     The flux gate compass system is not gyroscopically aided  This implies that large errors in the magnetic  heading will occur during periods the maneuvers of the aircraft cause the flux gate to deviate from the  horizontal plane  A coordinated turn is one such maneuver  where the perceived gravitational force is  perpendicular the plane of the aircraft   s    wings and not perpend
32.  the output generated by this command  This message must contain five  or more satellites for which the flag if either    G        H     or    U    before the position is marked as differentially  corrected     A D Problems    Analog to digital converter problems may be of several levels of severity  Each of these will require a  somewhat different approach in troubleshooting  The A D system itself consists of two discrete circuit  boards  the main A D converter  AD12 8  which is located in the computer card cage  and the multiplexer  board  AT16 P  mounted on the side of the Data Logger enclosure  Each of the multiplexer channels used  is wired to one of the internal sensors or to the external radio navigation outputs of the aircraft  The radio     20    navigation signals pass through a set of relays used for emergency isolation of the Data Logger and  essential navigation displays     Each of the following paragraphs describes a particular class of A D problem   Error Codes Displayed    If an A D error code is displayed on the handheld terminal  type A   the problem is localized to the two  circuit boards mentioned above or the cable  which connects the two boards  Verify that the AD12 8 is  properly seated in the card cage and that the cable is firmly seated to each mating connector  If the  problem persists  replace the AD12 8 and AT16 P one at a time to determine which has failed  The AT16   P can be substituted by merely unplugging the cable from the installed unit and
33. 0  Record CDI2   0     Record GS Dev   0        return       REPRE AES A EEE AE ES ARES ARE A EE A RE EA ET A AE A ET A AE Roo RE RE f         checkdisk checks for the presence of a disk in drive A and if     provides an estimate of the length of flight data which can     be copied to this disk   TE    aaa NA AA AA AA AA AA AA AA      void checkdisk void   struct diskfree t free     long avail   int size     22    float time   char line1 22      if  dos getdiskfree 1  amp free     0        QTClear     QTWLine   Insert a Formatted   1    QTWLine   Disk into Drive A   2    QTWLine  Press ENTER to Cont   4    QTBeep     ReadCharTimed QT 15000L    QTClear           if _dos_getdiskfree 1  amp free      0        avail    long free avail clusters    long free bytes per sector     long free sectors per cluster    size   sizeof Record     time    float avail  float size     time    3600 0   sprintf linel  space for   4 2f hours  time    QTClear       QTWLine   This Diskette has  1    QTW Line line1 2    QTWLine   of Flight Data  3      QTBeep      delay 3000     QTClear      FloppyFlag   1           JEEEKEEKE EEE EKEK KEEKEEKE EKE EKEK EEKE KREE KEEKEEKE EEEE KEEKEKE EEEE EE              CopyToFloppy copies all data files in the datasave directory to  7     the floppy  It copies only file with are not archived      f  After a successful copy to floppy  the source file is mark as ka    ft as archived so it will not be copied again  The source file kj  p is retained  not erased       J 
34. 1      QT   PortOpenGreenleafPolled COM2 9600L  N  8 1    if QT   NULL  FatalError  1004     UseXonXoff OT 1    QTReset     if ReStartFileFlag  DisplayRestart     else     DisplaySignOn SystemID  V2 2P     checkdisk       check for floppy     DisplayCompass     QTWLine   STARTING  2         ADSetup        X HEHEIBIBHBHBHHBHHBHHBE     4 GetGPSParameters           SEHEBHBHHBHHHHBHHHHBE      GPSInit     ClearRX Buffer GPS    ClearRX Buffer QT      do     LoopCounter     1   ADProcedures     ReadGPS     GPSScan     if W riteRecordFlag   f  printf  Time    ld  Mode    d  GPSFlag   96d  DCIFlag    d n    Record Time Record M ode  GPSFlag  DCIFlag    printf  Lat    If  Long    If  Alt   96d  Heading    d n    Record Latitude Record Longitude Record Altitude Record M agHeading    if ADCount   printf   d  d n n  Record Pitch A DCount Record Roll A DCount          WriteToBuffer     WriteT oFile     LEDUpdate     CalCompass     GetKeyboardlnput     WriteRestart     ADCheckRdy       43    delay 1    Pacing        ADLoop         w hile  ExitFlag    CopyToFloppy     SignOff     GPSDelnit     PortClose OT    PortClose KVH    PortClose GPS    return 0      JETTTOAESCOETOESORROEROEROEROREAOEACOEROEROEROEROEROEROEREROERUEROEAUERUEROEROEEOEREORAOE RELL RE OR             ka GPSInit reset the receiver and then sets up 3 D nav and         the differential parameters  The receiver will return           a GGA and POS message each second  Any error is considered        fatal               JE ERCESROE
35. Aviation Research Lab  Institute of Aviation    University of Illinois  at Urbana Champaign  1 Airport Road  Savoy  Illinois 61874       IPC DATA LOGGER   A Flight Data Recorder    Operation Manual  Change 1    Lester Lendrum  Henry L  Taylor   Donald A  Talleur   amp  Tom W  Emanuel  Jr     Technical Report ARL 02 2 FAA 02 1    February 2002    Prepared for  Federal Aviation Administration  Civil Aeromedical Institute  Oklahoma City  OK    Cooperative Agreement DTFA 2001 G 037       Forward  To  Change 1    Change 1 to the Technical Report ARL 00 8 FAA 00 5  July 2000 titled IPC DATA LOGGER  A Flight  Data Recorder   Operation Manual has been prompted by two developments  First and most important  the  source of the GPS differential corrections used in the original Data Logger has been lost with the departure  of Differential Corrections  Inc  It has been necessary to establish a substitute source for differential  correction data  Second  since the DOD has discontinued  selective availability   autonomous GPS position  accuracy is marginally sufficient for the design purposes allowing the original restriction  of not allowing  data logging unless differential corrections were available  to be relaxed  This document includes the  changes made to the software  hardware  and operational modes of the IPC Data Logger  The present  system now uses the Wide Area Augmentation System  W AAS  for differential corrections     1  Introduction    The IPC Data Logger  a flight data recor
36. B system       if GFlag     2     if differential set bit 0   1     14  Record Mode    0x0001     47         DCIFlag   10        else       Record Mode  amp   Oxfffe     if not clear bit 0         if  DCIFlag  gt  0   amp  amp   LastTimeD    POSTime   DCIFlag     LastTimeD   POSTime            removed to here          always GPS valid if this message is recieved so         Record Mode    0x0002     set bit 1   1     GPSFlag   10     set GPSFlag      LastTimeT   POSTime        GPSBufferFlag index    0     mark buffer as read     return     if strst GPSBuffer index     PASHR WAS WCA      NULL     is a WAC message       i          LastTimeD   POSTime   printf   Scanned WCA message at  ld n  POSTime      if sscanf GPS Buffer index  w acformat  amp satcount     1     scan failed         Record Mode  amp   Oxfffe    if DCIFlag  gt  0  DCIFlag      GPSBufferFlag index    0    return     if  Sprintf satascii    02d  satcount      EOF     convert to ascii failed       Record Mode  amp   Oxfffe   if DCIFlag  gt  0  DCIFlag     GPSBufferFlag index    0   return      startread   strstr GPSBuffer index  satascii     find start of data          build format string     strcpy  readformat  satascii    for i  0 i   satcount i      strcat readformat  part      error 2 sscanf startread readformat    amp SVx 0   SVstatus 0    amp SVx   amp SVx 3  SVstatus 3   amp SVx   amp SVx 6   SVstatus 6    amp SVx   amp SVx 9   SVstatus 9    amp SVx    1   SVstatus 1    amp SVx 2   SVstatus 2    4   SVstatu
37. Buffer i   StrBuffer    fputs StrBuffer out    j   factor         js      while 1    fclose in    fclose out    return 0        UTM Post Flight Software    UNIVERSAL TRANSVERSE MERCATUR ASCII CONVERSION     include    stdio h gt    include  lt  dos h gt    include  lt  ctype h gt    include  lt  bios h gt    include  lt  alloc h gt    include  lt  stdlib h gt    include  lt  conio h gt    include  lt  math h gt    include  lt  string h gt    include  lt  dir h gt    include  lt  io h gt     long double d rad   M PI 180 0    long double major   6378137 0L    long double flat   1 0L 298 257223563L   long double recflat    long double bmajor    long double eccensqr  eccenbsqr    long double TN AP BP CP DP EP    long double FE   500000 0L    long double OK   0 9996L     struct record       unsigned long Time   int Mark   int Mode     double Latitude   double Longitude     72    int Altitude     int RateOfClimb   int Airspeed   int M agHeading   int Pitch   int Roll   float Ball   int CDI1   int CDIT F1   int CDIFlag1   int CDI2   int CDIT_F2   int CDIFlag2   int GSDev   int GSFlag   int COG   int SOG   X    struct record Record     void convert struct record rec int zone  char   str          sprintf str   96 Id t  d t  d t  d t  15  Olf t  15  Olf t  d t  d t  d t  AIt  d t  d t  5 2 f t  d t  d t  d t  d t  d t  d    t  d t  d t  d t  d n    rec Time   rec Mark   rec Mode    zone    rec Latitude   rec Longitude   rec Altitude   rec  RateOfClimb   rec Airspeed   rec MagHeading   
38. E EER ERE EK            ka UpdateCount writes the current record number to the display      ka as an indication of continuing data collection  ui           TN    void UpdateCount char   msg     f  char pos 5     ESC  I       K     WriteBuffer QT pos 4    WriteString QT msg  1          PEREFS EES EKEK K KKK ERASE REA PRE OR KKE E KEEK KE ERAS ARES K EKKE KEKEE             ka SignOff display a message to the operater when the power may kf      safely removed from the system  all file copied and the      f  system is idle             i     EE FKA KKK E K k k KK Ek E E kkk k EAR ERA EES AS ERR EER E Kk E K kk K EKKE E ERKEK       void SignOff void       n  int i   QTClear     for i  1 i lt  6 i      QTLed i 0    QTWLine   Program Terminated   1    OTWLine   You may safely shut  2    QTWLine   down the system   3    delay 100      64    JETTTRSESETXETENERETETETETETETETTTERTETETETERETTETTTETETITIXTTETEEETES             Ft CopyM essage displays during the copy to floppy process warning Ki     the operator to wait until the process is completed      Ika       aaa EL ELE EEE ALES EE EE AE EEE CELA E ES EEE EE EEE EEE E REE A ERE EEE EER    void CopyMessage char   s          int i     for i  1 i lt  6 i      QTLed i 0    QTClear      QTWLine   Please Wait   1    QTWLine  W riting File   3    QTWLine s 4          PERRET PPT TRES ERASER ED ERASE RES EERE ARES ERA KEI PRES ESEEER EH EH KKJ   ba       ka DisplayRestart informs the operator that a restart ini file       5 was found an data 
39. E SendGPSCommand attempts five times to send the command to the xj      receiver  It looks at the response of the receiver and scans      E for  ACK  which indicates the command was accepted  It will        attempt three repeations before returning failure  8                JETTA KKKAKEKAKEKKAKEKAEKKKKEKAEKKEEEK  EEKKKEK  EKKEEEK  EEEKIKKEKKKEKKKEKKKKKKI    int SendGPSCommand char   buffer   f   int status i    int count   0    char response 100     char   ack    ACK      do       for i  0 i lt  5 i         ClearRX Buffer GPS       printf   s n  buffer      testing only     if  status   WriteString GPS buffer  2       0  break      if status    0  FatalError  G001     ReadStringTimed GPS response 99  2 1500L    if GPS  gt  status     ASSUCCESS   f  if strstr response ack     NULL  return 1       count       while count  lt  3    return 0           int ReadGPS  void    f  static int CurrentBuffer  static int Bufferlndex 2   int input     0    0 0      while  IsRX Empty GPS      input   getc in     EOF  87 4 while characters are available          input   ReadChar GPS      get next character     if input  gt    0     valid read       if  input    0x0d   amp  amp   input    0x0a    GPSBufferFlag CurrentBuffer    0     test of flags     GPS Buffer CurrentBuffer  Bufferlndex C urrentBuffer          char input   GPSBuffer CurrentBuffer  Bufferlndex CurrentBuffer     0x00     else    45       input   Ox0d     REMOVE AFTER TEST     if input     0x0d   f    GPSBuffer CurrentBuffer  Bu
40. IEETTEETITETIKIKIEETIEI EES ERE SEALS ERE SEES EERE EE EERE ERE EES      int FileCopy char   dest  char   source     FILE   in    FILE   out    int status  count size   int   buffer    int error   0     if  in   fopen source  rb        NULL  return 0    if  out   fopen dest  wb        NULL  return 0    size   sizeof Record    if  Duffer    int    malloc 100 size       NULL  return 0    do     count   fread buffer size  100  in    if  count  break   status   fwrite buffer size count  out    if status    count  error   1    while  error      fclose in    fclose out    if error          54    unlink dest      return 0         return 1        TFT ETTER EA ELELE SEA ES AEA EER EE EAL SE EA EDEL EE EERE EER ERE RARE    J         ReadCompass calls GetM agHeading and places the result in the      ka present record      F         JR ITK KAIKKI BOR a TOR IOR OR OR ICE IOREOROROR OR HORE JORROR a a      void ReadCompass void   float head     head   GetM agHeading     Record MagHeading    int  head   return           X HEBIEIEIBHBHBHHBBE    void GetGPSParameters void     f  QTClear     QTWLine  GPS Parameters   1    QTWLine   High Dynamics   3    QTWLine   Press Y or N  4    GPS H D Flag   ReadResponse         QTWLine  Partial Mode   3    GPS Partial Flag   ReadResponse        QTW Line  Precision Mode   3    GPS Precision Flag   ReadResponse     QTClear           int ReadResponse void        char buffer 10      int test   0   int value   do     delay 100      if  ISRX Empty QT         Re
41. PacingFlag     if time  amp PresentTime   gt  WriteTime   2L     SetTimeRecord     PacingFlag   1   WriteRecordFlag   1   GPSFlag   DCIFlag   0   WriteTime   PresentTime           else     time  amp PresentTime    if  diff   PresentTime   WriteTime      0  return   else     Record Time     diff   WriteTimeFlag   0   WriteRecordFlag   1            QTFUNCT C     include  gsci h    include  ibmkeys h    include  asciidef h    include  lt  stdio h gt    include  lt  stdlib h gt    include  lt  string h gt     extern struct record    f  unsigned long Time   int Mark   int Mode     double Latitude   double Longitude     int Altitude   int RateOfClimb   int Airspeed   int M agHeading   int Pitch   int Roll   float Ball   int CDI1   int CDIT F1   int CDIFlag1   int CDI2   int CDIT F2   int CDIFlag2   int GSDev   int GSFlag   int COG   int SOG   E    58    extern struct record Record   extern int DiagnosticFlag   extern PORT  GPS    extern PORT  QT     extern unsigned char CurrentContrast   extern char SystemID   extern int RecFlag   MarkFlag   Marklndex     ReStartM arkIndex   ReStartUpdateFlag   ReStartFlag   CalFlag   ReStartFileFlag   GPSFlag   DCIFlag   CompassCheckFlag   GyroFlag   FlushRecordBufferF lag   ExitFlag    extern int BannerFlag   PacingFlag                 f  Clear Only the Text on Q Term Terminal      X       ft 5 RORAOEGRORORRORROERORHOR ROREOEGRORHOR OR AA SER EAA RES HORRORE GERE REE ER      void QTClear void     char str 2    0x1b  E     WriteBuffer OT str 2    
42. Procedure    1  Remove the International Power Sources PD110 40L Power Converter and install the model PD110   40M in its place  It is the same physical size and is a pin for pin replacement  no modifications need  be made to the cabling     2  Remove the three or four P amp B relays and replace with the 24 VDC units    3  Remove the 12 VDC fan assembly and replace with the 24 VDC unit     Optionally  the Data Logger power switch circuit breaker may be replaced with a unit rated a 5 amperes   NOTE  In the event that new Data Logger units are built for use in 24 VDC aircraft  the secondary power    converter  Converter Concepts  can be completely eliminated from the construction  This  converter is used only to provide power to the gyroscope in 12 VDC aircraft  The gyroscope s         The contacts of the selected relay should be a minimum of gold flashed since the signals passing through  are small and any excess contract resistance may effect the accuracy of the radio navigation data     22    motor can be wired directly to the switched A  power buss of the Data Logger when operated in a  24 VDC aircraft     Acknowledgments and Disclaimer    The work supporting this Technical Report was supported under Federal Aviation Administration  FAA   Cooperative Agreement Award Number 2001 G 037 with the Institute of Aviation  University of Illinois at  Urbana Champaign  The FAA technical monitor for this research grant is Dr  Dennis B  Beringer  AAM   510  the FAA Grants Analyst admin
43. SORE LEA TA ELSA AES ELS EEE EA ELLA EES EEE EEA EA EL EAE ES EERE ERE EIE SIIKI    void GPSlnit void       int status      Reset GPS to default settings     if  SendGPSCommand   PASHS RST    FatalError   G002       ResetGPSRate          Set filter to lower dynamics zzz      if GPS H D Flag     if  SendGPSCommand   PASHS LPS 1 2 1    FatalError   G003      delay 100     if  SendGPSCommand   PASHS LPS 1 2 1    FatalError   G003a             Set GPS Mode to 3 D     if  SendGPSCommand   PASHS PMD 0    FatalError  G004          Set Up to search for WAAS satellite     if  SendGPSCommand   PASHS WAS 122    FatalError  G005          Turn on ION corrections models     if ISendGPSCommand    PASHS ION  Y     FatalError   G006          Set WAAS to correct position output     if  SendGPSCommand   PASHS WAS POS ON    FatalError  G007          enable precision mode              if GPS Precision Flag   if  SendGPSCommand   PASHS WAS PRC ON    FatalError   G007a          Set INF message on     if  SendGPSCommand   PASHS WAS INF A ON    FatalError  G008          Set message GGA ONLY SENT IF POSITION COMPUTED     if  SendGPSCommand   PASHS NME GGA A ON    FatalError  G009          Set message POS ALWAYS SENT     if  SendGPSCommand   PASHS NME POS A ON    FatalError  G010          Request WAC message       44    if  SendGPSCommand   PASHS WAS WCA A ON    FatalError  G011          void GPSDelnit void      WriteString GPS   PASHS RST   2       SendGPSCommand   PASHS RST                  I        
44. The source code for both conversion programs may be found in Appendix 7     10    4  Operation    General Operational Procedures    The initial display on the handheld display control console is a sign on message indicating the SystemID  and software version  This is followed by a check for the presence of a floppy disk in drive A and giving  the operator the opportunity to insert one  If a disk is present  an estimate of the flight length  in hours  that  can be stored on this floppy is displayed  If there is no disk in the drive  the program continues after a  short delay     The system then displays the magnetic heading to allow the operator to judge if the system compass and  aircraft compass agree  Pressing ENTER terminates this display     As soon as a GPS lock is obtained  the system clock is synchronized to UTC  Zulu  time   LED s on the terminal are illuminated to indicate     e GPS position fixes are available  GPS   e Position data are differentially corrected  DIFF   e System vertical gyro has erected  GYRO     Once these three conditions are true  LED s lit   the message    READY    will be displayed and pressing the  START STOP key begins recording data  In the present version  differential corrections are not required to  start logging data  The REC LED will light  indicating recording is in progress  The top line of the  display will indicate the number of records that have been recorded  this number will continue to increment  as long as the unit is recording
45. adStringTimed QT  buffer  10 0x00 1      if buffer 0       B     buffer 0       G   QTBackLite     if buffer 0       C     buffer 0      H   QTContrast     if buffer 0       Y     buffer 0      V       test   1   value   1      if buffer 0      N     buffer 0      S    f  test   1   value   0        ClearRX Buffer QT          while  test      55    return value            ECCE AHAHAHAHA KA     void ResetGPSRate    f  char response 100    int error     delay 1000     WriteString GPS   PASHS SPD A 7   2     delay 1000     WriteString GPS   PASHS SPD A 7   2        Tests indicate a single attempt fails where two seem to  switch the baud rate reliably       PortClose GPS    delay 1000    GPS   PortOpenGreenleafFast COM 1 38400L  N  8 1    if GPS     NULL   f  printf  Port Open Failedin     FatalError   G103     exit 0      return     NAMEFILE C     include  lt  stdio h gt    include  lt  dos h     include  lt  time h gt   include  lt  string h gt     extern char LogFileNamel    extern int LogFileNamed   extern char SystemID       AGA NA AA SELES AA AA AA                 This routine gives the data file a unique name based on the        System ID  year  month  day  hour  and minute  UTC time   kol           JERTAKTEKEKKEKTEKEEKEEKEKEEKIKEEKEIETKEEEEEKEEIEKKIKTKIKKKKIKKKKIKKKKIKKI    void NameFile         TZ environmental varible should be TZ  GMTO and clock should be GMT     struct tm  time now   int month   time t secs now   char str 80    char tempstr 80      sprintf str  96 c  
46. ag  LastDCI   DCIFlag   if GyroFlag  OTLed 2 1    if  PacingFlag  DisplayReady           void PitchRoll int pitch  int roll   f  char str1 5    char str2 5    char position1   char position2              ESC  I   B          ESC  I   B   K       UI UI    sprintf str1  96 3i   pitch    sprintf str2   963i   roll    WriteBuffer QT position1 4    WriteString QT str1  1    WriteBuffer QT position2 4    WriteString QT str2  1          void ASPend int AS float ball     char str1 5    char str2 5    char position1  char position2     5     ESC  I   B          5     ESC  I   B   K   sprintf str1  963i    AS    sprintf str2  96 4 2f  ball    WriteBuffer QT position1 4    WriteString QT str1  1    WriteBuffer QT position2 4    WriteString QT str2  1      RESTART C     include  lt stdio h gt    include  lt stdlib h gt    include  lt  dos h gt    include  lt string h gt         include  logger h        extern char LogFileNamel T    extern intReStartM arkIndex   Marklndex    int ReadRestart void     int WriteRestart void     extern FILE   restart    extern int LogFileNamed    extern int ReStartFileFlag    extern int ReStartUpdateFlag     66    PERSE EES AES AERA AAS AER A A RRA E K kk KKK k EKK A R K kk EEK OR RE              la This routine looks for the file  restart ini   If it is nj   lai present  and can be read  the operator is given the option     JE to restart data loggong to the same file for which logging       was interrupted                 restart ini  will only exist if a fai
47. and receives data and is supplied  5 VDC power through the single serial cable  connected between the Data Logger enclosure and the unit  Pin 5 is the standard ground pin for 9 pin serial  connectors but pin 9 is used as the  5 VDC input for the OTERM II    Use a serial extension cable to  connect the computer running the OSETUP program to the cable in the Data Logger  which is normally  connected to COM2  the lower serial port on the single board computer card   This allows the Data Logger  to supply the 5 VDC to power the OTERM II handheld terminal     27    Appendix 7     Source Code    System Operation Software    The following modules are compiled together and linked with the a12drvc obj file provided by Industrial  Computer Source  ICS  and GCLL LIB provided by Greenleaf Software  Header files are also provided   al2drvc h from ICS  ibmkeys h  asciidef h  and gsci h from Greenleaf Software  The memory model  required by the ICS module is the  large  and therefore that model has been used the compilation  The  entry point of the program  main  is to be found in the file gpstest c     ADFUNCT C     include  lt  stdio h gt    include  lt  dos h gt    include  lt  math h gt    include  lt  ctype h gt    include  lt  bios h gt    include  lt  alloc h gt    include  lt  stdlib h gt    include  lt  conio h gt    include  al2drvc h     extern float PitchOffset   PitchGain   RollOffset   RollGain   AltOffset   AltGain   BallOffset   BallGain    extern intGyroFlag     extern stru
48. annels  see    Errors in Low Level Channels    later in this section      The remaining variables  pitch  roll  ball  yaw   and airspeed  may be calibrated by changing the respective  gain and offset parameters in the logger ini file previously mentioned  Each Data Logger has a program   adtest exe  which may be useful in the adjustment of the gain and offset numbers  This file is located in  the same directory as the main Data Logger file  gpstest exe  and uses the same logger ini data as the main  Data Logger program     adtest exe displays on the VGA display all of the above mentioned variables  It  does not require the compass engine or the handheld terminal to be attached or functional     adtest exe     only requires that the A D system is operational  i  e  communicating with the single board computer     Troubleshooting    General Computer Problems    To operate the Data Logger system as a MSDOS computer  a standard PC keyboard and a VGA capable  display must be connected  The keyboard connector is located on the side of the card cage  the 15 pin  VGA display connector is located on the connector panel of the Single Board Computer  the only full   length card in the card cage      Power the Data Logger system and allow it to start normally  If there were no fatal errors during start up   the  enter  key on the handheld terminal will have to be pressed to acknowledge the compass heading  check  then the    EXIT    key should be pressed  The standard shutdown message sh
49. are labeled A3 through A9  Switches  A3  A4  and A6 are ON and the remainder are OFF to configure the address of 310 hexadecimal     Jumpers accomplish the remainder of the configuration and these are set as listed below   e  BIP UNIP jumper set to BIP   10V 5V jumper set to 5V   CLKO jumper present   TMR EXT jumper set to TMR   EXT EOC jumper set to EOC   IRQ jumper set to IRQ7    25    AT16 P    The AT16 P is configured to use programmable gain settings and is set to output  5 volts  All other  settings and jumpers are on the standard default settings  if present      A DIP switch S1 on the AT16 P board configures these setting  The individual switches labeled GMO   GMI  and GM2 are set OFF  the remainder  labeled G 2  SHO  GPO  GP1  and GP2  are set ON     Appendix 5     Ashtech WAAS Software Commands    The G12 software  Version Gt35  has been modified to receive and apply the WAAS corrections to the  positional data output of the receiver  The following are some of the commands added and do not appear in  the Ashtech G 12 Reference Manual  only those actually used in this application are described      PASHS WAS OFF prn      PASHS WAS POS OFF ON     PASHS WAS COR OFF ON    SPASHS WAS PRC  OFF ON     PASHS WAS INF port OFF ON    SPASHS WAS WCA port OFF ON    Disables or enables the receiver to search for the WAAS  satellite  prn is the satellite number  122 in this case      Disables or enables the use of the position of the WAAS  satellite in the positional computation  
50. ast   amp zone    Buffer i  Latitude    double  north   Buffer i  Longitude    double  east   convert Buffer i   zone  StrBuffer    fputs StrBuffer out    j   factor         js      while 1    fclose in    fclose out    return 0        TI    
51. astTimeT  LastTimeD   static double GLat  GLon GA It  PLat  PLon PA It Rate  0 Geoidal   30   static int GFlag PFlag   float COG SOG   double temptime   static char   ggaformat      GPGGA 96If 96 If  Yo c 96 If  Yo C Yo LA  Yo   2d 96   Af  96 If  M  9G If    static char   posformat      PASHR POS 96d 96  d 906 If  Yo If  96 C 96 If  96 C  96 If  WF  WF  VIF         added for WAAS     int error   satcount   I   Corrected   0   WAASFlag   0   passcount   0   char  OKCodes    UHG    char   startread   static char   wacformat     PASHR WAS WCA  96d    static char   infformat     PASHR WAS INF   d   d  x    char satascii 5    static char   part     96d 96  f 96  f 96  f  9o  f 96  f  96 c    char readformat 300    char SVstatus 12  2    int SVx 12       end of added variables       if  GPSBufferFlag 0   amp  amp   GPSBufferFlag 1   return      no buffers filled      index   GPSBufferFlag 0    0 1     use buffer O if filled       if strst GPSBuffer index     GPGGA      NULL     is a GGA message          if sscanf GPSBuffer index   ggaformat   amp temptime   amp GLat   amp ns   amp  GLon   amp ew    amp GFlag    amp GAIt   amp Geoidal      8     if scan good  transfer data          GGATime   temptime   printf  Scanned GGA message at  ld n  GGATime    if ns     S  GLat    1 0   if ew     W  GLon     1 0   Record Time   GGATime   Record Latitude   GLat   Record Longitude   GLon   Record Altitude   3 2808   GAlt   Geoidal       Record RateOfClimb   196 848 Rate       4 removed for WAA
52. ation       CalFlag   1     set calibration flag          return        Use Restart     if ReStartFileFlag  amp  amp   RecFlag  amp  amp   CalFlag  amp  amp  GPSFlag     ReStartFlag   1    Marklndex   ReStartMarkIndex    RecFlag   GyroFlag   1    QTW Line   Appending   1     QTLed 5 1      REC LED on          return        exit program     if  RecFlag  amp  amp   CalFlag  amp  amp   CompassCheckFlag        ExitFlag   1   unlink  restart ini        return     if  RecFlag  amp  amp   CalFlag  amp  amp   CompassCheckFlag   amp  amp  GPSFlag  amp  amp  DCIFlag  amp  amp   GyroFlag    ReStartFileFlag         RecFlag   1     set RECORD Flag     QTLed 5 1      set REC LED on     ReStartUpdateFlag   1   QTClear       QTW Line   Recording   1    unlink   restart  ini       return        if RecFlag     if recording         RecFlag   0     reset RECORD Flag     QTLed 5 0      set RECORD LED off     QTLed 1 0      FlushRecordBufferFlag   1   ReStartUpdateFlag   0    unlink   restart ini     QTWLine    1     QTWLine  Press EXIT to quit  3    QTWLine   START to resume  4    return     63    return     Pte     ka A  FF Display Non   Fatal Error M essage  Sound Alert      A tj         void NonFatalError char   text     QTClear     QTWLine  Error Detected in   1    QTW Line text  2    QTWLine   Procedure Canceled   3    delay 1000    QTBeep     delay 1000    QTBeep     delay 1000    QTBeep     delay 2000    QTClear           EP EFSEES ELE SELES ELE ERED ELE SELES ERE EAE ERE SELES ERE EEE EER
53. c     Minimum Operational Performance Standards for Global Positioning System Wide Area Augmentation  System Airborne Equipment  1999   RTCA DO 229B    Model SB486PV Product Manual  1995   San Diego  Industrial Computer Source  Model AD12 8 Product Manual  1996   San Diego  Industrial Computer Source  Model AT 16P Product Manual  1997   San Diego  Industrial Computer Source    QTERM II User s Manual  Revision 10  1997   Salt Lake City  QSI Corporation    23    Appendices    Appendix 1     BIOS Settings for Single Board Computer    In general  most of the settings within the BIOS  CMOS setup  of the SB486PV single board computer  remain as configured in the standard factory defaults  In addition to the microprocessor and ISA buss  controller  only the hard disk controller  the floppy disk controller  and the serial ports are essential for Data  Logger operation     It should be verified that the two on board serial ports are configured in the standard manner  i  e  COMI at  port 3f8 hexadecimal and IRQ 4  COM2 at port 2f8 hexadecimal and IRQ 3     Because both IRQ 5 and IRQ 7 are required for other devices by the Data Logger hardware  the on board  parallel port on the SB486PV must be disabled     Since it is the normal operating procedure to insert a floppy disk in the Data Logger before applying power   the boot sequence of the SB486PV must be modified  The BIOS must be configured to attempt to boot  from only the fixed disk  never the floppy     Appendix 2     Configuration
54. ccurate heading information possible     Wiring of the aircraft has been modified to supply 12 volt DC power and to provide the data from the  aircraft s VOR LOC s and Glideslope systems to the Data Logger  An FAA PMA approved GPS antenna  was installed on the fuselage above the front seating area  This is the only available horizontal area with an  unobstructed view of the sky  The pitot and static air systems were modified to provide for connection to  the data logger for measurement of airspeed     These modifications were field approved by the local Flight Service District Office  FSDO   A test flight  was required by the FAA to demonstrate the data logger did not adversely effect the operation of critical  aircraft systems  FAA Form 337  Major Repair or Alteration  was submitted to document these  modifications     The Data Logger may be adapted to aircraft other than the Beech Sundowner  Some component changes  and wiring modifications would be required to operate the system in an aircraft that is equipped with a 24  volt DC power system  Re calibration of the airspeed may be required to accommodate a different pitot   static system     The interface to the radio navigation systems  VOR LOC and GS  was designed for the Bendix King KI   2xx system of outputs  wiring modifications within the Data Logger may be required if other navigation  radios are employed     2  Components    All the components of the Data Logger System are houses in a single enclosure with the except
55. ch is configured from the CMOS setup of the single board computer  is also  modified to facilitate the operation of the system as a Data Logger  To boot from a floppy disk  the CMOS  setup must be changed  See the section on General Computer Problems for details     Logger Parameter File    A file named logger ini is used to define the identification of the system  certain analog calibration  parameters  and the directory to which the generated data files will be stored on the fixed disk  This file  must be present in the same directory as the main Data Logger executable file  gpstest exe     Each line begins with the name of parameter defined by that line and must be exactly as appears in the  example below  All ten parameters must appear in the file but may be in any order  Any spaces before and  after the         sign are ignored      SystemID  shall be a single character     DataDirPath    shall be an ASCII string containing no spaces and  having the  back slash    replaced by a    forward slash     contrary to normal MSDOS usage for path  specifiers   The last    forward slash    must be present     DataDirPath    should never be empty nor should it  reference the root directory of a disk drive  The remaining values may be specified in signed integer  format or signed floating format  with a decimal point   These parameter  those assigned numerical values   are used to adjust the translation of the outputs of the gyroscope  pendulum  and altitude pressure sensor for  min
56. compass engine     Communications    If the Data Logger does display an error message  a C001 or C002 fatal error   first check the cable  between the Data Logger and the compass system  If the cable was securely connected  disconnect the  cable from the compass system end and measure the voltage between pins 5 and 8 of the 9 pin connector   With the Data Logger turned on  there should be 12 volts DC present  pin 8 being positive     There are only two items  besides the cable and the lack of DC power  which can cause a communication  failure  One is the compass system itself and the other is the SIIG ipi yo pa  board  Replace these items   with units from another Data Logger  one at a time to isolate the problem     GPS System Problems    The Global Position System receiver  Ashtech G12  provides the total positioning information for the Data  Logger  The Ashtech GI2 receives both the standard GPS satellites and differential corrections from the  WAAS satellites     GPS Receiver System    If the GPS receiver has a problem  the operator will observe one of the following symptoms     e A Fatal Error of Type G will be displayed on the console   e The GPS LED on the console will fail to light   e Excessive time is required for the GPS LED to light  in excess of two minutes      The Ashtech G12 GPS receiver has an indicator mounted on the circuit board that contains both red and  green LED   s  Flashing red indication means the receiver has power   5 volt DC   The green LED flash
57. ct record    f  unsigned long Time   int Mark   int Mode     double Latitude   double Longitude     int Altitude    int RateOfClimb   int Airspeed    int M agHeading   int Pitch    int Roll    float Ball    int CDIL    int CDIT F1    int CDIFlag1   int CDI2    int CDIT F2    int CDIFlag2   int GSDev    int GSFlag    int COG    int SOG     E    extern struct record Record     28    extern int ADCount    extern unsigned LoopCounter   extern int ADInProgressFlag   extern int ADDataReadyFlag     void FatalError char       unsigned call driver void    unsigned ADSetup void    unsigned ADProcedures void    unsigned ADCheckRdy void    void QTLed int  int      extern unsigned ADPointBuffer     extern int ADStatus     ADTask    ADParameters      A DDataBuffer      ADTempBuffer T   AN  fr 7  JE call driver is the primitive call to al2drv obj supplied by       x      ICS      ka       JEE EKA KKK E K k k KK E k R E kkk K kk K k E KKK KK E K kk KK KKE EKK k KEk E EK KEE EKKE KER EEE k EE      unsigned call_driver         al2drv FP OFF  amp ADTask  FP OFF ADParameters  FP OFF  amp ADStatus     if ADStatus    0        printf  An A D error code of  i was detectedin  ADStatus    printf  Program terminated           return A DStatus       Pre EA LEELA EE EL ELL LES EA LEELA EES ELE EEE EA EERE ES EEE ER EEE EE KEEK            ka ADSetup sets the AD system parameters  It assigns point        addresses  scaleing and gains to all channels     p       aaa AA AA AA AA aaa      unsigned ADSetup    
58. dditional analog sensors to the system  up to  128 channels  The magnitude of the variables to be measured range from a few tenths of a volt full scale to    10 volts full scale  Additionally  some variables are referenced to ground potential while others are the  difference between two voltages  differential      In order to accommodate the range and types of signal voltages  an analog to digital converter plus a 16   channel analog multiplexer are employed  The analog to digital converter is a Model AD12 8  manufactured Industrial Computer Source  the multiplexer is Model AT16 P by the same manufacturer   The hardware configuration of these boards is documented in Appendix 4     The basic analog to digital converter used is capable of 12 bit resolution  one part in 4096  The  combination of the AD12 8 and AT16 P allow up to sixteen channels of both single ended and differential  inputs with the gain  amplification  of each channel individually selected under control of the software     The A D system incorporates a counter timer system that is used to automatically sequence through all of  the active channels once given the command to begin the analog to digital conversion  Hardware interrupts  are used to determine when each conversion is complete  A number of sequential conversions are averaged  to determine the final value to be recorded for each of the variables measured     A precision   10 volt DC reference voltage output is provided by the AD12 8 to excite those sens
59. de  lt  bios h gt    include  lt  conio h     include  lt stdio h gt    include  ibmkeys h    include  asciidef h    include  gsci h     extern int CalFlag    InitFlag    BannerFlag    GPSFlag    DCIFlag   extern PORT  KVH     compass system on COM3     extern PORT  QT     terminal on COM2       extern PORT  GPS     void FatalError char       void QTBeep void     void QTLed int  int     void CompassCommand char    char      void QTClear void     void QTWLine char    int    float GetM agHeading void    void QTBackLite void    void QTReset void     void NonFatalError char      void QTContrast void    void CalCompass void    void QTAudioOn void    void QTAudioOff void    void DisplayCompass void    void GPSDelnit void     void GPSInit       void CalAbort char   s   f    char   AbortString      cez      NonFatalError s    WriteString KVH AbortString 0x0d    CalFlag   BannerFlag   0   GPSInit      delay 500     ClearRX Buffer GPS     return        void DisplayCompass void   float head   int test   0   char buffer 10    char  msg1    Magnetic Heading Chk    char  msg2    Press Enter to Cont       QTWLine msg1 1    QTWLine msg2 4      do    34    head   GetM agHeading       Request heading from compass     sprintf buffer   96  4 1f xdf  head      format for display     QTW Line buffer  2      write it to line two      delay 1000      if  IsRX Empty QT         ReadStringTimed OT buffer 10 0x00 1      if buffer 0       B     buffer 0       G   QTBackLite     if buffer O      0x0d  tes
60. der  is designed to support research involving pilot performance in  executing instrument flight procedures  The system is designed for use in small single engine aircraft and  can easily be removed to return the aircraft to normal service  The system is based on a commercial single  board computer  recording data at the rate of one frame per second  In addition to aircraft position and  altitude  pitch  roll  yaw  magnetic heading  vertical speed  and airspeed are recorded  The radio navigation  displays  Very high freguency Omni Range LOCalizer  VOR LOC  and Glideslope  are also recorded   Provision is made for the check pilot operator to mark sections of the flight records to aid in the subsequent  analysis of the data  Apart from connection to the pitot static system and the navigation displays   instruments internal to the Data Logger generate all data        The data logger is housed in an aluminum enclosure 22 inches in width  24 inches in length  and  approximately 12 inches in height  The weight is approximately 42 pounds  To install the IPC Data Logger  in the aircraft  Beech Sundowner C 23  in this application   the rear seats were removed and the logger  mounted in their place  a custom floor plate to which the Data Logger is mounted replaced the original  floor of the rear seating and baggage area  A flux gate magnetic compass system is mounted in a separate  non magnetic enclosure so as to allow its positioning within the airframe in order to provide the most  a
61. dure may be found in the Maintenance and  Troubleshooting section     Display Contrast  By pressing    C    on the keypad  the operator can increase the display contrast on the  terminal  Each press increases the contrast until maximum contrast is reached and then    wraps around    to  minimum contrast     Display Backlight  By pressing    B    on the keypad  the operator may toggle the backlighting on the LCD  display     File Recovery  If after a flight the data file is not copied to the floppy disk for any reason  that file is  retained on the hard disk marked as not copied  The next time the system is used  any un copied data files  previously stored will be copied to the floppy disk in addition to the data file just recorded  One floppy  disk can contain approximately 6 75 hours of flight data     By starting the Data Logger and NOT pressing START but pressing EXIT  an operator may copy any  previously un copied data files from the system s fixed disk on a floppy     Operational Error Codes    The following table contains the Error Codes displayed on the handheld terminal when an unrecoverable   fatal  error occurs during a data logging session  In the event that a fatal error is encountered  the operator  should make note of the displayed Error Code to facilitate the remediation of the problem     If an Error Code is displayed in the course of a recording session  it is recommended that a  reset  followed  by a  restart   as mentioned in the previous section  be attemp
62. ecorded in the data file     The time stamped navigation messages from by the GPS receiver are used to provide the timing of data  acquisition  The receiver provides a position fix once per second and the receipt of this position fix causes  the Data Logger to record the position information and all other measured parameters to the logging data  file     If  while recording flight data  the Global Position System loses lock and fails to provide data output  the  Data Logger will continue to record data using the internal operating system clock to trigger the storage of  data points  No position data will be available  but all other variables continue to be recorded  When and if  the GPS reacquires the satellites  logging will revert to timing using the GPS position message as described  above     GPS system time is used to set the internal real time clock of the underlying operating system  MSDOS  6 22  upon initial GPS receiver lock on     Wide Area Augmentation System    After the RTCM service provided by Differential Correction  Inc  was terminated  a new source of  differential corrections had to be found  It was determined that the United States Coast Guard RTCM  broadcasts were not suitable  because of the distance from the nearest station   The Wide Area  Augmentation System  WAAS  was chosen to provide the required differential corrections     WAAS consists of wide area reference and integrity monitors  ground earth stations  and geostationary  communication satellite
63. ed for additions to the present configuration     The disk operating system is MSDOS 6 22 and is completely standard  The system is capable of operating  as a normal personal computer with no modification except for changes to the autoexec bat file  which is  designed to start the data logger software automatically following the load of the MSDOS operating system  when the system is powered     There are a number of settings in the BIOS of the SB486PV single board computer that have been modified  from the standard configuration to facilitate the operation of the Data Logger  These are documented in  Appendix 1     Digital Storage Devices    The system is equipped with a 3 Gigabyte IDE fixed disk that contains the MSDOS operating system  the  data logger software  and provides primary storage for the recorded flight data files     A 345    floppy disk drive is also provided to permit a convenient method of updating the software and to  off load the Data Logger data files at the end of each logging session  The Data Logger will not attempt to  load an operating system from the floppy drive and depends completely on the fixed disk for operation     Serial Data Ports    Two serial data ports  RS 232  are the standard hardware provided on the SB486PV single board computer   These are configured in the industry standard manner as COMI  I O Ports 3F8 3FF  IRQ 4  and COM2   I O Ports 2F8 2FF  IRQ 3      A third serial port is required for data logger operations  A SIIG I O Professio
64. ee Appendix 3 for information on software configuration  If  the SIIG input output board is replaced  see Appendix 2 for information on the hardware configuration     19    interchange to Ashtech G12 receiver with the receiver in another Data Logger  much easier than  interchanging antenna systems      If excessive time appears to be required for the GPS system to lock onto the required number of satellites   the problem may be that the    keep alive battery    that retains receiver data may be exhausted  This battery  allows the system to retain it s last position  the satellite almanac  and satellite ephemeris data  The battery  is located within the silver colored connector near the GPS receiver mounting position  If the battery is  functional  the GPS LED on the handheld display should illuminate within one minute after the   STARTING  message is displayed     Wide Area Augmentation System    A problem with the differential correction system will only be evident by the Data Logger never coming  out of    STANDBY    and the DIFF LED never being lit     All of the processing of the WAAS signal is done within the Ashtech G12 receiver and the only method  one has to determine these internal conditions is to communicate directly with the G12 receiver  A second  serial port is available to which may be connected to a second computer running a terminal emulator  program or the Ashtech Evaluate program  This port always operates are 9600 baud  no parity  and one  1   stop bit    
65. es  between the red flashes  Each green flash indicates one satellite locked  being received and processed   e g   four  4  green flashes indicates four satellites locked  The unit must be locked on to a minimum of four  satellites for the Data Logger to operate     If a fatal error of type G was displayed  check the power to the Ashtech G12 receiver  Verify that the 9 pin  connector labeled Port A is firmly connected to the COMI serial port of the single board computer  If  neither of the above is the cause of the problem  the COMI serial port should be checked and or the  Ashtech G12 should be checked for proper operation independent of one another     One method is to use a program supplied by Ashtech called Evaluate  This program can be run on a  Windows computer using a serial extension cable to connect the computer serial port to the connector  labeled Port A  This program will communicate with and test any number of Ashtech GPS receiver  systems  A users guide is available for Evaluate 4 0 or above     If no fatal errors are displayed but the GPS Led never lights to indicate GPS data is available  then the  problem is either in the G12 receiver itself or the GPS antenna system  The LED on the receiver itself can  be helpful in this case  If green flashes are never observed  the most likely cause is either the antenna or the  antenna cabling  The most straightforward method of determining the component s  at fault is to         If the C 100 Compass System is replaced  s
66. external connector between the Data  Logger and the aircraft  the larger of the two circular connectors   Secondly  verify that the isolation relays  are operating  these relays should be activated when power is applied to the Data Logger system  Another  possibility is that the zeroing of the multiplexer and or analog converter may have drifted to an extent  which effects these millivolt range measurements without effecting the apparent accuracy of the high level  channels  This occurrence would be rare  but if suspected  the procedure for calibration and zeroing of  these components is described in the respective product manuals but is too involved to be included here     If the errors are restricted to a subset of the level level inputs or to only those from a particular instrument   VOR 1  VOR 2  or GS   the most likely cause is a wiring fault     Use in 24 Volt Aircraft    The Data Logger was originally constructed for use in an aircraft with a 12 volt DC power buss  In order  to convert the unit to operate in a 24 volt aircraft  a number of component and wiring changes are required   The time required to convert one Data Logger from 12 volt to 24 volt operation is estimated to be less than  two hours     Components Required  for each Data Logger     e Power Converter   International Power Sources  Inc   Model PD110 40M  e Relays   Potter  amp  Brumfield   Model KHAU17D13 93 pieces   e  Fan  Papst     Model 4314 or equivalent  24 VDC Brushless  4 7 inch square mount     
67. f    unsigned   status     ADParameters 0    1     manual setup     ADParameters 1    0x310     address of AD12 8     ADParameters 2    7     IRO 7     ADParameters 3    5     five volt range     ADParameters 4    1     bipolar mode     ADTask   0     Initialize Board     status   call driver      if  status    0  FatalError   A001       return on error      ADTask   11     clear task list       ADParameters 0    2   status   call driver     if  status    0  FatalError   A001       return on error       ADTask   5     assign point addresses       29    ADParameters  ADParameters    0    0    1       status   call driver       if  status    0  FatalError   A001     ADParameters 0     ADParameters 1    6     status   call driver       if  status    0    ADParameters  ADParameters    0   8   1    1    status   TN    if  status    0  FatalError  A001     ADParameters 0     ADParameters 1    13          FatalError  A001       status   call driver       if  status    0  FatalError   A001       ADTask   14    ADParameters 0     ADParameters 1     ADParameters 2     status     call driver       1  3   2    if  status    0  FatalError   A001       ADParameters 0     ADParameters 2    ang  status   call driver       if  status    0  FatalError   A001       ADTask   10   ADParameters 0     ADParameters 1   ADParameters 2  NONG  ADParameters 3    10000   status   call driver       if  status    0  FatalError  A001          ADParameters 0    4   ADParameters 1    0   ADParameters 2    1  
68. fferlndex CurrentBuffer   2 0x00       null terminate string     Bufferlndex CurrentBuffer    0     reset index     GPSBufferFlag CurrentBuffer    1     indicate buffer ready     CurrentBuffer    CurrentBuffer    0 1     toggle current buffer                if Bufferlndex CurrentBuffer     0  GPSBufferFlag CurrentBuffer    0   if input     0x0d  return 0         return 0       void SetlON int x   f  return     disable ION switching     if x     set normal ION on      if   1ONFlag    f  WriteString GPS   PASHS ION Y   2    IONFlag   1           else    set normal ION off     if IONFlag      WriteString GPS   PASHS ION N   2    IONFlag   0            void SetWAAScor int x      if  x       if  GEOSATFlag     set WAAS COR on      f  WriteString GPS   PASHS WAS COR ON   2    GEOSATFlag   1           else    set WAAS COR off     if GEOSATFlag       WriteString GPS   PASHS WAS COR OFF   2    GEOSATFlag   0                46    JETETOAESCORROTRORHROERAGRROEROREROEAOEROEROEROETOREROEROEROEACEROEROREAROEROERAOEROEOEOEEORAOEEEREOE REGE AOE              GPSScan parses the buffers filled by GPSRead  GPSBufferFlags are     used to determine if buffer is complete         pr GPSFlag and DCIFlag are set to 10 each time a valid position comp     and diff mode usage are determined  These are decremented at a   ka once per second rate if no computation or non diff is detected                    Fe     void GPSScan void      int index status   char ns ew   static unsigned long GGATime  POSTime  L
69. ged  For example  if the  file name to be converted was A111407 98B  the resulting ASCII file will have the name A111407 txt  As  a practical matter  if the conversion is being run on a Windows 9x or NT computer  the file is manually  renamed including the original extension plus the    txt    extension  A111407 98B txt   This is a legal file  name construct in these operating systems          The Mode of the Data Logger  which employs WAAS correction  has the decimal number 200 added to  the mode value to differentiate the data from the original  which used DCI RTCM corrections     15       These converted data files can then be processed by any of a number of software packages depending on  the desired analysis to be performed  In the particular experiment for which the Data Logger was  developed  this program is a highly modified Microsoft Excel based application     5  Maintenance and Troubleshooting  General System Software Configuration    System Start Up    The autoexec bat file found in the root directory of the fixed disk is configured to change the default  directory to that in which the Data Logger software resides and to execute the Data Logger software   gpstest exe     In the event that the Data Logger system requires maintenance  these lines of the autoexec bat file may be   commented out  so that the system comes up in the standard MSDOS command line mode  See the  section on General Computer Problems for a procedure that may be used     The boot sequence  whi
70. h Level Channels    The high level channels are defined as those for which the gain of the A D system is less than five  These  include    pitch data   roll data   yaw or ball data   airspeed data    If ALL high level inputs are exhibiting errors  the common source may be the  10 volt precision reference  voltage that is used to excite all of these sensors  This reference voltage is generated on the AD12 8 board   routed to the AT16 P via the interconnecting cable  and is distributed to the sensors via a terminal strip  located near the AT16 P board     21    If the error is limited to a single high level channel  examine the wiring to between that sensor and the  AT16 P  If both the pitch and roll channels are exhibiting errors  either the vertical gyroscope or the   secondary voltage converter  may be at fault  With the exception of the output of the secondary  converter  which may be directly measured with a voltmeter  the detection of the fault is most easily  accomplished by substitution of components  the vertical gyroscope pendulum assembly or the differential  pressure assembly  in event of an airspeed problem      Errors in Low Level Channels    The low level channels are those associated with the radio navigation instruments  These signals are not     low level  in the strictest sense of the term but these channels are measuring differential voltage inputs in  the millivolt range   200 mv range      If all of these channels are not responding correctly  examine the 
71. h gt      define IGNORE 0    tdefine RETRY 1  tdefine ABORT 2     pragma warn  par  int handler int errval  int ax  int bp  int si   f   unsigned di    int drive    int errorno     diz DI     if ax    0  hardretn A BORT      37    drive 2 ax  amp  OxOOff   errorno   di  amp  OxOOff   if drive    0  hardretn ABORT         sprintf msg  Error  96s on drive  c r nA bort  R etry  l gnore      err msg errorno   A    drive    i  hardresume IGNORE    return ABORT         pragma warn   par    GETSYS C     include  lt  stdio h gt    include  lt  string h gt    include  lt  ctype h gt    include  lt  stdlib h gt     extern char SystemID    extern float PitchOffset   PitchGain   RollOffset   RollGain   AltOffset   AltGain   BallOffset   BallGain    extern char DataDirPath 50      void FatalError char   n     void GetChar char   x  int  y     float GetFloat char        int GetString char   buffer  char   path       EEF REESE ALES ALE AL ERA LES AEE A EEE A EER AER A ER EEE AE EAE EE ER ERK      JA        This routine looks for  logger ini  file and reads the ui  Ft gains and offsets for critical analog channels  the system  7     ID and the path in which to store the data files  xj            EF EKE K KK E K kk K kA KE KKK E k k k LARA KKK KE KKK K K K KEK kk EE EEE AER      void ReadSysParameters      FILE   in    char buffer 80     char   marker    float temp 8     char path 50     int ch    char c    int count   O index    char keys 10  25      PitchOffset   PitchGain   RollOffset   Ro
72. hrey  Inc  This is a passive  instrument with a range of   45 degrees and a weight of 6 ounces     Output is by means of a center tapped potentiometer excited by the same 10 volt DC source used for the  gyroscope excitation  The voltage is sensed differentially between the center tap and the wiper yielding an  output of zero volts in the vertical position  Positive voltage indicates deflection to the right  negative  voltage  deflection to the left  The signal is nominally 110 millivolts per degree     The pendulum is mounted on the gyroscope carrier described above and is mechanically adjusted to  provide a zero volt output when the Data Logger is precisely oriented in the horizontal plane and at rest   Flight tests verified the correspondence between the ball of the pilot s turn coordinator instrument and the  pendulum sensor     Compass System    Although the Global Positioning System is capable of providing the course over ground  COG   the Data  Logger is equipped with a magnetic compass system to provide the true aircraft heading  The unit chosen  is an electronic flux gate compass system that provides data via a serial RS 232 output     KVH Industries  Inc manufactures the C100 Compass Engine  It is available in two configurations  the SE   10 gimbaled coil was chosen for this application  The compass engine is mounted in a separate non   magnetic enclosure and positioned in the aircraft cabin in order to minimize magnetic  electrical  and  electronic interference from
73. icular to the surface of the earth     Positioning System  GPS Receiver System    The Ashtech Model G12 Global Positioning System  GPS  receiver is installed in the Data Logger  This  receiver is capable of tracking up to twelve satellites simultaneously using both code and carrier phase data   The G12 has been provided with a    beta    version of software to allow reception and use of EROS WAAS   Wide Area Augmentation System  differential corrections  The GI2 used is the OEM version  Part  Number 990190 G  The receiver is connected to a    keep alive    battery to maintain the GPS constellation  almanac data between operating sessions     An active GPS LI band aircraft type antenna is mounted on the fuselage of the aircraft above the front  seating area to provide the most unobstructed view of the sky possible     Communication with the GPS receiver is by way of two RS 232 serial ports  Ports A and B   Port A is  used for GPS receiver control and data output  Port B is unused but may be employed for diagnostic    purposes     The Ashtech G 12 receiver remains configured in the factory default mode  The Data Logger software  accomplishes all initialization of the receiver  The Data Logger software is configured so that flight  logging can not begin until and unless the GPS receiver is providing three dimensional position data  If  three dimensional position and or WAAS corrections are lost after data logging has begun  the session  continues with the appropriate notations r
74. ine 143 n       for testing only     ERROR    sscanf response    5f   amp heading      scan for valid response       if heading    lastheading  ERROR       check 45 degree increment      printf   heading  f  f n  heading lastheading      for testing only     if ERROR       CalAbort  Calibration      return      sprintf response   5   03d xdf   pos   int heading      format prompt     QTW Line response  2      Write to Display     lastheading   heading 45 0     increment lastheading for next     do    wait for response         status   ReadCharTimed QT 30000L      wait 30 seconds       if status  lt  0     CalAbort  Cal   Time Out        return     no response in 30 seconds   abort        c    char status     assure returned value is char        disregard characters which are not valid  A F  and    CR   are valid     Jwhile   c     Ox0d    c     A     c     F      if c    0x0d        CalAbort  Cal   User Abort      return         response other than    CR     abort       while heading    315 0         compass system response changes at this stage  requires modifications  to procedures       CompassCommand cal  NULL      does not return new heading      if ReadStringTimed KVH response 40 0x0d  10000L   lt  0      CalAbort  Cal   Time Out      return      ERROR   0     if ReadStringTimed KVH response 40 0x0d 2000L   lt  0  ERROR      if strstr response test      NULL  ERROR      if ERROR     CalAbort  Cal   Failed     return         QTClear      OTWLine  Compass Cal ed  1     if
75. ion of the  Compass System and User Display Control Console  The locations of the major components are illustrated  in the Figure below     Airspeed Microcomputer DC to DC Power  Sensor and Card Cage Converters                 sr    Analog GPS  Multiplexer Receiver       Single Board Computer    The central component of the Data Logger is the single board computer  This unit is essentially an IBM PC  compatible computer that is fabricated on a single Industry Standard  Architecture  ISA  board yet is  capable of operation in a greater range of environmental conditions than a standard desktop personal  computer  The Industrial Computer Source Model SB486PV single board computer is designed around an  Intel 486DX100 microprocessor and provides support for keyboard control  video adapter  both fixed and  floppy disks  two serial ports  and one parallel port  The Intel 486DX100 has a built in numeric co   processor  which would not normally be needed since no extensive floating point mathematical calculations  are required in the operation of the Data Logger  However  the present compilation of the software  assumes such a co processor is present  The keyboard and video adapter display are used only during  development and repair maintenance functions  A rugged card cage passive motherboard is used to house  the SB486PV  an additional serial port interface  and an analog to digital converter  There are at least two  additional ISA slots available for additional hardware if requir
76. is turned  off  or loses primary power      Airspeed Sensor    The Data Logger measures airspeed in the same manner as an aircraft airspeed indicator  which senses the  differential pressure between the pitot port and the static port  However  the processing and conversion of  differential pressure to altitude is accomplished electronically in the Data Logger     The differential pressure sensor is a Model 140PC01D produced by the Micro Switch Division of  Honeywell  It requires an excitation voltage  the same  10 volt DC source used for the gyroscope and  pendulum  and produces an output voltage proportional to the pressure difference between units  two ports     From standard FAA calibration specifications it was determined that following formula defines the  relationship between the differential pressure  expressed in inches of mercury  and the airspeed  expressed  in Knots         Airspeed     142 9    differential pressure    This relation is employed in the Data Logger and flight testing indicates the recorded airspeed is within 1  or 2 Knots of that of the aircraft    s airspeed indicator within the speed range of interest  approximately 65 to  110 Knots      User Display Control Console    The User Display Control Console is a handheld ASCII terminal that has two primary functions     e Allow the operator to start stop the logging of flight data and optionally mark data records  e Display the state of the Data Logger and indicate the progress of the logging operations
77. istering this grant is Mrs  Colleen Peranteau  ACT 50  This report is in  the process of review and approval and is not at present an official FAA document  Consequently  the  views expressed herein do not necessarily represent official FAA positions     References    Benton  C J   Corriveau  P    amp  Koonce  J M   1993   Concept Development and Design of a Semi   Automated Flight Evaluation System  SAFES   AL HR TR 1193 0134    DOD  1992   Mapping Datum Transformation Software  NTIS PB93 500296   Taylor  H L   Bradshaw  G L   Talleur  D A   Emanuel  T W   Hulin  C L   Lendrum  L    amp  Vaughn  J A    1999  Effectiveness of Personal Computers to Meet Recency of Experience Requirements  Proceedings of  the Tenth International Symposium of Aviation Psychology  Columbus  OH  The Ohio State University   Lendrum  L   Taylor  H L   Talleur  D A   Hulin  C L   Bradshaw  G L    amp  Emanuel  T W   1999  Airborne    Flight Data Recorder  Proceedings of the Tenth International Symposium of Aviation Psychology   Columbus  OH  The Ohio State University     Hardware and Software Reference Manuals    Evaluate 4 0     Users Guide  1997   Sunnyvale  CA  Ashtech   G12    GPS Board and Sensor Reference Manual  2000   Santa Clara  CA  Magellan Corporation  Greenleaf CommLib      Reference Manual  1997   Dallas  TX  Greenleaf Software  Inc    I O Professional User s Manual  1997   Fremont  CA  SIIG  Inc    KVH C100 Compass Engine   Technical Manual  Rev  G1   Middletown  RI  KVH Industries  In
78. l Scale  limit at 120     right   T FI 311 To From Indicator 1   TO   1   FROM  0   none   Flagl VOR LOC   1 Flag 1   GOOD  0   FLAGGED   CDI 2 VOR LOC   2   Same as Above   T F2   Flag2   GSCDI Glideslope Course Deviation Same as VOR LOC CDI s    up   GS Flag Glideslope Flag Same as VOR LOC Flags   COS Course Over Ground Degrees   Derived by GPS   SOG Speed Over Ground Knots   Derived by GPS          Post Processing Procedures    A mentioned above  the Data Logger produces a copy of the data file on a 3 2  floppy disk at the end of  each logging session  This file is in the binary data format  The Post Flight Data Conversion Software is  used to convert these files to ASCII  text  format  The program is used depends on if the horizontal position  data is desired in latitude longitude  convert exe  or in Universal Transverse Mercator  utm  con exe     format     The data file is copied to the directory of the computer that contains the conversion program executable  file  The program  either convert exe or utm con exe  is run and the user must enter the name of the data  file to be converted  Each program allows the user to select subsets of the records to be converted  The  user may 1  convert all records  2  convert only    marked    records  or 3  convert only a decimated number  of records  with the choice of the decimation factor   Once this selection is made  the program writes the  converted file in the same directory with only the    extension    of the file name chan
79. llGain     AltOffset   AltGain   BallOffset   BallGain   SystemID     DataDirPath       if  in   fopen  logger ini   rt        NULL  FatalError   S001      for       f    if fgets buffer 80 in      NULL  break   for index  0 index lt  10 index         38    if  strstr buffer keys index       NULL        switch index      case 8      GetChar buffer   amp ch    c  ch   if  isalpha c       count      goto next         case 9   if GetString buffer  path       goto next         default   if  temp index    GetFloat buffer    lt  9999  count      goto next               next      fclose in    if count    9      SystemID   c   PitchOffset   temp 0   PitchGain   temp 1   RollOffset   temp 2    RollGain   temp 3   AltOffset   temp 4   AltGain   temp 5    BallOffset   temp 6   BallGain   temp 7    if strlen path     0  strcpy DataDirPath  path       else  FatalError  S002          float GetFloat char   buffer   char   marker   char tempbuffer 80    float value     if  marker   strstr buffer          NULL        strcpy tempbuffer  marker   1    if sscanf tempbuffer    f   amp value      1  return value       return 10000         void GetChar char   buffer  int  x     char   marker   char tempbuffer 80      39    if  marker   strstr buffer          NULL     i    strcpy tempbuffer  marker   1    if sscanf tempbuffer    c  x     1  return        x   0x00   return          int GetString char   buffer  char   path        char   marker   char tempbuffer 80      if  marker   strstr buffer      
80. lure caused the data        to stop in an abnormal manner  i  e  a Fatal Error  etc      j8 Normal termination of the program deletes the restart file  kf  pp       NT    int ReadRestart void    f   extern FILE   restart    char   filename    FileName    char   mark    MarklndexNumber    char   marker    char X buffer 80      char tempbuffer 8 0    char localfilename 80    int length    int localmarknumber   int localfileflag   0     localmarkflag   0   FILE   tempfile     if  restart 2 fopen  restart ini   rt    2 2 NULL     return 0      restart ini not found     for         f  if fgets buffer 80 restart     NULL    if no more lines     break   if strstr buffer filename     NULL     if filename line     if  marker   strpbrk buffer          NULL      strcpy  tempbuffer  marker   2    length   strlen tempbuffer    tempbuffer length  1  2 0x00   if  tempfile   fopen tempbuffer   rb       NULL   f  fclose tempfile    localfileflag   1   strcpy localfilename tempbuffer    goto next            else  if strstr buffer  mark     NULL      if  marker   strpbrk buffer          NULL   if sscanf marker   1   d   amp localmarknumber    localmarkflag   1            next         67    fclose restart    if localfileflag  amp  amp  localmarkflag      ReStartM arkIndex   localmarknumber     if successfull  copy local to globals     strcpy LogFileName  localfilename    ReStartFileFlag   1   return 1      indicate success           return 0      failure       FERS OR HORROR OR ESAES ERE TOR IOR
81. may be appended to that file if desired                JERKA KKKA EES A ERE ALES EERE AEE ER ERE A EE REE A EEE ER A KK K ER ER ERE EK Ef  void DisplayRestart void   f   QTClear       QTWLine   RESTART POSSIBLE   1    QTBeep       fEPEFERESERESAREL SA ES ARES EREA AREER A ARES RAE ARES ESE REGERE ES EE EHR EY     ka        DisplayReady display either  STANDBY  or  READY  depending     JE on the state of the datalogger       ka          KE   void DisplayReady void     if  BannerFlag     1   amp  amp   RecFlag  amp  amp  GPSFlag  amp  amp   DCIFlag  amp  amp  GyroFlag       ReStartFileFlag     amp  amp   ExitFlag        QTWLine   READY   2    QTBeep     BannerFlag   1        if   BannerFlag     2   amp  amp   RecFlag  amp  amp   IGPSFlag     DCIFlag     GyroFlag        QTWLine   STANDBY    2     BannerFlag   2            FEF EPES ERTS ELLE ELES ERE EL ESE LES E LES ELSE ELAS ELLE LASER EEA EERE EERE OR EK    Li 7  f  LEDUpdate controls the state of the LED s depending on the state    ft of the machine and the state of internal flags       ka   j    Pkt AEE AERA LAS A EARS AERA EE A ER KFK TEKKET EEK Kk E kkk EK oe    void LEDUpdate      static int LastRec     65    LastGPS   LastDCl   int i     i    RecFlag    2 0   if  RecFlag    LastRec      GPSFlag    LastGPS    if GPSFlag  QTLed 4 1   else  QTLed 4 i  if i    2  QTBeep        if  RecFlag    LastRec      DCIFlag    LastDCI    if DCIFlag  QTLed 3 1   else  QTLed 3 i  if i2   2  QTBeep        LastRec   RecFlag  LastGPS   GPSFl
82. me 100L    GPSTime    b 100    t ti min    unsigned char b   t ti hour    unsigned char a   t ti sec    unsigned char GPSTime   t ti hund   0    settime  amp t     SetTimeFlag   0    return 0      69    Basic Post Flight Software    LATITUDE LONGITUDE ASCII CONVERSION     include  lt  stdio h gt    include  lt  dos h gt    include  lt  ctype h gt    include  lt  bios h gt   tinclude  lt  alloc h gt    include  lt  stdlib h gt    include  lt  conio h gt    include  lt  math h gt   include  lt  string h gt    include  lt  dir h gt    include  lt  io h      struct record    unsigned long Time    int Mark   int M ode   double Latitude   double Longitude     int Altitude   int RateOfClimb   int Airspeed   int M agHeading   int Pitch   int Roll   float Ball   int CDI1   int CDIT F1   int CDIFlag1   int CDI2   int CDIT_F2   int CDIFlag2   int GSDev   int GSFlag   int COG   int SOG   E    struct record Record     void convert struct record rec char   str          sprintf str   96 ld t  d t  d t  15 51ft  15 51fVt96 d t  d t  d t  d t  d t  d t  5 2 fVt96 d t  d t  d t  d t  d t  d t  d    t  d t  d t  d n    rec Time   rec Mark   rec Mode   rec Latitude   rec Longitude   rec Altitude   rec RateOfClimb   rec Airspeed   rec MagHeading   rec Pitch   rec Roll   rec Ball   rec CDI1     70    rec CDIT F1   rec CDIFlag1   rec CDI2   rec CDIT F2   rec CDIFlag2   rec GSDev   rec GSFlag   rec COG   rec SOG         int main void        char InputFile 80  OutputFile 80  temp 10    int Res   FILE
83. nal multifunction  input output board  Model IO1809  provides this capability  This board has two additional serial ports and  one additional parallel port  In this application  only one serial port is used and the remaining serial port  and the parallel port are disabled  The serial port on the SIIG board is configured in a non standard manner  since all serial input output in the data logger uses interrupt driven routines and each serial port must have a  unique IRO  hardware interrupt request  channel  This port is designated COM3  I O Ports 2E8 2EF  IRO  5   The hardware configuration of this board is documented in Appendix 2     COMI communicates with the Global Positioning receiver  COM2 with the User Display Control Console   and COMG with the KVH Compass System     All serial ports initially operate at 9600 baud  no parity  8 bit of data with 1 stop bit  9600N81   The GPS  port  COMI  is operated at 38 400 baud after the GPS receiver is initialized     Analog to Digital Converter    An analog to digital converter allows the recording of the following analog variables in digital format     Aircraft pitch and roll data from the Vertical Gyroscope  Aircraft yaw data from the Pendulum   Airspeed data  derived from a differential pressure sensor  Electronic Navigation data from VOR  LOC  Glideslope    In total  there are twelve channels of analog information that are sampled and converted into digital data in  this application  It is possible to add significant number of a
84. ogging   EXIT ing copies the present data file to floppy disk  if present  and terminates the Data  Logger functions allowing the power to the system to be safely turned off    e RESTART allows the operator to restart data logging after some abnormal behavior terminated the  previous logging session  If restarting is possible  the operator will be informed by text on the  display    e CAL COMP  calibrate compass  allows the operator to command the system to perform an  autocompensation procedure on the magnetic compass system  This key is inoperative if the Data  Logger is presently logging flight data    e  TGGLE  toggle  allows the operator to mark portions of the flight for later analysis  Pressing the  key once starts the marking process  pressing the key again ends marking  The marks are numeric  tags  incrementing automatically  The operator is informed of the numeric value of the tag by text  on the display  Marking is only functional while the Data Logger is recording data     No other inputs or keys are required during normal operations of the Data Logger  however  two more keys  are active to control the display functions  See the Operation section for details     Some additional functions and displays are provided for maintenance purposes  these are discussed in the  section Maintenance and Troubleshooting     Power Converters    The complete Data Logger requires approximately 4 5 amps from the aircraft 12 volt power buss  The  aircraft power buss and wiring is pro
85. on procedure  two  single digit numbers are displayed  0 9   the higher the numbers  the better  The first digit represents the  quality of the compensation  a score of    7    or above indicates an accuracy of 2 degrees or better   The  second digit represents the quality of the magnetic environment  a score of    5    or better is acceptable   If  acceptable scores are not achieved  the procedure should be repeated after moving the aircraft to a different  physical location     If calibration does not correct the problem  the optimum diagnostic procedure would be to substitute a  KVH C100 compass from another Data Logger system to verify the problem is the compass engine  If the  SIN solves the problem  the defective unit should be returned to the manufacturer for repair or  replacement        If the substitution of the compass engine does not solve the problem  the difficulty may be associated with  the aircraft  Changes in the location of the compass system or additional pieces of eguipment recently  installed near the compass engine location may effect accuracy  Changes in the aircraft wiring in the area  of the compass may also have the same effect  It is also possible that the aircraft s engine or generating        gt  If a new C 100 Compass System is acquired  it must be configured using the software provided by the  manufacturer  See Appendix 3 for details     18    system may be producing electrical noise that may interfere with proper operation of this electronic  
86. or variations of the transducers     Typical logger ini file    SystemID   A  PitchOffset    4 979  PitchGain   12 27  RollOffset    5 062  RollGain  18 01  AltOffset    1 3  AltGain  0 32175  BallOffset   0  BallGain   1 783    16    DataDirPath   c  gpstest data     General Maintenance and Calibration    Periodic Maintenance    Generally  the Data Logger systems require little maintenance on a regularly scheduled basis  The only  item would be the air filter  which should be checked and cleaned as required every six months     The only limited life components are the backup batteries  for the CMOS memory and real time clock of  the single board computer  and for the GPS receiver  and the vertical gyroscope  The batteries should last  approximately five years before requiring replacement  The vertical gyroscope has a service life of  approximately 300 500 hours according to the manufacturer  Humphrey  Inc     Calibration    The only components that may require calibration  with the exception of the compass engine  the  calibration of which is addressed later in this section  are those associated with the analog systems     The calibration of the analog to digital converter system itself is addressed later in this section and is a  rather lengthy procedure  which is described in the respective manuals of the two components  AD12 8 and  AT16 P   It should be noted that calibration of these components is the only form of adjustment for  correcting errors in the low level A D ch
87. ord Airspeed    ADCount  Record Pitch    ADCount Record Roll   ADCount   Record Ball 2 ADCount  Record CDI1 2 ADCount  Record CDI2   ADCount   Record GSDev   ADCount  ADCount   0         if  Record Ball  lt  0  tempy    1   else tempy    1   Record Ball   floor fabs Record Ball  4 0   0 5    Record Ball   tempy  Record Ball 4 0     Record Mode    0xc8     if RecFlag       ReadCompass     RecordBuffer Recordindex        Record   sprintf s   9u      count    UpdateCount s      51                 The following  switch  displays diagnostic informaton     on the A D system functions  Displaying the information  fx on the third line of the terminal       1 displays pitch and roll      2 displays airspeed and ball position      3 displays CDI  1 and its flag      4 dispalys CDI  2 and its flag      5 displays GS Dev and its flag           0 clears the thrid line display                    PES ERESERES ER ERE ES ERLE ELE SEAS EES EEE TEEEKEEETEIEEEEEKEEEKKEETK       switch DiagnosticFlag     case  0    break     case  1    PitchRoll Record Pitch Record Roll    break     case  2    ASPend Record Airspeed Record Ball    break     case  3    PitchRoll Record CDI1 Record CDIT F1    break     case  4    PitchRoll Record CDI2 Record CDIT F2    break     case  5    PitchRoll Record GS Dev Record GSFlag    break   default   break      time  amp WriteTime    WriteTimeFlag   1        WriteRecordFlag   0  Record Airspeed   0  Record Pitch   0     Record Roll   0  Record Ball   0  Record CDI1   
88. ors which  require such an external source  the vertical gyroscope  pendulum  and airspeed sensor      Vertical Gyroscope    A vertical gyroscope is employed to provide aircraft pitch and roll information for the Data Logger  The  component used is the Model VG24 0825 1 manufactured by Humphrey  Inc  The time to erect is less than  nine minutes    0 5 degrees  The unit weighs 3 0 pounds and requires 1 amp of starting current  0 4 amps  running current at 28 volts DC  The operational limits are   60 degrees of pitch  the roll axis is continuous   360 degrees      The unit is shock mount in a specially fabricated carrier  which also is used to mount the Pendulum system  described below  and this carrier is further isolated from the Data Logger enclosure by Lord mounts     The outputs are provided by two potentiometers requiring an external DC excitation voltage  the  10 volts  DC supplied from the analog to digital converter system described above   The signal is nominally 66  millivolts per degree in the roll axis and 80 millivolts per degree in the pitch axis  Both axes are calibrated  initially on the bench at O degrees and   45 degrees  Flight tests are performed to verify that the recorded  data accurately represents the data provided to the pilot by the standard aircraft instruments     Pendulum    A standard pendulum is employed to sense aircraft yaw in the same manner as the ball of a rate of turn  indicator  The instrument used is the Model CP17 0601 1 produced by Hump
89. ould appear on the  handheld terminal and the VGA display should provide a standard MSDOS command line prompt     In the event that the Data Logger system fails to even boot the MSDOS operating system  a keyboard and  display must be attached and a bootable 3 45    floppy disk must be available and inserted in the drive   When the system is powered  press the Del key on the keyboard when prompted to enter the CMOS setup  screens  Once in setup  configure the boot options to allow booting from the floppy disk first  then the  fixed disk  Save the CMOS setting and allow the system to re boot  The single board computer should    17    boot the MSDOS operating system from the floppy disk and allow testing to be performed  Diagnostics  should then be performed to determine the cause of the failure to boot from the fixed disk and this  condition remedied     Before returning the system to service as a Data Logger  restore the boot options back to the original  configuration  i e  boot from the fixed disk only  This setting is chosen so that a user can insert a floppy  disk  used to provide a copy of the Logger data file  at any time without having the system attempt to boot  from the floppy     At this point  the autoexec bat file can be edited to comment out the lines that automatically start the Data  Logger software  gpstest exe   These should be removed before the system id returned to service     Once the computer is booted and operating in MSDOS  all normal MSDOS functions sh
90. ould be available  and the unit should behave as a standard computer using command at the standard DOS prompt  The  floppy drive  A  and fixed disk  C  should be accessible for both read and write  serial ports COMI and  COM2 should be available  Note that    COM3    is non standard and will not be recognized by DOS  Also  there are no active parallel ports in the system     Executing the file gpstest exe from its home directory will run the actual logger software  The external  compass system and the handheld display terminal must be connected for the system to start  Furthermore   if the GPS antenna is not connected and receiving a signal  the Data Logger will not be allowed to enter the  logging mode     Compass System Problems    Accuracy    If the Data Logger does not provide an error message related to the compass system  type C  but the data  provided by the system appears to be erroneous  the first step would be to perform a new calibration   autocompensation  procedure     This is accomplished by powering the Data Logger and moving the aircraft to an area free from metal  structures and underground electrical power cables  This procedure is most easily accomplished with two  operators  one to maneuver the aircraft and one to operate the handheld terminal  The aircraft must be  maneuvered to eight  8  distinct headings during this process  The operators will be guided through the  procedure by a sequence of messages on the Console  At the end of a successful calibrati
91. rec Pitch   rec Roll   rec Ball   rec CDI1   rec CDIT F1   rec CDIFlag1   rec CDI2   rec CDIT F2   rec CDIFlag2   rec GSDev   rec GSFlag   rec COG   rec SOG          long double dg2rads long double degrees        long double temp1  temp2 temp3      format of geodetic parameters dddmm mmmmmm       templ   degrees 100 0L    if temp1 gt    OL  temp2   floorl temp1    else temp2   ceill temp1     temp3    templ temp2  100 0L   temp2     temp3 60 0L    temp1   temp2 d rad    return temp1      73    void II2UTM  long double latrad   long double longrad  long double   north  long double  east  int   IZONE   f    static int status   0    long double cen meridian delta meridian sinlat coslat tanlat  ETA    void initialize void     long double rad cur long double x  long double y  long double z     long double true mer dis long double a  long double b  long double c  long double d  long double e    long double f     long double t1 t2 t3 t4 t5 t6 t7 t8 t9  SN  TMD    long double delta 2 delta 4 delta 6 coslat 3 coslat 5 coslat 7 ETA 2 ETA 3   ETA 4    long double tanlat 2 tanlat 4 tanlat 6    long double dg2rads long double      latrad   dg2rads latrad    longrad   dg2rads longrad      if  status      initialize     status   1         IZONE   31  floorl longrad d rad 6 0L    if  IZONE  gt  60   IZONE   60   ifffIZONE  lt  1   IZONE   1     cen meridian    long double    IZONE  6  183  d rad   delta meridian   longrad  cen meridian     delta 2     delta meridian  delta meridian   delta 4
92. record now      FlushRecordBufferFlag   0  f  recording stopped  flush      SetTimeFlag   1   FloppyFlag   0   ExitFlag   0     ADInProgressFlag    ADDataReadyFlag    BannerFlag   0    DiagnosticFlag   0     0   0     unsigned char CurrentContrast   0x66   char SystemID     logger  ini variables     float PitchOffset   PitchGain   RollOffset   RollGain   AltOffset   AltGain   BallOffset   BallGain   char DataDirPath 50    struct record  1  unsigned long Time   int Mark   int Mode   double Latitude   double Longitude   int Altitude   int RateOfClimb   int Airspeed   int M agHeading   int Pitch   int Roll   float Ball   int CDI1   int CDIT F1   int CDIFlag1   int CDI2   int CDIT_F2   int CDIFlag2   int GSDev   int GSFlag   int COG   int SOG   E  struct record Record     stru    ct record RecordBuffer 10      int RecordIndex   0     int    GPSBufferFlag 2     0 0      char GPS Buffer 2 11500    unsigned int LoopCounter   1000     unsigned ADPointBuffer 200    4 Globals for A D board     int ADStatus    ADTask    ADParameters 5      41    ADDataBuffer 200      ADTempBuffer 100    int ADCount  10      HEHRHHHEHHHHHHHBHE    int GPS H D Flag   0    IONFlag  1    GPS Precision Flag  1   int GEOSATFlag   0        BRA      PORT   KVH     compass system on COM3     PORT   QT     terminal on COM2     PORT    GPS     GPS receiver on COM1       int SendGPSCommand char   p    void FatalError char   p     void GPSlnit void     int ReadGPS void      void GPSDelnit void    void GPSScan void   
93. s  The WAAS signal is the same frequency as the GPS L1 signal and thus can be  received and processed by a modified GPS receiver  Corrections and integrity bounds are calculated by the  ground stations  uplinked to the geostationary satellites  and transmitted to GPS WAAS users  Although  the WAAS is not yet commissioned and cannot be used for safety of life applications  it is perfectly suitable  for this application     Radio Navigation Instruments    The Data Logger records the radio navigation indications from two VOR LOC displays and one Glideslope  display  The left right  up down  deflection of the course deviation indicators  CDI s  is recorded in  addition to the state of the system flags and TO FROM indicators  in the case of VOR operations   This  requires a total of eight analog to digital channels     This data are derived from the outputs of the panel mounted display units normally used to connect to an  autopilot  The Bendix King units installed in the Beech Sundowners used in this application provide  industry standard CDI signal voltages   150 millivolts for a full scale deflection   however  the flags and  TO FROM signals are not exactly standardized and the Data Logger software is designed to accommodate  the voltages specific to these instruments     As a safety precaution  all connections to the aircraft navigation displays are routed through relays which  totally isolate the aircraft navigation circuitry from that of the Data Logger when the Data Logger 
94. s 4    amp SVx 5   SVstatus 5    7   SVstatus 7    amp SV x 8   SVstatus 8    10   SVstatus 10    amp SVx 11   SVstatus 11                          if error     2 satcount      Record Mode  amp   Oxfffe   if DCIFlag  gt  0  DCIFlag     GPSBufferFlag index  2 0   return        for i  0 i lt  satcount i         if SVx i   gt  32  GEOSATFlag   1     if strchr OKCodes   int S Vstatus i  0      NULL  Corrected            if GPSFlag    0        48    DCIFlag   0        else    printf  SV122 found  96d  Count    d n  GEOSATFlag Corrected    if GEOSATFlag  amp  amp   Corrected  gt  4      DCIFlag   10   Record Mode    0x0001   SetlON 0       else     Record Mode  amp   Oxfffe   if DCIFlag  gt  0  DCIFlag     if IDCIFlag  SetlON 1          GPSBufferFlag index    0   return          if  strstr GPS Buffer index    PASHR WAS INF      NULL    is an INF message         if  sscanf GPS Buffer index  infformat   amp W AA SFlag         printf    syn   GPSBuffer index     if WAASFlag    Ox3f         SetWAAScor 1    passcount   5      else      if    passcount       SetWAAScor 0    SetlON 1               GPSBufferFlag index    0   return     if  strstr GPSBuffer index    PASHR POS      NULL     is a POS message        WriteRecordFlag   1     time to write a record     if sscanf GPSBuffer index   posformat   amp PFlag   amp temptime  amp  PLat   amp ns   amp PLon   amp ew    amp PAIt   amp COG   amp SOG  amp Rate      10      POSTime   temptime   printf  scanned POS message at 96 ldin  POSTime   
95. sage    QTClear      QTWLine string  1     QTWLine  Record Error Number   2    QTW Line  To Restart  reset or   3     QTW Line   cycle power on unit   4     for i  0 i lt  3 i           QTBeep     delay 1000       WriteString GPS   PASHS RST   2    exit 0        ER EFESELELES EA LEELA ESLER LES EA EL ELE ERE EL EL EA EE ELE EES EE EEE ERE EE RES ERE              Displays the Sign On Message and System ID  Tests LEDs and Beep  87  JA 2    aaa AA AA FEKK KERK KERR      void DisplaySignOn char c  char   st   f    char buffer 20    int i     QTReset      QTWLine   IPC Data Logger   1    sprintf buffer  System  c  c    QTW Line buffer  2    sprintf buffer   26 s   st     QTW Line buffer  3      for i  1 i lt  6 i            QTLed i 1      LED s on     delay 300         QTBeep      delay 500     for i  5 15 0 i     QTLed i 0    4 LED s off     delay  300      61         delay 3000        fEEESERES EREAARES ERE ERED TT ET ERED ERE ARES ERE RES ERE EEE EE REE EERE ER EY     Kl     Looks for KeyPresses on the OT Terminal  scans for valid inputs       ha sets flags for the various functions to be performed       ka       JEE EKEK kK E K kk Kk k RK Kk KKK KK K KK KET   EKKAKKK  EET  KKE  EEK  EEKKK  KKKEKKK  KKKAKK J    void GetKeyboardInput void      int status   char buffer 22    char mess1 5     ESC  I   B         char mess2 5     ESC  K y    if ISRXEmpty QT   return     return immediately if no characters     if PeekChar QT             if not tilde  single character command       if
96. sages of the terminal   When operating and  collecting data  this loop is executed approximately three hundred times per second     A data record is taken each second and stored to a temporary buffer  Every ten seconds  this buffer is  written to the fixed disk and the file is closed  This procedure ensures that if software or hardware failure  occurs during a flight logging session  the data recorded  with the possible exception of the last ten  seconds  is saved and recoverable     The logger data is stored to the fixed disk in binary format that minimizes the time and disk space required  to store each record  A binary record is only 60 bytes long  One hour of flight data occupies only 211  kilobytes of storage and thus a data file representing more than six hours of flight data can easily be stored  on a 3 12    floppy disk     When the operator ends a logging session and exits the program  the recorded data file is copied to the  floppy disk automatically  If this operation fails for any reason  no disk present  disk not formatted  or  some other reason   the file is retained and written to the floppy disk on the next opportunity  In any event   the data files are always retained on the fixed disk and may be retrieved using standard DOS command line  procedures     The program consists of multiple modules  the source code for which may be found in Appendix 7     Post Flight Data Conversion Software    As noted above  the flight data files are stored in binary for reasons
97. t   1   if buffer 0       C     buffer 0       H   QTContrast     ClearRXBuffer QT        while  test    QTClear            float GetM agHeading void     float heading   char   HDG    dl    char ans 40               command to get heading data       int ERROR   0    CompassCommand HDG  ans      call command routine      ERROR    sscanf ans   f   amp heading      scan result for heading      if ERROR  FatalError   C002       exec Fatal error routine      return heading       aa ENST TETEN ETE TETEN ETAL ES ELLE ELAS ELAS AL ESE RES ERE RARE EE ER EERE RE ER ES f     FI   lai Prompts User through 8   point calibration procedure kf     Checks for errors which are considered non fatal      ka        EEF REEEAEERA LEE AL ERA LEE AS ERA EEE AE ERA EER EER EEE A EEE AER EE ER EER ERE J    void CalCompass void        char   cal    cel      calibration command     char response 40      return string buffer     char   pos    Position A C to       Prompt sub string     char   test    complete       SUCCESS sub string     float lastheading   0 0  heading   int ERROR   int status   charc        if  CalFlag  return     GPSDelnit      GPSFlag   DCIFlag   0    QTClear       Clear Display      CalFlag   1     Set CalFlag  no other ops      QTW Line   Compass Calibration  1    4 Use Prompt Strings       QTWLine  Enter on Positioned  3    QTWLine  Press WAN  to Abort  4      do    printf  line 141       for testing only     CompassCommand cal response      send cal command       35    printf  l
98. tected by a 10 amp circuit breaker in the primary power circuit of the  Data Logger  Two switching DC to DC converters are required in 12 volt aircraft  only a primary  converter is required in 24 volt aircraft  in addition to changes to other components of the Data Logger   see the section Maintenance and Troubleshooting for details      Primary Converter    The primary DC to DC converter is that which converts the aircraft DC power to the voltages required to  operate the single board computer and other components that require compatible regulated voltages  the  Display Terminal and the Compass System      The input of the primary converter  for the Beech Sundowner  is 12 volts DC  the outputs are  e  5 volts DC regulated  e  3 volts DC regulated  e  12 volts DC regulated  e  12 volts DC regulated    The primary DC to DC converter used is the Model PD110 40L by International Power Sources  Inc  This  unit requires an input of 10 to 20 volts DC and provides the four regulated output voltages listed above   The unit is capable of providing   5 volts DC   10 amps    12 volts DC   9 amps   12 volts DC and   5  volts DC both   1 amp  total power output not to exceed 110 watts   The   5 volt output is over voltage  protected and all outputs are over current protected     Secondary Converter    The secondary DC to DC converter is required only in aircraft that are equipped with a 12 volt electrical  system  such as the model of Beech Sundowner employed in this application      The
99. ted  Note that in any event  pressing the   reset  button on the Data Logger will require a minute or so before the system appears to respond  This  delay is caused by the necessity of re loading the operating system followed by the actual program     If this fails to resolve the problem  the Data Logger should be powered down and the logging session  cancelled until the required maintenance can be performed     12    Table 1 Data Logger Error Codes                                                                                                 Error Code Description   A001 Error initializing the analog to digital converter    A002 Error initializing an A D conversion cycle    A003 Error starting an A D conversion cycle    A004 Error reading data from an A D conversion    C001 Magnetic Compass fails to respond to commands    C002 Failed to obtain magnetic heading    G001 Could not send command to GPS receiver    G002 Could not reset the GPS receiver    G003 Could not set initiate low dynamics in GPS receiver    G004 Could not set navigation mode in GPS receiver    G005 Could not start WAAS mode of the GPS receiver    G006 Could not set ION mode of the GPS receiver    G007 Could not set WAAS POS mode of the GPS receiver    G007 Could not set WAAS precision mode of the GPS receiver    G008 Could not request WA AS INF message from the GPS receiver   G009 Could not request NMEA GGA message from the GPS receiver   G010 Could not request NMEA POS message from the GPS receiver   G001
100. the  handheld terminal  There will be  no doubt  other faults in the hardware and software which may just  STOP the system with NO displayed error message  If an error message is displayed  or if the logging just  stops inexplicably   pressing the  reset  button on the Data Logger or turning the power switch OFF and  then back ON will re initialize the system     11    In any event  if the system was recording  a process is in place that allows the operator to restart recording  data to the original file     If restart is possible  the sign on message  check for disk  compass checks  and gyro check will be  bypassed  The message  Restart Possible  will be displayed     The operator may press RSTRT on the handheld terminal to resume recording  if the GPS LED is lit      If it desired that subsequent flight data be recorded to a new file  the aircraft must be flown straight and  level until the GYRO LED is lit  then if the GPS LED is also lit  pressing the START STOP key begins  recording to a new file     Other Features    Calibrate Compass  When NOT recording data  the operator may press CAL COMP to begin a compass  calibration  autocompensation  procedure  Messages on the handheld terminal will guide the operator  through the series of steps required to do an eight point ground calibration of the magnetic compass engine   The operator may abort this procedure at any time  The unit displays information on the accuracy of the  calibration upon completion  Details on this proce
101. til turned off by  command     Appendix 6   Initial Settings for Display Control Console    The OTERM II is configured via software provided by the manufacturer  The program QSETUP EXE is  used to program the terminal using a  QDATA File     The QDATA File is an ASCII file provided by the  manufacturer in several versions for the various models of the QTERM II terminal  The particular file  appropriate to this unitis ODATA40W V30     Several changes were made to this default file in order to utilize the display more conveniently and to  simplify the task of communicating with the terminal  Specifically the lines identified below were  modified     e  auto wrap mode  off   e  auto scroll mode  off   e  auto line feed mode  off   e  key repeat mode  off   e  lt k00 gt   5   lt k01 gt     4     lt k02 gt     3     e  lt k03 gt   2   lt k04 gt     1   lt k05 gt    e   sk00    5   lt Sk01 gt       lt sk02 gt     3     e   sk032  2   lt sk04 gt     1   lt sk05 gt     The result of loading this modified configuration is twofold     1  Alltwenty character positions on each of the four lines of the display can be written to without  changing the display on any other line in the process  and   2  The data sent when a function key is pressed  START STOP  EXIT  etc   starts with the tilde      character which is not sent by any other key on the keypad     Detailed instructions on the use of OSETUP and  ODATA Files    are in Chapter 3 of the OTERM II User s  Manual     The QTERM II sends 
102. tion   Percent Full Scale  limit at 120     right  T FI 311 To From Indicator 1   TO   1   FROM  0   none  Flagl VOR LOC   1 Flag   GOOD  0 Z FLAGGED  CDI 2 VOR LOC   2   Same as Above  T F2  Flag2  GSCDI Glideslope Course Deviation Same as VOR LOC CDI s    up  GS Flag Glideslope Flag Same as VOR LOC Flags  COS Course Over Ground Degrees     Derived by GPS  SOG Speed Over Ground Knots   Derived by GPS                  The Mode of the Data Logger  which employs WAAS correction  has the decimal number 200 added to  the mode value to differentiate the data from the original  which used DCI RTCM corrections     14       Table 3 Legend for UTM ASCII Converted Files                                                                                  Column Heading Description Format and Limits   Time Universal Coordinated Time HHMMSS   Mark Observer Data Mark Auto incrementing integers   Mode GPS Operational Model 0 2 none  2   non diff  3   diff   Zone UTM Zone Integers between 1 and 60   Northing UTM Northing Coordinate Meters north of the Equator   Fasting UTM Easting Coordinate Meters East of Central Meridian  For this Zone   500 000   Alt Altitude Above MSL Units of feet   Rate of Climb Vertical Speed Units of feet minute   Airspeed Indicated Airspeed Units of Knots   MagHeading Magnetic Heading Degrees   Pitch Pitch Attitude Degrees    nose up    Roll Roll Attitude Degrees    right    Ball Coordination  Yaw  Units of  Ball Width    CDI 1 VOR LOC   1 Course Deviation   Percent Ful
103. to be placed  and calibration data for the analog channels which are hardware dependent  pitch   roll  ball  and airspeed   This allows re calibration of the system without the need to re compile the basic  program     Most of the inputs are channeled through hardware interrupt serviced input output ports to insure that data  from the external devices is received without loss of information  A system of flags and semaphores are  used to indicate when data is available for each module to process  thus allowing the software to bypass  modules which need not be run at that particular instant     After the initialization of the sub systems  the program enters the main program loop  each function within  the loop performs a specific  relatively short task on the data available to be processed and then passes  control the next task  By these means  an operating system  which was never designed to be multitasking   can be manipulated into a multitasking function  For example  one task reads available characters from the  GPS system and places them in a buffer  temporary storage   This routine places each message in a  separate buffer and sets a flag if a complete message is available  Later  another task interrupts the  buffered message and acts upon the result  In the meantime  other tasks are performed  such as servicing  the analog to digital converter system  scanning for and acting upon operator keyboard input  processing  data  storing data  and updating the LED s and text mes
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
  KOHLER K-1418-G-0 Installation Guide  Philips PHC120  Zotac H87-ITX    Spirea2 - Invacare Rea  DFX-256 um v1.2  gebruiksaanwijzing betriebsanleitung user manual mode d  Série MET ONE 3400 Compteur portable de particules aéroportées  Millennium 3 - DAVI Y CIA, S.L.    Copyright © All rights reserved. 
   Failed to retrieve file