#ifndef DD_TEENSY_DEFS_H #define DD_TEENSY_DEFS_H #include // Configuration: Number of double precision values (rest will be single precision) #define DOUBLE_COUNT 8 // First 8 values as doubles, remaining as floats #define FLOAT_COUNT ((128 - (DOUBLE_COUNT * 8)) / 4) // Number of Float values in EEPROM // Structure to transmit Sensor Measurements data struct __attribute__((packed)) sensorDataPacketStruct { uint32_t sensorNum; // Conductivity Sensor number i.e unit 1 to 6. float impFreq; // Impedance Frequency uint32_t impDataPoints; // Impedance Data Points. Hard coded to 1 float impRzMag; // Value of medianMag float impRzPhase; // Value of medianPhase float rtdFreq; // RTD Frequency. Hard coded to 0.0 uint32_t rtdDataPoints; // Impedance Data Points. Hard coded to 1 float rtdRzMag; // Value of rtd_resistance float rtdRzPhase; // RTD Rz Phase. Hard coded to 0.0 }; // Structure to transmit EEPROM data struct __attribute__((packed)) eepromDataPacketStruct { double doubleValue[DOUBLE_COUNT]; // Double Values stored in the EEPROM float floatValue[FLOAT_COUNT]; // Float Values stored in the EEPROM }; // Structure to transmit conductivity measurement settings struct __attribute__((packed)) measurementSettingsStruct { float SinFreq; float DacVoltPP; float BiasVolt; uint32_t HstiaRtiaSel; uint32_t AdcPgaGain; uint32_t DftNum; uint32_t ADCAvgNum; }; typedef enum Init_Status { INIT_STATUS_UNITIALIZED = 0, INIT_STATUS_IN_PROGRESS, INIT_STATUS_INITIALIZED, INIT_STATUS_FAILED }; #endif