Index: Utilities.h =================================================================== diff -u -r569a9f44c93e6489f1dc1a62a7937e100ea344c2 -r4b3e011f99900660c9c9f23d3ea50a07cb61e64b --- Utilities.h (.../Utilities.h) (revision 569a9f44c93e6489f1dc1a62a7937e100ea344c2) +++ Utilities.h (.../Utilities.h) (revision 4b3e011f99900660c9c9f23d3ea50a07cb61e64b) @@ -7,8 +7,8 @@ * * @file Utilities.h * -* @author (last) Quang Nguyen -* @date (last) 22-Jul-2020 +* @author (last) Sean Nash +* @date (last) 04-Sep-2020 * * @author (original) Sean * @date (original) 17-Feb-2020 @@ -29,7 +29,7 @@ // ********** public definitions ********** // ******* Time Windowed Count Definitions ********* -#define MAX_TIME_WINDOWED_COUNT 5 ///< Maximum # of counts that a time windowed count can count to. +#define MAX_TIME_WINDOWED_COUNT 5 ///< Maximum number of counts that a time windowed count can count to /// Enumeration of time-windowed counts. typedef enum TimeWindowedCounts @@ -47,29 +47,34 @@ TIME_WINDOWED_COUNT_FPGA_CONDUCTIVITY_SENSOR_ERROR, ///< FPGA Conductivity sensor error TIME_WINDOWED_COUNT_FPGA_TEMPERATURE_SENSOR_ERROR, ///< FPGA Temperature sensor error #endif - NUM_OF_TIME_WINDOWED_COUNTS ///< Number of pressure sensors. + NUM_OF_TIME_WINDOWED_COUNTS ///< Number of pressure sensors } TIME_WINDOWED_COUNT_T; // ******* Critical Data Definitions ********* /// Critical data types list. typedef enum Critical_Data_Types { CRITICAL_DATA_TYPE_U32 = 0, ///< Critical data is unsigned 32-bit integer type + CRITICAL_DATA_TYPE_S32, ///< Critical data is signed 32-bit integer type CRITICAL_DATA_TYPE_F32, ///< Critical data is 32-bit floating point type - NUM_OF_CRITICAL_DATA_TYPES ///< Total number of critical data types. + NUM_OF_CRITICAL_DATA_TYPES ///< Total number of critical data types } CRITICAL_DATA_TYPES_T; /// Record structure for alarm data of any supported type. typedef union { - U32 uInt; ///< critical data of unsigned integer type. - F32 flt; ///< critical data of floating point type. + U32 uInt; ///< critical data of unsigned integer type + S32 sInt; ///< critical data of signed integer type + F32 sFlt; ///< critical data of floating point type } CRITICAL_DATAS_T; /// critical integer data structure. typedef struct { CRITICAL_DATA_TYPES_T typ; ///< Type of data + CRITICAL_DATAS_T minimum; ///< Minimum value for valid data + CRITICAL_DATAS_T maximum; ///< Maximum value for valid data + CRITICAL_DATAS_T defValue; ///< Default value CRITICAL_DATAS_T data; ///< Data value U32 comp; ///< One's compliment of value BOOL set; ///< Flag indicates data has been set @@ -82,8 +87,10 @@ void initTimeWindowedCount( TIME_WINDOWED_COUNT_T cnt, U32 maxCnt, U32 winMs ); BOOL incTimeWindowedCount( TIME_WINDOWED_COUNT_T cnt ); CRITICAL_DATAS_T getCriticalData( CRITICAL_DATA_T *data ); -void setCriticalData( CRITICAL_DATA_T *data, CRITICAL_DATAS_T value ); -void resetCriticalData( CRITICAL_DATA_T *data ); +BOOL setCriticalData( CRITICAL_DATA_T *data, CRITICAL_DATAS_T value ); +BOOL isCriticalDataInRange( CRITICAL_DATA_T *data ); +void resetCriticalData( CRITICAL_DATA_T *data ); +U32 hexStrToDec( U08 const * const valuePtr, U08 size ); /**@}*/