📄 sul.h
字号:
/******************************************************************************/
/******************************************************************************/
/* [begin] Phone Utility */
/******************************************************************************/
#define SUL_SIZEOFFORLOWSTRING 50 //define the string's size for getURLString function,这个也可以看作是URL的长度要求
#define SUL_SIZEOFPATTERN 0X07
#define SUL_MAXEMAILLENGTHBEFORESYMBOL 25
#define SUL_MAXEMAILLENGTHAFTERSYMBOL 25
#define SUL_PHONE_MAXWEBADDLENGTH 50
BOOL SRVAPI SUL_IsValidPhoneNumber(
TCHAR * PhoneNumber,
UINT8 nSize
);
UINT32 SRVAPI SUL_CompressPhoneString(
PCSTR pSrc,
UINT8 nSrcSize,
PSTR pDest,
UINT8 nDestSize
);
UINT32 SRVAPI SUL_UnCompressPhoneString(
PCSTR pSrc,
UINT8 nSrcSize,
PSTR pDest,
UINT8 nDestSize
);
UINT32 SRVAPI SUL_GetNumberString (
PCSTR pString,
UINT8 * pArray,
UINT8 nSize,
UINT8 nCount,
UINT8 nMode
);
UINT32 SRVAPI SUL_GetURLString (
PCSTR pString,
UINT8 * pArray,
UINT8 nSize,
UINT8 nCount,
UINT8 nMode
);
UINT32 SRVAPI SUL_GetEmaiString (
PCSTR pString,
UINT8 * pArray,
UINT8 nSize,
UINT8 nCount,
UINT8 nMode
);
BOOL SRVAPI SUL_IsValidWebAddr(
PCSTR pString,
UINT8 nSize);
BOOL SRVAPI SUL_IsValidEmailAddr(
PCSTR pString,
UINT8 nSize
);
#define IsValidWebAddr SUL_IsValidWebAddr
#define IsValidWebAddr SUL_IsValidWebAddr
#define IsValidPhoneNumber SUL_IsValidPhoneNumber
#define CompressPhoneString SUL_CompressPhoneString
#define UnCompressPhoneString SUL_UnCompressPhoneString
#define GetNumberString SUL_GetNumberString
#define GetURLString SUL_GetURLString
#define GetEmaiString SUL_GetEmaiString
/******************************************************************************/
/* [END] PHONE Utiltiy */
/******************************************************************************/
INT32 SRVAPI SUL_CharacterLen(
PCSTR pString, // The given SMS string.
UINT16 nSize //The size of the SMS string
);
INT32 SRVAPI SUL_Encode7Bit(
PCSTR pSrc, // The given SMS string.
PSTR pDest, // Output encode SMS string.
UINT16 nSrcSize // the given SMS sting size in bytes.
);
INT32 SRVAPI SUL_Decode7Bit(
PCSTR pSrc, // The given SMS string.
PSTR pDest, // Output Decode SMS string.
UINT16 nSrcSize // the given SMS sting size in bytes.
);
INT32 SRVAPI SUL_ASCII2GSM(
PCSTR pSrc, // The given ASCII string.
UINT16 nSrcSize, // the given string's length.
PSTR pDest // Output translation string.
);
INT32 SRVAPI SUL_GSM2ASCII(
PCSTR pSrc, // The given GSM string.
UINT16 nSrcSize, // the given string's length.
PSTR pDest // Output translation string.
);
INT32 SRVAPI SUL_LocallanguageToUCS2(
PCSTR pSrc, // The given local language string.
UINT16 nSrcSize, // the given string's length.
PSTR pDest // Output translation string.s
);
INT32 SRVAPI SUL_UCS2ToLocallanguage(
PCSTR pSrc, // The given local language string.
UINT16 nSrcSize, // the given string's length.
PSTR pDest // Output translation string.
);
PSTR SRVAPI SUL_CharLower(PSTR string);
PSTR SRVAPI CharLowerBuff(
PSTR string,
UINT32 Count
);
PSTR SRVAPI SUL_CharUpper(PSTR string);
PSTR SRVAPI SUL_CharUpperBuff(
PSTR string,
UINT32 Count
);
BOOL SRVAPI IsCharAlpha(
TCHAR ch
);
BOOL SRVAPI IsCharAlphaNumeric(
TCHAR ch
);
BOOL SRVAPI IsCharLower(
TCHAR ch
);
BOOL SRVAPI IsCharUpper(
TCHAR ch
);
PTCHAR SRVAPI SUL_CharPrev(
const TCHAR *lpszStart,
const TCHAR *lpszCurrent
);
PTCHAR SRVAPI SUL_CharNext(
const TCHAR * lpsz
);
INT32 SRVAPI SUL_CountChar(
const TCHAR * pStrStart
);
BOOL SRVAPI SUL_SeekCodeTable(HRES hdata,
INT32 src,
UINT8 srcByte,
UINT16 *pNum
);
BOOL SRVAPI SUL_EncodePDU(
UINT8 * pSmsContent,
INT8 * phoneNum,
UINT8 * pPackedSubmitMsg
);
#define GSM_7BIT 0
#define GSM_8BIT 4
#define GSM_UCS2 8
#define MAX_SMS_CONTENT 140
typedef struct _PSMS_PDU_INFO{
UINT8 pSCA[21];
UINT8 pTPA[21];
UINT8 TP_PID;
UINT8 TP_DCS;
UINT8 pTP_SCTS[16];
UINT8 TP_UD[161];
UINT8 index;
}SMS_PDU_INFO, *PSMS_PDU_INFO;
UINT16 SRVAPI SUL_DecodePdu(
CONST INT8 * pSrc,
PSMS_PDU_INFO pDst
);
UINT16 SRVAPI SUL_GSM2UCS2(
UINT8 * pSrc,
UINT8 *pDes,
UINT16 nLength);
UINT16 SRVAPI SUL_String2Bytes(
CONST UINT8 * pSrc,
UINT8 * pDst,
UINT16 nSrcLength
);
UINT16 SRVAPI SUL_SerializeNumbers(
INT8 * pSrc,
INT8 * pDst,
UINT16 nSrcLength
);
VOID SRVAPI SUL_SetLastError(
UINT32 nErrCode // error code
);
UINT32 SRVAPI SUL_GetLastError(VOID);
typedef struct _SCA_PARAM{
UINT8 nBCD[22];
UINT8 nLength;
UINT8 nType;
}SCA_PARAM;
//
//该函数会去掉最后的F
//0x08, 0x91, 0x68, 0x31 0x18 0x11 0x98 0x38 0xF6 --> '13811189836'
//
BOOL SRVAPI SUL_GetSCAStruct(
UINT8 nSCABcd[12],
SCA_PARAM *pParam
);
//
// GSMBCD码,如果转化奇数个数字的话,将会在对应高位补F
// 支持'*''#'''+'p'
// +13811189836 --> 0x0D, 0x31 0x18 0x11 0x98 0x38 0xF6
// 13811189836 --> 0x31 0x18 0x11 0x98 0x38 0xF6
//
UINT16 SRVAPI SUL_AsciiToGsmBcd(
INT8 * pNumber, // input
UINT8 nNumberLen,
UINT8 * pBCD // output (The size of this buffer should >= nNumberLen/2+1)
);
//
// 该函数会去掉最后的F,同时将A转化为‘*’将B转化为‘#’将C转化为‘p’
// 将D转化为"+"
// 0x31 0x18 0x11 0x98 0x38 0xF6 --> 13811189836
//
UINT16 SRVAPI SUL_GsmBcdToAscii (
UINT8 * pBcd, // input
UINT8 nBcdLen,
UINT8 * pNumber // output (The size of this buffer should >= nBcdLen*2)
);
#if !defined(ISODDNUM)
#define ISODDNUM(a) ((a & 0x01) ? (TRUE) : (FALSE))
#endif
#if !defined(ISEVENNUM)
#define ISEVENNUM(a) ((a & 0x01) ? (FALSE) : (TRUE))
#endif
//
//Change the user dial number(UDN) to stack dial number(SDN).
//The space's of SDN is alloted by the user,and the length of SDN is 2 bytes
//biger than the UDN length at least.
//Also the pUDN and pSDN can be pointed to the same pointer.
//
#if 0
UINT32 SUL_UserDialNum2StackDialNum(
CFW_DIALNUMBER *pNumber,
UINT8 * pSDN,
UINT8 * pSDNLen
);
#endif
// "+,001,138111" ---> "91,001,138111". // internal type
// "+,138111" ---> "91,138111". // national
// "138111" ---> "81,138111". // unknown type
// "86138111" ---> "81,86138111". // unknown type
#endif // _H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -