cc2530-projects/Zigbee无线通信/A板/CC2530_lib/utils/util.c
2021-10-04 22:26:10 +08:00

130 lines
3.4 KiB
C

//-------------------------------------------------------------------
// Filename: util.c
// Description: Utility library
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// INCLUDES
//-------------------------------------------------------------------
#include "hal_defs.h"
#include "util.h"
#include "hal_rf.h"
//-------------------------------------------------------------------
// GLOBAL FUNCTIONS
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// @fn utilChipIdToStr
// @brief Converts a chip ID to a text string.
// @param uint8 chipID
// @return none
//-------------------------------------------------------------------
const char *utilChipIdToStr(uint8 chipID)
{
const char *szId;
switch (chipID)
{
case HAL_RF_CHIP_ID_CC2420:
szId = "2420";
break;
case HAL_RF_CHIP_ID_CC2430:
szId = "2430";
break;
case HAL_RF_CHIP_ID_CC2431:
szId = "2431";
break;
case HAL_RF_CHIP_ID_CC2520:
szId = "2520";
break;
case HAL_RF_CHIP_ID_CC2530:
szId = "2530";
break;
case HAL_RF_CHIP_ID_CC2531:
szId = "2531";
break;
case HAL_RF_CHIP_ID_CC2510:
szId = "2510";
break;
case HAL_RF_CHIP_ID_CC2511:
szId = "2511";
break;
case HAL_RF_CHIP_ID_CC1110:
szId = "1110";
break;
case HAL_RF_CHIP_ID_CC1111:
szId = "1111";
break;
default:
szId = "----";
};
return szId;
}
//-------------------------------------------------------------------
// @fn convInt32ToText
// @brief Converts 32 bit int to text
// @param int32 value
// @return char* - pointer to text buffer which is a file scope allocated array
//-------------------------------------------------------------------
char *convInt32ToText(int32 value)
{
static char pValueToTextBuffer[12];
char *pLast;
char *pFirst;
char last;
uint8 negative;
pLast = pValueToTextBuffer;
// Record the sign of the value
negative = (value < 0);
value = ABS(value);
// Print the value in the reverse order
do
{
*(pLast++) = '0' + (uint8)(value % 10);
value /= 10;
}
while (value);
// Add the '-' when the number is negative, and terminate the string
if (negative)
{
*(pLast++) = '-';
}
*(pLast--) = 0x00;
// Now reverse the string
pFirst = pValueToTextBuffer;
while (pLast > pFirst)
{
last = *pLast;
*(pLast--) = *pFirst;
*(pFirst++) = last;
}
return pValueToTextBuffer;
}
//-------------------------------------------------------------------
// @fn utilReverseBuf
// @brief reverse buffer
// @param uint8 pBuf - pointer to buffer
// uint8 length - length of buffer
// @return void
//-------------------------------------------------------------------
void utilReverseBuf(uint8 *pBuf, uint8 length)
{
uint8 temp;
uint8 *pBufLast = (pBuf + length - 1);
while (pBufLast > pBuf)
{
temp = *pBuf;
*pBuf++ = *pBufLast;
*pBufLast-- = temp;
}
}