📄 datadef.h
字号:
////////////////////////////////////////////////////////////////////////////////////
//文件名: DataDef.h
//功能: 平台通信接口模块的数据类型定义
//创建人: 杨祖明
//创建时间:2001-9-11
//修改人: 杨祖明
//修改时间:2001-10-18
////////////////////////////////////////////////////////////////////////////////////
#ifndef _DATA_DEF_H_
#define _DATA_DEF_H_
///配置文件的信息SMSCINFO结构
struct STRUCT_APPLOGIN_INFO
{
char szAppName[16];
char szPassword[16];
WORD wAppID;
STRUCT_APPLOGIN_INFO()
{
ZeroMemory(this,sizeof(STRUCT_APPLOGIN_INFO));
}
};
//系统模块连接参数配置[CLIENTINFO]
struct STRUCT_SERVER_INFO
{
char szIP[50];//平台IP
short nPort; //平台开放的端口
STRUCT_SERVER_INFO()//构造函数
{
ZeroMemory(this,sizeof(STRUCT_SERVER_INFO));//把缓冲区都置为0
}
};
//应用属性
typedef struct tagSTRUCT_APP_INFO
{
char szAppName[16]; //应用名称
char szPwd[16]; //密码
WORD wAppID; //APP ID
char szService_ID[10]; //Service ID
unsigned short nPacket; //应用包头
}STRUCT_APP_INFO;
////////////////////////////////////////////////////////////////////////////////////////////
//CMPP命令数据结构定义
//CMPP协议版本号:CMPP1.2 (2001.06.12)
//消息头结构
struct STRUCT_CMPP12_MSG_HEADER
{
DWORD dwTotal_Length; //4消息总长度
DWORD dwCommand_ID; //4命令或响应类型
DWORD dwSequence_ID; //4消息流水号
STRUCT_CMPP12_MSG_HEADER()
{
ZeroMemory(this,sizeof(STRUCT_CMPP12_MSG_HEADER));
}
};
//短信提交数据包结构
struct STRUCT_CMPP12_SUBMIT
{
STRUCT_CMPP12_MSG_HEADER sHeader; //CMPP12包头
__int64 n64Msg_ID; //信息标识
BYTE cPk_total; //1相同Msg_ID的消息总数
BYTE cPk_number; //1相同Msg_ID的消息序号
BYTE cRegistered_Delivery; //1是否返回确认状态报告
BYTE cMsg_Level; //1消息优先级别
char szService_ID[10]; //业务类型
BYTE cFee_UserType; //计费用户类型
char szFee_terminal_ID[21]; //被计费用户号码
BYTE cTP_pid; //GSM协议类型,GSM3.40中的9.2.3.9
BYTE cTP_udhi; //GSM协议类型,GSM3.40中的9.2.3.23
BYTE cMsg_Fmt; //1消息格式
char szMsg_src[6]; //信息内容来源
char szFeeType[2]; //资费类别
char szFeeCode[6]; //资费代码
char szValid_Time[17]; //存活有效期
char szAt_Time[17]; //定时发送时间
char szSrc_terminal_id[21]; //源终端MSISDN号码
BYTE cDestUsr_tl; //1接受消息的用户数量(<100)
char szDest_terminal_ids[21]; //接受业务的MSISDN号码
//以下两个字段不是标准CMPP12协议,由森泰克平台小组共同协商更改
WORD wMsg_Length; //消息长度(<512个字节)
char szMsg_Content[512]; //消息内容
char szReserve[8]; //保留
STRUCT_CMPP12_SUBMIT()
{
ZeroMemory(this,sizeof(STRUCT_CMPP12_SUBMIT));
}
};
//提交短信回应消息包结构
struct STRUCT_CMPP12_SUBMIT_REP
{
STRUCT_CMPP12_MSG_HEADER sHeader; //12数据包头
__int64 Msg_ID; //8消息标识
unsigned char Result; //1结果
STRUCT_CMPP12_SUBMIT_REP()
{
ZeroMemory(this,sizeof(STRUCT_CMPP12_SUBMIT_REP));
}
};
//网关下发短消息数据包结构
struct STRUCT_CMPP12_DELIVERY
{
STRUCT_CMPP12_MSG_HEADER sHeader; //CMPP12包头
__int64 n64Msg_ID; //信息标识 8位
char szDestinationID[21]; //消息标识
char szService_ID[10]; //service id
BYTE cTP_Pid; //GSM协议类型,GSM3.40中的9.2.3.9
BYTE cTP_Udhi; //GSM协议类型,GSM3.40中的9.2.3.23
BYTE cMsg_Fmt; //1消息格式
char szSrc_terminalID[21]; //源终端MSISDN号码
BYTE cRegistered_Delivery; //1是否返回确认状态报告
//以下两个字段不是标准CMPP12协议,由森泰克平台小组共同协商更改
WORD wMsg_Length; //1消息长度
char Msg_Content[512]; //消息内容
char Reserve[8]; //保留
STRUCT_CMPP12_DELIVERY()
{
ZeroMemory(this,sizeof(STRUCT_CMPP12_DELIVERY));
}
};
//回应网管下发短消息结构
typedef struct STRUCT_CMPP12_DELIVER_REPTag
{
STRUCT_CMPP12_MSG_HEADER sHeader; //数据包头
__int64 Msg_ID; //8消息标识
unsigned char Result; //1结果 0:正确
}STRUCT_CMPP12_DELIVER_REP;
//连接数据包结构
struct STRUCT_CMPP12_CONNECT
{
STRUCT_CMPP12_MSG_HEADER sHeader; //数据包头
char Source_Addr[6]; //ICP_ID;
char AuthenticatorICP[16]; //ICP 认证码;
unsigned char Version; //双方协商的版本号
DWORD Timestamp; //时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒,10位,右对齐
STRUCT_CMPP12_CONNECT()
{
ZeroMemory(this,sizeof(STRUCT_CMPP12_CONNECT));
}
};
//连接回应数据包结构
struct STRUCT_CMPP12_CONNECT_REP
{
STRUCT_CMPP12_MSG_HEADER sHeader; //数据包头
unsigned char Status; //1字节Integer状态
char AuthenticatorISMG[16];//ISMG认证码
unsigned char Version; //服务器支持的最高版本号
STRUCT_CMPP12_CONNECT_REP()
{
ZeroMemory(this,sizeof(STRUCT_CMPP12_CONNECT_REP));
}
};
//短信查询消息结构
typedef struct STRUCT_CMPP12_QUERYTag
{
STRUCT_CMPP12_MSG_HEADER sHeader; //数据包头
char Time[8]; //时间(精确到日)
unsigned char Query_Type; //1查询类型
char Query_Code[10]; //查询码(业务类型)
char Reserve[8]; //保留
}STRUCT_CMPP12_QUERY;
//短信查询回应消息结构(短信查询结果)
typedef struct STRUCT_CMPP12_QUERY_REPTag
{
STRUCT_CMPP12_MSG_HEADER sHeader; //数据包头
char Time[8]; //时间(精确到日)
unsigned char Query_Type; //1查询类别 0:总数查询1:按业务代码查询
char Query_Code[10]; //查询码(业务类型)
unsigned long MT_TlMsg; //4从SP接收信息总数
unsigned long MT_Tlusr; //4从SP接收用户总数
unsigned long MT_Scs; //4成功转发数量
unsigned long MT_WT; //4待转发数量
unsigned long MT_FL; //4转发失败数量
unsigned long MO_Scs; //4向SP成功送达数量
unsigned long MO_WT; //4向SP待送达数量
unsigned long MO_FL; //4向SP失败送达数量
}STRUCT_CMPP12_QUERY_REP;
//CENTEK 平台内部通信协议 UNIDATA 消息数据结构
///////////////////////////////////////////////////////////////////////////////////
//森泰克平台数据包结构定义
///////////////////////////////////////////////////////////////////////////////////
//消息头
typedef struct STRUCT_CTKP_MSG_HEADER
{
DWORD dwTotalLen; //总长
DWORD dwCommandId; //命令ID
DWORD dwSeqNo; //消息流水号
DWORD dwStatus; //命令执行状态
STRUCT_CTKP_MSG_HEADER()
{
ZeroMemory(this,sizeof(STRUCT_CTKP_MSG_HEADER));
}
}STRUCT_CTKP_MSG_HEADER, *PSTRUCT_CTKP_MSG_HEADER;
//MSGID消息结构
struct STRUCT_MSGID
{
BYTE cMsgID_Type; //MsgID类型
BYTE cMsgID_Length; //MsgID长度
char szMsgID[64]; //MsgID内容
STRUCT_MSGID()
{
ZeroMemory(this,sizeof(STRUCT_MSGID));
}
};
//连接请求数据包
struct STRUCT_CONNECT //CTKP_CONNECT
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
WORD wAppID; //应用ID
char szAppName[16]; //应用名称
char szPassword[16]; //密码
DWORD dwVersion; //接口版本号
STRUCT_CONNECT()
{
ZeroMemory(this,sizeof(STRUCT_CONNECT));
}
};
//连接请求应答数据包
struct STRUCT_CONNECT_RSP //CTKP_CONNECT_RSP
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
//此结构的消息体为空
};
//手机上发数据包包头
typedef struct STRUCT_DELIVERY_HEADER
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
WORD wAppID; //应用ID
BYTE cReDelivery_Count; //重发计数
BYTE cTNO; //电信网络运营商
BYTE cChannel_Protocol; //通道协议类型
BYTE cService_ChannelID; //服务通道ID
char szService_Number[6]; //服务通道的特服号
BYTE cOriginate_Plat; //发起平台ID
BYTE cService_Plat; //服务平台ID
BYTE cProtocol_Type; //数据包协议类型
WORD wProtocol_Length; //数据包长度
STRUCT_DELIVERY_HEADER()
{
ZeroMemory(this,sizeof(STRUCT_DELIVERY_HEADER));
}
}STRUCT_DELIVERY_HEADER, *PSTRUCT_DELIVERY_HEADER;
//手机上发数据包
struct STRUCT_DELIVERY
{
STRUCT_DELIVERY_HEADER sDeliveryHeader; //手机上发数据包包头
STRUCT_CMPP12_DELIVERY sCMPP12Delivery; //CMPP12_DELIVERY包
STRUCT_DELIVERY()
{
ZeroMemory(this,sizeof(STRUCT_DELIVERY));
}
};
//应用平台向应用发送的状态报告
struct STRUCT_MSG_REPORT
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
WORD wAppID;
DWORD dwPlat_MsgID;
BYTE cTNO; //电信网络运营商
BYTE cChannel_Protocol; //通道协议类型
BYTE cService_ChannelID; //服务通道ID
char szService_Number[6]; //服务通道的特服号
BYTE cService_Plat; //服务平台ID
BYTE cRequest_Plat; //请求平台ID
STRUCT_MSG_REPORT()
{
ZeroMemory(this,sizeof(STRUCT_MSG_REPORT));
}
};
//应用向应用平台提交短消息包头
struct STRUCT_SUBMIT_HEADER
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
WORD wAppID; //应用ID
BYTE cReSubmit_Count; //重发计数
BYTE cTNO; //电信网络运营商
BYTE cChannel_Protocol; //通道协议类型
BYTE cService_ChannelID; //服务通道ID
char szService_Number[6]; //服务通道的特服号
BYTE cService_Plat; //服务平台ID
BYTE cRequest_Plat; //请求平台ID
BYTE cPriority_Flag; //优先级标志
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 //CTKP_SUBMIT
{
STRUCT_SUBMIT_HEADER sSubmitHeader; //应用向应用平台提交短消息包头
STRUCT_CMPP12_SUBMIT sCMPP12Submit; //CMPP12包包体
STRUCT_SUBMIT()
{
ZeroMemory(this,sizeof(STRUCT_SUBMIT));
}
};
//应用平台向应用回应接收信息
struct STRUCT_SUBMIT_RSP //CTKP_SUBMIT_RSP
{
STRUCT_CTKP_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 //CTKP_RECV_CONFIRM
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
WORD wAppID;
BYTE cConfirm_Flag; //是收到SUBMIT_RSP还是MSG_REPORT的回应
STRUCT_RECV_CONFIRM()
{
ZeroMemory(this,sizeof(STRUCT_RECV_CONFIRM));
}
};
//通讯模块回应应用平台提交短信消息
typedef struct STRUCT_UNIDATA_ACK //CTKP_UNIDATA_ACK
{
STRUCT_CTKP_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 //CTKP_TOAPP_IND
{
STRUCT_CTKP_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 //CTKP_TOAPP_RSP
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
WORD wRsp_AppID; //回应方的应用ID
WORD wInd_AppID; //发送方的应用ID
STRUCT_TOAPP_RSP()
{
ZeroMemory(this,sizeof(STRUCT_TOAPP_RSP));
}
};
//平台向网关查询一条消息的状态
struct STRUCT_QUERY //CTKP_QUERY
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
BYTE cService_Plat; //服务平台ID号
BYTE cRequest_Plat; //请求平台ID号
BYTE cTno; //电信运营商
BYTE cChannelID; //通道ID
STRUCT_MSGID sMsgID; //MsgID结构
STRUCT_QUERY()
{
ZeroMemory(this,sizeof(STRUCT_QUERY));
}
};
//应用平台回应应用一条消息的状态
struct STRUCT_QUERY_RSP //CTKP_QUERY_RSP
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
BYTE cService_Plat; //服务平台ID号
BYTE cRequest_Plat; //请求平台ID号
};
//连接测试消息
struct STRUCT_LINKTEST //CTKP_LINKTEST
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
//此结构的消息体为空
};
//连接测试应答消息
struct STRUCT_LINKTEST_RSP //CTKP_LINKTEST_RSP
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
//此结构的消息体为空
};
//断开请求消息
struct STRUCT_DISC //CTKP_DISC
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
//此结构的消息体为空
};
//断开请求应答消息
struct STRUCT_DISC_RSP //CTKP_DISC_RSP
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
//此结构的消息体为空
};
//应用平台向应用发送错误描述信息
struct STRUCT_ERROR_REPORT //CTKP_ERROR_REPORT
{
STRUCT_CTKP_MSG_HEADER sHeader; //消息头
WORD wAppID; //应用ID
char szError_Msg[40]; //错误描述信息
STRUCT_ERROR_REPORT()
{
ZeroMemory(this,sizeof(STRUCT_ERROR_REPORT));
}
};
struct STRUCT_SUBMIT_QUEUE
{
DWORD dwSeqID;
BYTE cTimeOut;
STRUCT_SUBMIT sSubmit;
STRUCT_SUBMIT_QUEUE()
{
ZeroMemory(this,sizeof(STRUCT_SUBMIT_QUEUE));
}
};
struct STRUCT_SUBMITRSP_QUEUE
{
DWORD dwPlatID;
BYTE cTimeOutLeave;
STRUCT_SUBMIT sSubmit;
STRUCT_SUBMITRSP_QUEUE()
{
ZeroMemory(this,sizeof(STRUCT_SUBMITRSP_QUEUE));
}
};
#endif//_DATA_DEF_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -