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

📄 sms.~h

📁 for cdma short message decode, can support ascii or unicode
💻 ~H
字号:
#ifndef SMS_H
#define SMS_H

 struct  TTimerDef
{
	unsigned int year;
	unsigned char month;
	unsigned char day;
	unsigned char hour;
	unsigned char minute;
	unsigned char second;
};  //时间戳

struct   SMSElementDef
{
	SMSElementDef(void):
        timerLen(0),
        OriAddrLen(0),
        DesAddrLen(0),
        callbackLen(0),
        dataLen(0)
	{}

        unsigned char timerLen;
	TTimerDef  timer;
        unsigned char OriAddrLen;
	unsigned char OriAddr[20];
        unsigned char DesAddrLen;
	unsigned char DestAddr[20];
        unsigned char callbackLen;
	unsigned char callbackNumber[15];
        unsigned char encodType;  // 0::Ascii  1::uincode
        unsigned char dataLen;
	char data[150];
};  //解析SMS后的输出

/*层3DBM消息头定义格式*/
struct L3_SMSHeaderDef
{
        char  msg_Number;   
	char  burst_Type;	//突发消息类型
	char  num_Msgs;		//
	char  num_Fields;
	//char  data[255];
};

/*层3 DBM 消息定义格式 */
struct  L3_SMSDef
{
        L3_SMSHeaderDef  smsHeader;
        char  l3_data[255];
};

//uincode 解码函数声明
int creat_code_table(char* FileName);
unsigned short unicode2qw_convert(unsigned short unicode_value);
unsigned short qw2unicode_convert(unsigned short qw_value);
void String_uni2qw_convert(void *ptr_unicode_string, unsigned char string_len);
void String_qw2Uni_convert(void *ptr_qw_string, int *str_uni_len);
void String_octet2ascii(char *ptr_string, int string_len);
void String_ascii2octet(char *ptr_string, int string_len);

#define  SMS_POINT_TO_POINT  0   //点到点的SMS
#define  SMS_BROADCAST		 1   //广播SMS
#define  SMS_ACK             2   //SMS确认


//突发消息类型定义 (参考"Administration of Parameter Value Assignments for Spread Spectrum Standards"--C.R1001)
#define UNKNOWN_BURST_TYPE					0
#define ASYNCHRONOUS_DATA_SERVICES			1
#define GROUP_3_FACSIMILE					2
#define SHORT_MESSAGE_SERVICES				3
#define OVER_THE_AIR_SERVICES_PROVISIONING	4
#define POSITION_DETERMINATION_SERVICES		5
#define SHORT_DATA_BURSTS					6
#define EXTENDED_BURST_TYPE_INTERNATIONAL	0x111110

//SMS parameter ID宏定义
#define Teleservice_Identifier	0
#define Service_Category		1
#define Originating_Address		2
#define Originating_Subaddress	3
#define Destination_Address		4
#define Destination_Subaddress	5
#define Bearer_Reply_Option		6
#define Cause_Codes				7
#define Bearer_Data				8

//源/目地址字段的NUMBER_TYPE 值定义

/*digit_mode=1 和number_mode=0时的取值*/
#define UNKNOWN_VALUE_1  0
#define INTERNATIONAL_NUMBER 1
#define NATIONAL_NUMBER 2
#define NETWORK_SPECIFIC_NUMBER 3
#define SUBSCRIBER_NUMBER  4
#define RESERVED     5
#define ABBREVIATED_NUMBER  6
#define RESERVED_FOR_EXTENSION 7

/*digit_mode 和number_mode 均为1时的取值*/
#define UNKNOWN_VALUE_2     0
#define INTERNET_PROTOCOL  1
#define INTERNET_EMAIL_ADDRESS 2

//DTMF 编码
/*
#define  0001  1
#define  0010  2
#define  0011  3
#define  0100  4
#define  0101  5
#define  0110  6
#define  0111  7
#define  1000  8
#define  1001  9
#define  1010  0
#define  1011  *
#define  1100  #
*/

//BearData域的子参数宏定义
#define MESSAGE_IDENTIFIER  0
#define USER_DATA  1
#define USER_RESPONSE_CODE 2
#define MESSAGE_CENTER_TIME_STAMP 3
#define CALLBACK_NUMBER  14
/*
Message Center Time Stamp ‘00000011’
Validity Period – Absolute ‘00000100’
Validity Period – Relative ‘00000101’
Deferred Delivery Time - Absolute ‘00000110’
Deferred Delivery Time - Relative ‘00000111’
Priority Indicator ‘00001000’
Privacy Indicator ‘00001001’
Reply Option ‘00001010’
Number of Messages ‘00001011’
Alert on Message Delivery ‘00001100’
Language Indicator ‘00001101’
Call-Back Number ‘00001110’
Message Display Mode ‘00001111’
Multiple Encoding User Data ‘00010000’
All other values are reserved.
*/

//msg_encoding宏定义
#define  SEVEN_BIT_ASCII   2
#define  UNICODE_ENCOD  4
/*
Octet, unspecified ‘00000’ 8
IS-91 Extended Protocol Message ‘00001’ (iv)
7-bit ASCII (ANSI X3.4) ‘00010’ 7
IA5 (Table 11 of ITU-T T.50) ‘00011’ 7
UNICODEi (ISO/IEC 10646-1:1993) ‘00100’ 16
Shift-JISii ‘00101’ 8 or 16
Korean (KS X 1001:1998)iii ‘00110’ 8 or 16
Latin/Hebrew (ISO 8859-8:1988) ‘00111’ 8
Latin (ISO 8859-1:1988) ‘01000’ 8
*/

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -