Index: Utilities.c =================================================================== diff -u -rcd1dbf44ebce97f61ad4a757d47449562ec366f0 -r4b3e011f99900660c9c9f23d3ea50a07cb61e64b --- Utilities.c (.../Utilities.c) (revision cd1dbf44ebce97f61ad4a757d47449562ec366f0) +++ Utilities.c (.../Utilities.c) (revision 4b3e011f99900660c9c9f23d3ea50a07cb61e64b) @@ -26,8 +26,12 @@ // ********** private definitions ********** -#define INITIAL_CRC16_VAL 0xFFFF ///< Seed for 16-bit CRC function -#define INITIAL_CRC08_VAL 0x00 ///< Seed for 8-bit CRC function +#define INITIAL_CRC16_VAL 0xFFFF ///< Seed for 16-bit CRC function +#define INITIAL_CRC08_VAL 0x00 ///< Seed for 8-bit CRC function + +#define ASCII_CODE_LETTER_A 0x41 ///< ASCII code in hex for letter A. +#define ASCII_CODE_NUMBER_ZERO 0x30 ///< ASCII code in hex for number zero. +#define ASCII_CODE_NUMBER_SEVEN 0x37 ///< ASCII code in hex for number seven. // ********** private data ********** @@ -371,5 +375,37 @@ data->comp = ~data->data.uInt; _enable_IRQ(); } + +/*********************************************************************//** + * @brief + * The hexStrToDec function convert hex string to decimal value. + * @details Inputs: none + * @details Outputs: none + * @param valuePtr pointer to hex string to convert + * @param size size of the hex string to convert + * @return converted value of hex string + *************************************************************************/ +U32 hexStrToDec( U08 const * const valuePtr, U08 size ) +{ + U08 ii; + U08 value; + U32 result = 0; + + for ( ii = 0; ii < size; ++ii ) + { + if ( valuePtr[ii] < ASCII_CODE_LETTER_A ) + { + value = ( valuePtr[ii] - ASCII_CODE_NUMBER_ZERO ); + result = ( result << 4 ) | value; + } + else + { + value = ( valuePtr[ii] - ASCII_CODE_NUMBER_SEVEN ); + result = ( result << 4 ) | value; + } + } + + return result; +} /**@}*/ Index: Utilities.h =================================================================== diff -u -r7ff7e715f7a15da5f4055b33e186d58cf96fe909 -r4b3e011f99900660c9c9f23d3ea50a07cb61e64b --- Utilities.h (.../Utilities.h) (revision 7ff7e715f7a15da5f4055b33e186d58cf96fe909) +++ Utilities.h (.../Utilities.h) (revision 4b3e011f99900660c9c9f23d3ea50a07cb61e64b) @@ -89,7 +89,8 @@ CRITICAL_DATAS_T getCriticalData( 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 ); +void resetCriticalData( CRITICAL_DATA_T *data ); +U32 hexStrToDec( U08 const * const valuePtr, U08 size ); /**@}*/