#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