91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

從網絡上知名代碼gsm修改而來, (http://www.cppblog.com/Lee7/archive/2008/01/15/41186.html) 標準c實現,優化資源消耗,vc6.0驗證過,可直接移植到嵌入式系統。

資源截圖

代碼片段和文件信息

#include?“stdio.h“
#include?
#include?“string.h“

typedef?unsigned?char INT8U;
typedef?signed?char INT8S;
typedef?unsigned?short?int INT16U;
typedef signed?short?int INT16S;
typedef?unsigned?int INT32U;
typedef?signed?int INT32S;

//用戶信息編碼方式
#define PDU_7BIT 0
#define PDU_8BIT 4
#define PDU_USC2 8

//短消息參數結構,編碼解碼共用
typedef struct?__sm_para__
{
INT8U u8SCA[16]; //短消息服務中心號碼
INT8U u8TPA[16]; //目標號碼,回復號碼
INT8U u8TP_PID; //用戶信息協議標識
INT8U u8TP_DCS; //用戶信息編碼方式
INT8U u8TP_SCTS[16]; //服務時間戳字符串
INT8U u8TP_UD[161]; //原始用戶信息,編碼前或解碼后
}SM_PARA?*PSM_PARA;


/*****************************************************************************************
功能:
字符轉整數

參數:
u8Data 字符

返回值:
轉換后的整數
******************************************************************************************/
INT8U?myatoi(?INT8U?u8Data?)
{

if?(?u8Data?>=?‘0‘?&&?u8Data?<=?‘9‘?)
{
return?(?u8Data?-?‘0‘?);
}
else?if?(?u8Data?>=?‘A‘?&&?u8Data?<=?‘F‘?)
{
return?(?u8Data?-?‘A‘?+?10?);
}
else?if?(?u8Data?>=?‘a‘?&&?u8Data?<=?‘f‘?)
{
return?(?u8Data?-?‘a‘?+?10?);
}
else
{
return?0;
}
}


/***************************************************************************************************************
功能:
可打印字符串轉換為字節數據??
如:“C8329BFD0E01“?-->?{0xC8?0x32?0x9B?0xFD?0x0E?0x01}?

參數:
pSrc 源字符串指針?
pDst 目標數據指針??
u32SrcLen 源字符串長度?

返回值:
目標數據長度??
****************************************************************************************************************/
INT32U?PDU_String2Bytes(INT8U*?pSrc?INT8U*?pDst?INT32U?u32SrcLen)
{
INT32U u32Ret?=?0;
INT32U n;

for?(?n=0;?n {
//輸出高4位
pDst[u32Ret]?=?myatoi(pSrc[n])?< pDst[u32Ret]?|=?myatoi(pSrc[n+1]);

n += 2;
u32Ret++;
}

return?u32Ret;
}

/***************************************************************************************************************
功能:
兩兩顛倒的字符串轉換為正常順序的字符串?
如:“683127226152F4“?-->?“8613722216254“

參數:
pSrc 源字符串指針?
pDst 目標數據指針??
u32SrcLen 源字符串長度?

返回值:
目標數據長度??
****************************************************************************************************************/
void?PDU_SerializeNumbers(?INT8U*?pSrc?INT8U*?pDst?INT8U?u8SrcLen?)
{
INT8U?n;

for?(?n=0;?n {
pDst[n]? =?pSrc[n+1];
pDst[n+1] =?pSrc[n];
}

if?(?pDst[n-1]?==?‘F‘?)
{
pDst[n-1]?=?0;
}
else
{
pDst[n]???=?0;
}
}



/***************************************************************************************************************
功能:
PDU??UCS2解碼

參數:
pSrc 源字符串指針?
pDst 目標數據指針??
u32SrcLen 源字符串長度?

返回值:
目標數據長度??
****************************************************************************************************************/
INT8U?PDU_UCS2_Decode(?INT8U*?pSrc?INT8U*?pDst?INT8U?u8SrcLen?)
{
INT8U n?=?0;
INT8U u8DestLen?=?0;
INT8U u8High?u8Low;

if?(?u8SrcLen?&?0x03?)
{

評論

共有 條評論