Index: firmware/App/Drivers/ConductivityTeensy.h =================================================================== diff -u -r1ab489b7b273361422832d620165a66951b1f93b -r133bb277d0f518f13e74a57c4edabaf22bc0ebe7 --- firmware/App/Drivers/ConductivityTeensy.h (.../ConductivityTeensy.h) (revision 1ab489b7b273361422832d620165a66951b1f93b) +++ firmware/App/Drivers/ConductivityTeensy.h (.../ConductivityTeensy.h) (revision 133bb277d0f518f13e74a57c4edabaf22bc0ebe7) @@ -71,29 +71,66 @@ /// Enumeration of FPGA states. typedef enum Conductivity_Comm_States { - COND_COMM_STATE_START = 0, + COND_COMM_STATE_IDLE = 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, + NUM_OF_COND_COMM_STATES +} CONDUCTIVITY_COMM_STATE_T; + +typedef enum Conductivity_TX_States +{ + COND_COMM_STATE_SEND_CMD_INIT_SENSOR = 0, 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_SEND_CMD_STOP_MEASUREMENT, + COND_COMM_STATE_SEND_CMD_GET_ALL_MEASUREMENTS, + COND_COMM_STATE_SEND_CMD_SELECT_SENSOR, + COND_COMM_STATE_SEND_CMD_GET_SINGLE_MEASUREMENT, + NUM_OF_COND_COMM_TX_STATES +} CONDUCTIVITY_TX_STATE_T; + +typedef enum Conductivity_RX_States +{ + COND_COMM_STATE_RCV_RSPNS_INIT_SENSOR = 0, + COND_COMM_STATE_RCV_RSPNS_GET_INIT_STATUS, + COND_COMM_STATE_RCV_RSPNS_UPDATE_EEPROM_DATA, + COND_COMM_STATE_RCV_RSPNS_GET_EEPROM_DATA, + COND_COMM_STATE_RCV_RSPNS_UPDATE_MEASUREMENT_SETTINGS, + COND_COMM_STATE_RCV_RSPNS_GET_MEASUREMENT_SETTINGS, COND_COMM_STATE_RCV_RSPNS_GET_MEASUREMENT, - COND_COMM_STATE_FAILED, - NUM_OF_COND_COMM_STATES -} CONDUCTIVITY_COMM_STATE_T; + COND_COMM_STATE_RCV_RSPNS_CMD_STOP_MEASUREMENT, + COND_COMM_STATE_RCV_RSPNS_GET_ALL_MEASUREMENTS, + COND_COMM_STATE_RCV_RSPNS_SELECT_SENSOR, + COND_COMM_STATE_RCV_RSPNS_GET_SINGLE_MEASUREMENT, + NUM_OF_COND_COMM_RX_STATES +} CONDUCTIVITY_RX_STATE_T; +static const U08* teensyCmd[] = { "a", ///< COND_COMM_STATE_SEND_CMD_INIT_SENSOR + "l", ///< COND_COMM_STATE_SEND_CMD_GET_INIT_STATUS + "save", ///< COND_COMM_STATE_SEND_CMD_UPDATE_EEPROM_DATA, + "e", ///< COND_COMM_STATE_SEND_CMD_GET_EEPROM_DATA, + "cfg", ///< COND_COMM_STATE_SEND_CMD_UPDATE_MEASUREMENT_SETTINGS, + "k", ///< COND_COMM_STATE_SEND_CMD_GET_MEASUREMENT_SETTINGS, + "m", ///< COND_COMM_STATE_SEND_CMD_GET_MEASUREMENT, + "n", ///< Stop getting measurements + "g", ///< Get measurements of all the sensors + "j", ///< Select a sensor. ex : "j 1" selects sensor number 1 + "h" ///< Get that of selected sensor. (First Execute command "j".) + }; + typedef struct { + TEENSY_CMD_INDEX_T cmdIdx; + U08* teensyCMD; + +} CONDUCTIVITY_CMD_DATA_T; + +typedef struct +{ F64 A0; F64 A1; F64 B0; @@ -149,9 +186,10 @@ // ********** public function prototypes ********** void initCondTeensy( void ); -void execConductivityCommunication( void ); +void execConductivityTeensy( void ); void signalConductivityReceiptCompleted( void ); void signalConductivityTransmitCompleted( void ); +void addToCmdQ(U08 teensyCmd); F64 getImpedanceValue( U32 sensorNum ); F64 getRTDValue( U32 sensorNum );