Index: Common.h =================================================================== diff -u -r4c8f5e8c8e26bb5c84859b4c846f3b583aae55fe -r6e2e8e664a820341159989d983b7a842101faba1 --- Common.h (.../Common.h) (revision 4c8f5e8c8e26bb5c84859b4c846f3b583aae55fe) +++ Common.h (.../Common.h) (revision 6e2e8e664a820341159989d983b7a842101faba1) @@ -8,7 +8,7 @@ * @file Common.h * * @author (last) Dara Navaei -* @date (last) 03-Aug-2022 +* @date (last) 18-Oct-2022 * * @author (original) Sean * @date (original) 04-Feb-2020 @@ -34,7 +34,7 @@ typedef float F32; ///< 32-bit floating point type typedef double F64; ///< 64-bit floating point type -typedef unsigned long long U64; ///< 64-bit unsigned integer type +typedef long long S64; ///< 64-bit signed integer type typedef unsigned int U32; ///< 32-bit unsigned integer type typedef int S32; ///< 32-bit signed integer type typedef unsigned short U16; ///< 16-bit unsigned integer type @@ -110,20 +110,59 @@ #define ML_PER_LITER 1000 ///< Number of milliliters in a liter #define MA_PER_AMP 1000 ///< Number of milliamps in an amp #define MS_PER_SECOND 1000 ///< Number of milliseconds in a second -#define US_PER_SECOND 1000000 ///< Number of microseconds in a millisecond +#define US_PER_SECOND 1000000 ///< Number of microseconds in a second #define SEC_PER_MIN 60 ///< Number of seconds in a minute #define FRACTION_TO_PERCENT_FACTOR 100.0F ///< Percentage factor (100) #define MIN_PER_HOUR 60 ///< Number of minutes in an hour -#define PI 3.1415927F ///< PI +#define PI 3.1415927F ///< PI #define SECONDS_IN_A_DAY 86400 ///< Number of seconds in a day #define BITS_8_FULL_SCALE 256 ///< Full scale range for 8 bit ADC or DAC #define BITS_10_FULL_SCALE 1024 ///< Full scale range for 10 bit ADC or DAC +#define BITS_11_FULL_SCALE 2048 ///< Full scale range for 11 bit ADC or DAC #define BITS_12_FULL_SCALE 4096 ///< Full scale range for 12 bit ADC or DAC #define BITS_14_FULL_SCALE 16384 ///< Full scale range for 14 bit ADC or DAC #define BITS_16_FULL_SCALE 65536 ///< Full scale range for 16 bit ADC or DAC #define BITS_24_FULL_SCALE 16777216 ///< Full scale range for 24 bit ADC or DAC #define HALF 0.5F ///< Half +#define ASCII_CODE_LETTER_A 0x41 ///< ASCII code in hex for letter A. +#define ASCII_CODE_LETTER_B 0x42 ///< ASCII code in hex for letter B. +#define ASCII_CODE_LETTER_C 0x43 ///< ASCII code in hex for letter C. +#define ASCII_CODE_LETTER_D 0x44 ///< ASCII code in hex for letter D. +#define ASCII_CODE_LETTER_E 0x45 ///< ASCII code in hex for letter E. +#define ASCII_CODE_LETTER_F 0x46 ///< ASCII code in hex for letter F. +#define ASCII_CODE_LETTER_G 0x47 ///< ASCII code in hex for letter G. +#define ASCII_CODE_LETTER_H 0x48 ///< ASCII code in hex for letter H. +#define ASCII_CODE_LETTER_I 0x49 ///< ASCII code in hex for letter I. +#define ASCII_CODE_LETTER_J 0x4A ///< ASCII code in hex for letter J. +#define ASCII_CODE_LETTER_K 0x4B ///< ASCII code in hex for letter K. +#define ASCII_CODE_LETTER_L 0x4C ///< ASCII code in hex for letter L. +#define ASCII_CODE_LETTER_M 0x4D ///< ASCII code in hex for letter M. +#define ASCII_CODE_LETTER_N 0x4E ///< ASCII code in hex for letter N. +#define ASCII_CODE_LETTER_O 0x4F ///< ASCII code in hex for letter O. +#define ASCII_CODE_LETTER_P 0x50 ///< ASCII code in hex for letter P. +#define ASCII_CODE_LETTER_Q 0x51 ///< ASCII code in hex for letter Q. +#define ASCII_CODE_LETTER_R 0x52 ///< ASCII code in hex for letter R. +#define ASCII_CODE_LETTER_S 0x53 ///< ASCII code in hex for letter S. +#define ASCII_CODE_LETTER_T 0x54 ///< ASCII code in hex for letter T. +#define ASCII_CODE_LETTER_U 0x55 ///< ASCII code in hex for letter U. +#define ASCII_CODE_LETTER_V 0x56 ///< ASCII code in hex for letter V. +#define ASCII_CODE_LETTER_W 0x57 ///< ASCII code in hex for letter W. +#define ASCII_CODE_LETTER_X 0x58 ///< ASCII code in hex for letter X. +#define ASCII_CODE_LETTER_Y 0x59 ///< ASCII code in hex for letter Y. +#define ASCII_CODE_LETTER_Z 0x5A ///< ASCII code in hex for letter Z. + +#define ASCII_CODE_NUMBER_ZERO 0x30 ///< ASCII code in hex for number zero. +#define ASCII_CODE_NUMBER_ONE 0x31 ///< ASCII code in hex for number one. +#define ASCII_CODE_NUMBER_TWO 0x32 ///< ASCII code in hex for number two. +#define ASCII_CODE_NUMBER_THREE 0x33 ///< ASCII code in hex for number three. +#define ASCII_CODE_NUMBER_FOUR 0x34 ///< ASCII code in hex for number four. +#define ASCII_CODE_NUMBER_FIVE 0x35 ///< ASCII code in hex for number five. +#define ASCII_CODE_NUMBER_SIX 0x36 ///< ASCII code in hex for number six. +#define ASCII_CODE_NUMBER_SEVEN 0x37 ///< ASCII code in hex for number seven. +#define ASCII_CODE_NUMBER_EIGHT 0x38 ///< ASCII code in hex for number eight. +#define ASCII_CODE_NUMBER_NINE 0x39 ///< ASCII code in hex for number nine. + // **** Common Macros **** #define FLOAT_TO_INT_WITH_ROUND(f) ((f) < 0.0F ? (S32)((f) - FLOAT_TO_INT_ROUNDUP_OFFSET) : (S32)((f) + FLOAT_TO_INT_ROUNDUP_OFFSET)) ///< Macro converts a floating point value to an integer @@ -257,21 +296,66 @@ // **** Common Broadcast Data **** +#pragma pack(push,1) /// Heaters data structure. typedef struct { - F32 mainPrimayHeaterDC; ///< Main primary heater DC - F32 smallPrimaryHeaterDC; ///< Small primary heater DC - F32 trimmerHeaterDC; ///< Trimmer heater DC - F32 primaryTargetTemp; ///< Primary heater target temperature - F32 trimmerTargetTemp; ///< Trimmer heater target temperature - U32 primaryHeaterState; ///< Primary heater state - U32 trimmerHeaterState; ///< Trimmer heater state - F32 primaryEfficiency; ///< Primary heater efficiency - F32 primaryCalcTargetTemp; ///< Primary heater calculated target temperature - F32 trimmerCalcCurrentTemp; ///< Trimmer heater calculated current temperature + F32 mainPrimayHeaterDC; ///< Main primary heater DC + F32 smallPrimaryHeaterDC; ///< Small primary heater DC + F32 trimmerHeaterDC; ///< Trimmer heater DC + F32 primaryTargetTemp; ///< Primary heater target temperature + F32 trimmerTargetTemp; ///< Trimmer heater target temperature + U32 primaryHeaterState; ///< Primary heater state + U32 trimmerHeaterState; ///< Trimmer heater state + F32 primaryEfficiency; ///< Primary heater efficiency + F32 primaryCalcTargetTemp; ///< Primary heater calculated target temperature + F32 trimmerCalcCurrentTemp; ///< Trimmer heater calculated current temperature } HEATERS_DATA_T; +/// Temperature sensors data structure. +typedef struct +{ + F32 inletPrimaryHeater; ///< Inlet primary heater temperature sensor + F32 heatDisinfect; ///< Heat Disinfect temperature sensor + F32 outletPrimaryHeater; ///< Outlet primary heater temperature sensor + F32 conductivitySensor1; ///< Conductivity sensor 1 temperature sensor + F32 conductivitySensor2; ///< Conductivity sensor 2 temperature sensor + F32 outletRedundant; ///< Outlet redundant temperature sensor + F32 inletDialysate; ///< Inlet dialysate temperature sensor + F32 primaryHeaterThermocouple; ///< Primary heaters thermocouple sensor + F32 trimmerHeaterThermocouple; ///< Trimmer heater thermocouple sensor + F32 priamyHeaterColdjunction; ///< Primary heaters cold junction temperature sensor + F32 trimmerHeaterColdjunction; ///< Trimmer heater cold junction temperature sensor + F32 primaryHeaterInternal; ///< Primary heaters internal temperature (calculated from thermocouple and cold junction) + F32 trimmerHeaterInternal; ///< Trimmer heater internal temperature (calculated from thermocouple and cold junction) + F32 fpgaBoard; ///< FPGA board temperature sensor + F32 loadCellA1B1; ///< Load cell A1/B1 temperature sensor + F32 loadCellA2B2; ///< Load cell A2/B2 temperature sensor + F32 internalTHDORTD; ///< THDo RTD channel temperature sensor + F32 internalTDIRTD; ///< TDI RTD channel temperature sensor + F32 interalTHDRTD; ///< THd RTD channel temperature sensor + F32 internalCondSnsrTemp; ///< Conductivity Sensor internal temperature sensor + F32 baroTempSensor; ///< Barometric temperature sensor +} TEMPERATURE_SENSORS_DATA_T; + +/// Loadcell measurements struct. +typedef struct +{ + F32 loadCellA1inGram; ///< Loadcell A1 measurement in gram + F32 loadCellA2inGram; ///< Loadcell A2 measurement in gram + F32 loadCellB1inGram; ///< Loadcell B1 measurement in gram + F32 loadCellB2inGram; ///< Loadcell B2 measurement in gram +} LOAD_CELL_DATA_T; + +/// Flow meters data struct. +typedef struct +{ + F32 ROFlowRateLPM; ///< RO flow rate in L/min. + F32 ROFlowRateWithCPsLPM; ///< RO flow rate with concentrate pumps in L/min. + F32 dialysateFlowRateLPM; ///< Dialysate flow rate L/min. +} FLOW_SENSORS_DATA_T; +#pragma pack(pop) + // **** VectorCAST Definitions **** #ifdef _VECTORCAST_