⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.cpp

📁 符合移动协议的见空系统,很有使用简直,希望多下载
💻 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 + -