📄 datadef.h
字号:
BYTE cTimeOut; //超时时间间隔(以10秒为单位)
BYTE cCredibility_Transmit; //可靠性传输标志
BYTE cSaveForTramSmit; //存储转发标志
BYTE cProtocol_Type; //数据包协议类型
WORD wProtocol_Length; //数据包长度
STRUCT_SUBMIT_HEADER()
{
ZeroMemory(this,sizeof(STRUCT_SUBMIT_HEADER));
}
};
struct STRUCT_SUBMIT //TRP_SUBMIT
{
STRUCT_SUBMIT_HEADER sSubmitHeader; //应用向应用平台提交短消息包头
STRUCT_CMPP12_SUBMIT sCMPP12Submit; //CMPP12包包体
STRUCT_SUBMIT()
{
ZeroMemory(this,sizeof(STRUCT_SUBMIT));
}
};
//应用平台向应用回应接收信息
struct STRUCT_SUBMIT_RSP //TRP_SUBMIT_RSP
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
WORD dwAppID; //应用ID
DWORD dwPlat_MsgID; //应用平台的MsgID
STRUCT_SUBMIT_RSP()
{
ZeroMemory(this,sizeof(STRUCT_SUBMIT_RSP));
}
};
//应用接收SUBMIT_RSP或MSG_REPORT后的回应信息
struct STRUCT_RECV_CONFIRM //TRP_RECV_CONFIRM
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
BYTE cConfirm_Flag; //是收到SUBMIT_RSP还是MSG_REPORT的回应
STRUCT_RECV_CONFIRM()
{
ZeroMemory(this,sizeof(STRUCT_RECV_CONFIRM));
}
};
//通讯模块回应应用平台提交短信消息
typedef struct STRUCT_UNIDATA_ACK //TRP_UNIDATA_ACK
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
WORD wAppID; //应用ID
BYTE cTNO; //电信网络运营商
BYTE cChannel_Protocol; //通道协议类型
BYTE cService_ChannelID; //服务通道ID
char szService_Number[6]; //服务通道的特服号
BYTE cService_Plat; //服务平台ID
BYTE cRequest_Plat; //请求平台ID
STRUCT_MSGID sMsgID; //MsgID结构
STRUCT_UNIDATA_ACK()
{
ZeroMemory(this,sizeof(STRUCT_UNIDATA_ACK));
}
}STRUCT_UNIDATA_ACK,*PSTRUCT_UNIDATA_ACK;
//源应用向目的应用发送消息
struct STRUCT_TOAPP_IND //TRP_TOAPP_IND
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
WORD wSrc_AppID; //发送方的应用ID
WORD wDest_AppID; //接收方的应用ID
WORD wData_Coding; //数据编码方案0-英文 1-PDU编码 2-Unicode
WORD wMsg_Length; //信息长度
char Message[320]; //消息内容
STRUCT_TOAPP_IND()
{
ZeroMemory(this,sizeof(STRUCT_TOAPP_IND));
}
};
//目的应用回应源应用的消息
struct STRUCT_TOAPP_RSP //TRP_TOAPP_RSP
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
WORD wRsp_AppID; //回应方的应用ID
WORD wInd_AppID; //发送方的应用ID
STRUCT_TOAPP_RSP()
{
ZeroMemory(this,sizeof(STRUCT_TOAPP_RSP));
}
};
//平台向网关查询一条消息的状态
struct STRUCT_QUERY //TRP_QUERY
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
BYTE cService_Plat; //服务平台ID号
BYTE cRequest_Plat; //请求平台ID号
BYTE cTno; //电信运营商
BYTE cChannelID; //通道ID
char szAddress[21]; //电话号码21位定长
STRUCT_MSGID sMsgID; //MsgID结构
STRUCT_QUERY()
{
ZeroMemory(this,sizeof(STRUCT_QUERY));
}
};
//应用平台回应应用一条消息的状态
struct STRUCT_QUERY_RSP //TRP_QUERY_RSP
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
BYTE cService_Plat; //服务平台ID号
BYTE cRequest_Plat; //请求平台ID号
};
//连接测试消息
struct STRUCT_LINKTEST //TRP_LINKTEST
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
//此结构的消息体为空
};
//连接测试应答消息
struct STRUCT_LINKTEST_RSP //TRP_LINKTEST_RSP
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
//此结构的消息体为空
};
//断开请求消息
struct STRUCT_DISC //TRP_DISC
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
//此结构的消息体为空
};
//断开请求应答消息
struct STRUCT_DISC_RSP //TRP_DISC_RSP
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
//此结构的消息体为空
};
//应用平台向应用发送错误描述信息
struct STRUCT_ERROR_REPORT //TRP_ERROR_REPORT
{
STRUCT_TRP_MSG_HEADER sHeader; //消息头
WORD wAppID; //应用ID
char szError_Msg[40]; //错误描述信息
STRUCT_ERROR_REPORT()
{
ZeroMemory(this,sizeof(STRUCT_ERROR_REPORT));
}
};
////////////////////////////////////////////////////////////////////////////////////
//SMPP 数据结构定义
//SMPP 的主要结构,其他结构可以根据实际情况添加,一些比较简单的数据命令数据结构直接在代码中实现
//因为和CMPP协议不一样(非定长),所以其处理方法不一样
//SMPP 消息头结构
typedef struct tagMESSAGE_HEADER
{
DWORD command_length;
DWORD command_id;
DWORD command_status;
DWORD sequence_no;
}MESSAGE_HEADER;
//短消息提交,字符串为变长
typedef struct tagSTRUCT_SMPP_SUBMIT
{
MESSAGE_HEADER sHeader;
char szSerice_type[6];
unsigned char cSource_addr_ton;
unsigned char cSource_addr_npi;
char szSource_addr[21];
unsigned char cDest_addr_ton;
unsigned char cDest_addr_npi;
char szDest_addr[21];
unsigned char cEsm_class;
unsigned char cProtocol_id;
unsigned char cPriority_flag;
char szSchedule_delivery_time[21];
char szValidity_period[21];
unsigned char cRegistered_deliver_flag;
unsigned char cReplace_if_present_flag;
unsigned char cData_coding;
unsigned char csm_Default_msg_id;
unsigned char csm_Length;
char szShort_message[160];
}STRUCT_SMPP_SUBMIT;
//短消息下发
typedef STRUCT_SMPP_SUBMIT STRUCT_SMPP_DELIVER;
//查询短消息
typedef struct tagSTRUCT_SMPP_QUERY
{
MESSAGE_HEADER sHeader;
char szMsgID[9];//短消息ID
unsigned char cAddr_ton;//地址编码类型
unsigned char cAddr_npi;//地址编码方案
char szAddress[21];//地址
}STRUCT_SMPP_QUERY;
//查询短消息响应
typedef struct tagSTRUCT_SMPP_QUERY_RESP
{
MESSAGE_HEADER sHeader;
char szMsgID[9];//短消息ID
char szFinal_date[17];//短消息生命周期终止时间
unsigned char cMsg_status;//段消息当前的状态
unsigned char cGSM_code;//GSM错误码
}STRUCT_SMPP_QUERY_RESP;
#define SM_MESSAGE_HEAD_SIZE sizeof(MESSAGE_HEADER)
////////////////////////////////////////////////////////////////////////////////////
//其他结构定义
//系统模块提交的流水号的对应结构信息
typedef struct tagSTRUCT_SEQID_INFO
{
UINT nSource_SeqID; //从系统模块提交的消息流水号
UINT nDest_SeqID; //生成的消息流水号,此消息号能和Rep消息对应起来,用于发送到短信中心或网关
signed char cCount; //计数,用于计算已经等了第几个回应消息。如果五个回应消息均没有此消息的
signed char cState; //状态,为0表示数据无效,为1表示数据有效
}STRUCT_SEQID_INFO;
//内存共享的数据结构
typedef struct tagSTRUCT_MEMDATA_INFO
{
int memNo; //内存序号
UINT memLength; //内存长度
char memData[1024]; //内存体
}STRUCT_MEMDATA_INFO;
//内存文件标识
enum MEMFILEFLAG {SMTFLAG,SMOFLAG,OTSFLAG,SYSFLAG};
//enum MEMFILEFLAG {SMTFLAG,SMOFLAG,SYSFLAG};
//监控模块的命令结构
typedef struct tagSTRUCT_WATCHCOMMAN
{
BOOL bCommand1203;//控制上下行数据开关
BOOL bCommand1204;//控制上行数据开关 手机--》应用
BOOL bCommand1205;//控制上行数据开关
}STRUCT_WATCHCOMMAN;
//added by zuming yang on 2001-10-23
//通道属性
typedef struct tagSTRUCT_CHANNEL_INFO
{
char szChannelName[16]; //通道名称
char szPwd[16]; //密码
BYTE ChannelProtocol; //短信中心使用的协议
BYTE ChannelType; //通道类型(电信运营商)
int nSpFlag; //通道标志 0 非专业 1 MO专用
unsigned short nPacket; //MO专用包头 如果是MO专用通道,则为MO包头
}STRUCT_CHANNEL_INFO;
struct tagSTRUCT_PACKET_ITEM
{
char szPacket[3];
char szCommand[10];
};
typedef struct tagSTRUCT_PACKET_LIST
{
int Count;
tagSTRUCT_PACKET_ITEM packet[1024];
}STRUCT_PACKET_LIST;
typedef struct STRUCT_SEQNOTag
{
unsigned long srcseq; //原节点编号
unsigned long systime; //时间
unsigned long seq; //序号
}STRUCT_SEQNO;
//CMPP命令数据结构定义
//消息头
typedef struct SGIP_MSGHEADTag
{
unsigned long Total_Length; //4消息总长度
unsigned long Command_ID; //4命令或响应类型
STRUCT_SEQNO Sequence_ID; //12字节整型消息流水号
}SGIP_MSGHEAD;
typedef struct STRUCT_SGIP_CONNECTTag
{
SGIP_MSGHEAD sHeader; //数据包头
unsigned char longin_type;
char Source_Addr[16]; //ICP_ID;
char AuthenticatorICP[16];//ICP 认证码;
char Resverse[8]; //保留项
}STRUCT_SGIP_CONNECT;
typedef struct STRUCT_SGIP_TERMINALTag
{
SGIP_MSGHEAD sHeader; //数据包头
}STRUCT_SGIP_TERMINAL;
typedef struct DELIVERTag
{
SGIP_MSGHEAD sHeader;
char UserNumber[21];
char SPNumber[21];
char TP_pid;
char TP_udhi;
char MessageCoding;
long MessageLength;
char MessageContent[160];
char Reserve[8];
}DELIVER;
typedef struct SUBMITTag
{
SGIP_MSGHEAD sHeader; //数据包头
unsigned char SPNumber[21];
unsigned char ChargeNumber[21];
unsigned char UserCount;
unsigned char UserNumber[21];
unsigned char CorpId[5];
unsigned char ServiceType[10];
unsigned char FeeType;
unsigned char FeeValel[6];
unsigned char GivenValue[6];
unsigned char AgentFlag;
unsigned char MorelatetoMTflag;
unsigned char Priority;
unsigned char ExpireTime[16];
unsigned char ScheduleTime[16];
unsigned char ReportFlag;
unsigned char TP_pid;
unsigned char TP_udhi;
unsigned char MessageCoding;
unsigned char MessageType;
unsigned long MessageLength;
unsigned char MessageContent[160];
unsigned char Reserve[8];
}SUBMIT,*PSUBMIT;
struct STRUCT_SGIP_CONNECT_REP
{
SGIP_MSGHEAD sHeader; //数据包头
BYTE btResult;
char szReserve[8];
};
struct STRUCT_SGIP_SUBMIT_REP
{
SGIP_MSGHEAD sHeader; //数据包头
BYTE btResult;
char szReserve[8];
};
struct STRUCT_SGIP_DELIVERY_REP
{
SGIP_MSGHEAD sHeader; //数据包头
BYTE btResult;
char szReserve[8];
};
struct STRUCT_SGIP_REPORT_REP
{
SGIP_MSGHEAD sHeader; //数据包头
BYTE btResult;
char szReserve[8];
};
struct STRUCT_SGIP_REPORT
{
SGIP_MSGHEAD sHeader;
STRUCT_SEQNO sSeqNo;
unsigned char cReportType;
char szUserNumber[21];
unsigned char cState;
unsigned char cErrorCode;
char szReserve[8];
};
#endif//_DATA_DEF_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -