@ -103,4 +103,29 @@ char *Rd_GetBuildTime(void)
snprintf(g_sBuildTime, sizeof(g_sBuildTime), "%s build [%s %s]", RD_VERSION, __DATE__, __TIME__);
#endif
return g_sBuildTime;
}
uint16_t Rd_modbusCRC16(char *data, uint8_t length)
{
uint16_t crc = 0xFFFF;
for (uint8_t i = 0; i < length; i++)
crc ^= (uint16_t)data[i];
for (uint8_t j = 0; j < 8; j++)
if ((crc & 0x0001) != 0)
crc >>= 1;
crc ^= 0xA001;
else
return crc;
@ -158,6 +158,7 @@ int Rd_Array2String(char *_pRes, int _iLen, char *_pSrc[], int _iNum, char *_Ptr
int Rd_FileExists(const char *_psPath);
int Rd_RegularFileExists(const char *_psPath);
char *Rd_GetBuildTime(void);
uint16_t Rd_modbusCRC16(char *data, uint8_t length);
#ifdef BUILD_LOG
extern void Rd_ElogEnableStrong(void);