text: #ifndef AnalogBinLogger_h
  #define AnalogBinLogger_h
  //------------------------------------------------------------------------------
  // First block of file.
  struct metadata_t {
    unsigned long  adcFrequency;     // ADC clock frequency
    unsigned long  cpuFrequency;     // CPU clock frequency
    unsigned long  sampleInterval;   // Sample interval in CPU cycles.
    unsigned long  recordEightBits;  // Size of ADC values, nonzero for 8-bits.
    unsigned long  pinCount;         // Number of analog pins in a sample.
    unsigned long  pinNumber[123];   // List of pin numbers in a sample.
  };
  //------------------------------------------------------------------------------
  // Data block for 8-bit ADC mode.
  const size_t DATA_DIM8 = 508;
  struct block8_t {
    unsigned short count;    // count of data values
    unsigned short overrun;  // count of overruns since last block
    unsigned char  data[DATA_DIM8];
  };
  //------------------------------------------------------------------------------
  // Data block for 10-bit ADC mode.
  const size_t DATA_DIM16 = 254;
  struct block16_t {
    unsigned short count;    // count of data values
    unsigned short overrun;  // count of overruns since last block
    unsigned short data[DATA_DIM16];
  };
  //------------------------------------------------------------------------------
  // Data block for PC use
  struct adcdata_t {
    unsigned short count;    // count of data values
    unsigned short overrun;  // count of overruns since last block
    union {
      unsigned char  u8[DATA_DIM8];
      unsigned short u16[DATA_DIM16];
    } data;
  };
  #endif  // AnalogBinLogger_h