Index: firmware/App/Drivers/ConductivityTeensy.h =================================================================== diff -u -r1ab489b7b273361422832d620165a66951b1f93b -r424859ea9121940514b9415fe5a15ae1882825a6 --- firmware/App/Drivers/ConductivityTeensy.h (.../ConductivityTeensy.h) (revision 1ab489b7b273361422832d620165a66951b1f93b) +++ firmware/App/Drivers/ConductivityTeensy.h (.../ConductivityTeensy.h) (revision 424859ea9121940514b9415fe5a15ae1882825a6) @@ -62,38 +62,51 @@ typedef enum Conductivity_Parse_Status { - CONDUCTIVITY_PARSE_SUCCESS = 0, + CONDUCTIVITY_PARSE_NONE = 0, CONDUCTIVITY_PARSE_ERROR_NULL_BUFFER, CONDUCTIVITY_PARSE_ERROR_INVALID_LENGTH, - CONDUCTIVITY_PARSE_ERROR_INVALID_SENSOR_NUM + CONDUCTIVITY_PARSE_ERROR_INVALID_SENSOR_NUM, + CONDUCTIVITY_PARSE_SUCCESS, } CONDUCTIVITY_PARSE_STATUS; -/// Enumeration of FPGA states. +/// Enumeration of Conductivity Communication states. typedef enum Conductivity_Comm_States { - COND_COMM_STATE_START = 0, - COND_COMM_STATE_SEND_CMD, - COND_COMM_STATE_RCV_RSPNS, - COND_COMM_STATE_SEND_CMD_INIT_SENSOR, - COND_COMM_STATE_RCV_RSPNS_INIT_SENSOR, - COND_COMM_STATE_SEND_CMD_GET_INIT_STATUS, - COND_COMM_STATE_RCV_RSPNS_GET_INIT_STATUS, - COND_COMM_STATE_SEND_CMD_UPDATE_EEPROM_DATA, - COND_COMM_STATE_RCV_RSPNS_UPDATE_EEPROM_DATA, - COND_COMM_STATE_SEND_CMD_GET_EEPROM_DATA, - COND_COMM_STATE_RCV_RSPNS_GET_EEPROM_DATA, - COND_COMM_STATE_SEND_CMD_UPDATE_MEASUREMENT_SETTINGS, - COND_COMM_STATE_RCV_RSPNS_UPDATE_MEASUREMENT_SETTINGS, - COND_COMM_STATE_SEND_CMD_GET_MEASUREMENT_SETTINGS, - COND_COMM_STATE_RCV_RSPNS_GET_MEASUREMENT_SETTINGS, - COND_COMM_STATE_SEND_CMD_GET_MEASUREMENT, - COND_COMM_STATE_RCV_RSPNS_GET_MEASUREMENT, + COND_COMM_STATE_IDLE = 0, + COND_COMM_STATE_TX, + COND_COMM_STATE_RX, COND_COMM_STATE_FAILED, NUM_OF_COND_COMM_STATES } CONDUCTIVITY_COMM_STATE_T; +/// Update EEPROM status +typedef enum Conductivity_Update_Eeprom_Status +{ + COND_UPDATE_EEPROM_STATUS_UNITIALIZED = 0, ///< The initialization process has not started. + COND_UPDATE_EEPROMSTATUS_IN_PROGRESS, ///< The initialization process has started. + COND_UPDATE_EEPROM_STATUS_INITIALIZED, ///< Initialization process completed and all the sensors were initialized successfully. + COND_UPDATE_EEPROM_STATUS_FAILED ///< Initialization process completed but one or more sensor was not initialized properly. +}CONDUCTIVITY_UPDATE_EEPROM_STATUS_T; + +// Update Measurement Settings Status +typedef enum Update_mst_Status +{ + COND_MST_STATUS_ERR_UNRECOGNIZED_PARAM = 0, // Invalid parameter was passed with the command + COND_MST_STATUS_ERR_UPDATED_TO_DEFAULT_TIA, // Invalid value of "rtia" was passed with the command. So it was updated to its default value. + COND_MST_STATUS_ERR_UPDATED_TO_DEFAULT_PGA, // Invalid value of "pga" was passed with the command. So it was updated to its default value. + COND_MST_STATUS_ERR_UPDATED_TO_DEFAULT_DFT_NUM, // Invalid value of "dftnum" was passed with the command. So it was updated to its default value. + COND_MST_STATUS_ERR_UPDATED_TO_DEFAULT_AVG_NUM, // Invalid value of "avgnum" was passed with the command. So it was updated to its default value. + COND_MST_STATUS_SUCCESS +}CONDUCTIVITY_UPDATE_MST_STATUS_T;; + typedef struct { + TEENSY_CMD_INDEX_T cmdIdx; + U08* teensyCMD; +} CONDUCTIVITY_CMD_DATA_T; + +typedef struct +{ F64 A0; F64 A1; F64 B0; @@ -149,7 +162,7 @@ // ********** public function prototypes ********** void initCondTeensy( void ); -void execConductivityCommunication( void ); +void execConductivityTeensy( void ); void signalConductivityReceiptCompleted( void ); void signalConductivityTransmitCompleted( void ); F64 getImpedanceValue( U32 sensorNum );