📄 global.cpp
字号:
#include "Global.h"
extern PTSMS_INDEX ptCur_index,ptRcv_index;
UCHAR* mem_ccpy(INT8U *pt_strr, INT8U *str2,INT8U c,INT8U length)
{
INT8U i;
for(i = 0; i<length; i++, str2++)
{
if(!*str2 || *str2 == c)
break;
*pt_strr++ = *str2;
}
return pt_strr;
}
void Reverse_INT8U(INT8U *ptChar, INT8U length)
{
INT8U *pTemp = new INT8U[length+2];
INT8U *p1 = ptChar;
for(int i = 0; i<length; i++)
{
pTemp[length-i-1] = *p1++;
}
str_cpy(ptChar, pTemp, length);
delete pTemp;
}
INT16U INT8Upt_2_INT16U(INT8U *ptChar)
{
INT16U rslt = 0;
INT8U i;
INT8U *ptCharTmp;
ptCharTmp = ptChar;
for(i=0;i<2;i++,ptCharTmp++)
{
rslt = rslt<<8;
rslt = rslt + *ptCharTmp;
}
return(rslt);
}
void* str_cpy(UCHAR *str1,UCHAR *str2,UINT length)
{
UINT i;
void * pt_rtrn;
//watch_run();
pt_rtrn=(void *)str1;
for(i=0;i<length;i++)
{
*str1=*str2;
str1++;
str2++;
}
return(pt_rtrn);
}
void* str_chr(UCHAR *pt_strr,UCHAR m_sch)
{
UINT i;
//watch_run();
for(i=0;i<PACK_LENGTH;i++)
{
if((*pt_strr)==m_sch)
{
return(pt_strr);
}
else
{
pt_strr++;
}
}
return(pt_strr);
}
void* mem_chr(INT8U *pt_strr,INT8U m_sch,INT32U length)
{
INT32U i;
for(i=0;i<length;i++)
{
if((*pt_strr)==m_sch)
{
return(pt_strr);
}
else
{
pt_strr++;
}
}
return(NULL);
}
void INT16U_2_INT8Upt(INT8U *ptChar,INT16U mInt16u)
{
INT8U i;
INT8U *ptCharTmp;
ptCharTmp = ptChar;
ptCharTmp += 1;
for(i=0;i<2;i++,ptCharTmp--)
{
*ptCharTmp = mInt16u>>(8 * i);
}
}
void INT32U_2_INT8Upt(INT8U *ptChar,INT32U mInt16u)
{
INT8U i;
INT8U *ptCharTmp;
ptCharTmp = ptChar;
ptCharTmp += 3;
for(i=0;i<4;i++,ptCharTmp--)
{
*ptCharTmp = mInt16u>>(8 * i);
}
}
void SwapCRC(INT8U *ptUChar)
{
INT8U temp;
temp = *ptUChar;
*ptUChar = *(ptUChar + 1);
*(ptUChar + 1) = temp;;
}
void Swap_INT16U(INT16U *ptChar)
{
INT16U temp = *ptChar;
INT16U xx = temp>>8 | temp<<8;
*ptChar = xx;
}
UCHAR sms_length(PTCDMA_PACK pack_m)
{
UCHAR *pt_cnt1,*pt_cnt2;
static UCHAR m_count;
pt_cnt1=&pack_m->packed_data[0];
pt_cnt2=&pack_m->packed_data[1];
pt_cnt2 = (UCHAR *)str_chr(pt_cnt2,'!');
if(pt_cnt2!=NULL)
{
m_count=pt_cnt2-pt_cnt1+1;
return(m_count);
}
else
{
return(0);
}
}
INT16U Generate_Pack_Identity()
{
static INT16U StartNumber = 0x0001;
if(StartNumber == 0x7FFF)
StartNumber = 0x0001;
return StartNumber++;
}
void BuildObjectPack(INT16U ObjectId, int sizelen, INT8U *pStr)
{
*pStr++ = sizelen + 3;
INT16U_2_INT8Upt(pStr, ObjectId);
pStr += 2;
if(ObjectId == 0xA204)
memset(pStr, 0xFF, sizelen);
else
memset(pStr, 0x00, sizelen);
}
String INT8U_2_Str(INT8U *pStr, INT16U posLen)
{
String tt = "",str;
for(int i=0; i< posLen; i++)
{
str.sprintf("%02X", *pStr);
pStr++;
tt = tt + str;
}
return tt;
}
void INT16U_2_Str(INT16U *pStr, char *pResult)
{
INT8U buf[4];
char *p = pResult;
INT16U_2_INT8Upt(buf, *pStr);
for(int i=0; i < 2; i++)
{
sprintf(p, "%02X", buf[i]);
p += 2;
}
*(p-1) = 0;
}
void Str_2_INT8U(char *pStr, INT8U *ptUChar, int Count)
{
int i=0;
char buf[10];
while(i++<Count)
{
strncpy(buf, pStr, 2);
buf[2] = 0;
*ptUChar++ = strtol(buf, NULL, 16);
pStr += 2;
}
//*ptUChar = 0;
}
void HexToStrFloat(INT8U *pStr, String *fx)
{
Reverse_INT8U(pStr, 4);
float *value = (float*)pStr;
*fx = FormatFloat("#.####", *value);
if((*fx).IsEmpty())
*fx = "0";
}
void StrFloatToHex(String fx, INT8U *pStr)
{
float value = StrToFloat(fx);
INT32U i = *(INT32U*)&value;
INT32U_2_INT8Upt(pStr, i);
}
void FloatToHex(float fx, INT8U *pStr)
{
INT32U i = *(INT32U*)&fx;
INT32U_2_INT8Upt(pStr, i);
}
bool IsValidFloat(String fx)
{
char *p1 = fx.c_str();
while(*p1)
{
if(isdigit(*p1))
p1++;
else if(*p1=='.')
p1++;
else if(*p1 == '-')
p1++;
else
return false;
}
return true;
}
void stringtoINT8U(char *str, INT8U *szKey)
{
char tmpBuf[10], *p1 = str;
INT8U *p2 = szKey;
while(*p1!=0)
{
sprintf(tmpBuf, "%02X", *p1++);
*p2++ = strtol(tmpBuf, NULL, 16);
}
*p2 = 0;
}
INT8U SearchCode(INT16 pcode[100][5], INT16U utt)
{
INT8U i = 0;
while(pcode[i][0] != 0)
{
if(pcode[i][0] == utt)
return i;
i++;
}
return -1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -