📄 constants.h
字号:
// Constants.h
#ifndef _SGIPSERVICE_CONSTANTS_H_
#define _SGIPSERVICE_CONSTANTS_H_
#include <afxtempl.h>
/////////////////////////////////////////////////////////////////////////////
//***************************************************************************
//some definitions
#define SMS_SP_EXPIRE_MAXTIME 24//(单位:小时)一条下发短消息的请求能够被SP APP处理的最大时间
#define SMS_WAIT_REPORT_MAXTIME 10//(单位:分钟)一条下发短消息在提交后等待report的最大时间
#define SMS_RESUBMIT_MAXCOUNT 3//THE MAX RESUBMIT COUNT WHEN SUBMIT FAIL OR TIMEOUT
//////////////////////////////////////////////////////
//for the parsephonenumstr function
#define PPNS_PHONESTR_OK 0
#define PPNS_PHONESTR_EMPTY -1
#define PPNS_PHONESTR_TOOLONG -2
#define PPNS_PHONESTR_FAIL -3
/////////////////////////////////////////////////////////////////////
//define some user message
#define WM_USER_PROCMESSAGE (WM_USER + 1)
#define WM_USER_REQUEST_MSG (WM_USER + 2)
#define WM_USER_SENDSM (WM_USER + 3)
#define WM_USER_MSMQERROREVENT (WM_USER + 4)
#define WM_UPDATE_DLGDATA (WM_USER + 5)
#define WM_USER_REINITSOCKET (WM_USER + 6)
//define increment service No.
#define IDISNO_AGENT_PLAT 1
#define STRISNO_AGENT_PLAT "1"
//define down cmd type
#define IDDCMDTYPE_DOWN_SMS 1
#define STRDCMDTYPE_DOWN_SMS "1"
//define charge type
#define IDCHARGETYPE_DESTPHONE 1
#define IDCHARGETYPE_SP 2
#define IDCHARGETYPE_THIRDPART 3
//define report type
#define IDREPORTTYPE_RETWHENERROR 0//RETURN REPORT WHEN ERROR HAPPEN(THIS TYPE NOT SURPORT NOW)
#define IDREPORTTYPE_RETWHENEVER 1//RETURN REPORT WHENEVER
#define IDREPORTTYPE_NORET 2//NO RETURN
//////////////////////////////////////////////////////////////////
//define the send back value(to increment service platform)
#define IDBACKVALUE_NOTSURPORT_PLAT -1//不受支持的增值服务平台
#define IDBACKVALUE_NOTSURPORT_CMD -2//不受支持的命令类型
#define STRBACKVALUE_NOTSURPORT_PLAT "-1"//不受支持的增值服务平台
#define STRBACKVALUE_NOTSURPORT_CMD "-2"//不受支持的命令类型
//define the send back value(to increment service platform)
//up cmd type
#define IDUPCMDTYPE_DOWNCMD_PROC_RESULT 1//DOWN CMD PROC RESULT
#define IDUPCMDTYPE_DELIVERDATA 2//THE DLIVER DATA
#define IDUPCMDTYPE_SPAPP_STATUS_REPORT 3//THE SP APP STATUS REPORT
//for the cmd type "DCMDTYPE_DOWN_SMS"(down sms)
#define IDBACKVALUE_DSMS_ACCPTED 1//THE SGIP APP HAVE ACCPTED THIS CMD
#define IDBACKVALUE_DSMS_FORTMATERROR 2//THE DOWN SMS CMD'S FORMAT IS NOT OK
#define IDBACKVALUE_DSMS_TIMEOUTREQ 3//已过时的请求,在接此请求时,通过对比请求时间与当前时间,//发现已超时(超过了SP APP定义的SMS_SP_EXPIRE_TIME....)
#define IDBACKVALUE_DSMS_SUBMITRESULT 4//
#define IDBACKVALUE_DSMS_REPORTRESULT 5
#define IDBACKVALUE_DSMS_SPERROR 6//SP ERROR,如命令在等待SUBMIT结果时连接中断
#define IDBACKVALUE_DSMS_SUBMITOK 1//
#define IDBACKVALUE_DSMS_SUBMITFAIL 2//
#define IDBACKVALUE_DSMS_SUBMITTIMEOUT 3//
#define IDBACKVALUE_DSMS_REPORTOK 1//
#define IDBACKVALUE_DSMS_REPORTWAITSEND 2//
#define IDBACKVALUE_DSMS_REPORTFAIL 3//
#define IDBACKVALUE_DSMS_REPORTTIMEOUT 4//
#define STRBACKVALUE_DSMS_ACCPTED "1"//THE SGIP APP HAVE ACCPTED THIS CMD
#define STRBACKVALUE_DSMS_FORTMATERROR "2"//THE DOWN SMS CMD'S FORMAT IS NOT OK
#define STRBACKVALUE_DSMS_TIMEOUTREQ "3"//在接此请求时,通过对比请求时间与当前时间,//发现已超时(超过了SP APP定义的SMS_SP_EXPIRE_TIME....)
#define STRBACKVALUE_DSMS_SUBMITRESULT "4"
#define STRBACKVALUE_DSMS_REPORTRESULT "5"
#define STRBACKVALUE_DSMS_SPERROR "6"//SP ERROR,如命令在等待SUBMIT结果时连接中断
#define STRBACKVALUE_DSMS_SUBMITOK "1"//
#define STRBACKVALUE_DSMS_SUBMITFAIL "2"//
#define STRBACKVALUE_DSMS_SUBMITTIMEOUT "3"//
#define STRBACKVALUE_DSMS_REPORTOK "1"//
#define STRBACKVALUE_DSMS_REPORTWAITSEND "2"//
#define STRBACKVALUE_DSMS_REPORTFAIL "3"//
#define STRBACKVALUE_DSMS_REPORTTIMEOUT "4"//
/////////////////////////////////////////////////////////////
// for the connection resource
#define CR_MAX_SERVER_WAITTIME 1//(分钟)服务器断开前的最大等待时间,
//当listen接口在onaccept时做该项检查
#define CR_MAX_CLIENT_NUM 20//THE MAX NUM OF THE CLIENT CONNECTION TO SGIP
#define CR_MAX_SERVER_NUM 20//THE MAX NUM OF THE SERVER SERVE FOR THE SGIP
#define CR_MAX_TIME_BETWEEN_SUB_RESP 30000//THE MAX TIME BETWEEN SUBMIT AND RESPON IS 30s
#define CR_MAX_CONNECTION_FREETIME 60000//THE MAX FREE TIME FOR ONE CONNECTION IS 60s( if larger,will close the connection)
#define CR_MAX_WAITRESPCMD_NUM 320//THE MAX NUM OF COMMAND WAITING RESPONSE(JUST IN ONE CONNECTION)
////////////////////////////////////////////////////////////////////
//for fee log
#define IDFEELOG_TYPE_SUBMIT 1//
#define IDFEELOG_TYPE_REPORT 2//
#define IDFEELOG_TYPE_DELIVER 3//
#define IDFEELOG_STATUS_SUBMITOK 1
#define IDFEELOG_STATUS_REPORTOK 0
#define IDFEELOG_STATUS_REPORTWAITSEND 1
#define IDFEELOG_STATUS_REPORTFAIL 2
////////////////////////////////////////////////////////////////////
// for some buffers
//等待SUBMIT RESP的最大数目:每连接最大等待数*最大连接数
#define BF_MAX_NUM_WAIT_SUBRESP CR_MAX_WAITRESPCMD_NUM*CR_MAX_CLIENT_NUM
//下行发送短消息指令缓冲区最大数值:
//由于要等待REPORT,而REPORT返回的时间是不确定的,
//所以该命令缓冲区就要开得大一些
#define BF_MAX_NUM_DOWNSMS_BUFFER 500*32*5//BF_MAX_NUM_WAIT_SUBRESP
#define BF_MAX_NUM_UP_DATA 200
#define BF_MAX_NUM_STATUS 500
//DOWN cmd proc status
#define DCP_STATUS_OTHERERROR -2// = -2 其他各种错误(如非连接正常关闭等)
#define DCP_STATUS_FREE -1// = -1 空闲
#define DCP_STATUS_WAITSEND 0// = 0 等待处理(发送)
#define DCP_STATUS_WAITRESULT 1// = 1 正在等待结果(以下列举的)
#define DCP_STATUS_SUBMITFAIL 2// = 2 提交失败(submit)
#define DCP_STATUS_SUBMITOK 3// = 3 提交成功
#define DCP_STATUS_SUBMITTIMEOUT 4// = 4 提交超时
#define DCP_STATUS_SENDFAIL 5// = 5 发送失败(report)
#define DCP_STATUS_SENDOK 6// = 6 发送成功
#define DCP_STATUS_SENDTIMEOUT 7// = 7 发送超时
//channel submit status
#define CSUB_STATUS_NOSUBMIT 0//0:not submit
#define CSUB_STATUS_SUBMITOK 1//1:submit ok
#define CSUB_STATUS_SUBMITFAIL -1//-1:submit fail
#define CSUB_STATUS_SUBMITTIMEOUT -2//-2:submit timeout(submit线程使用:好象都没什么用??)
#define CSUB_STATUS_CONCLOSE -3//-3:连接已被关闭??
#define CDEL_STATUS_NODELIVER 0//0:not deliver
#define CDEL_STATUS_DELIVEROK 1//1:deliver ok
#define CDEL_STATUS_DELIVERFAIL -1//-1:deliver fail
#define CDEL_STATUS_DELIVERTIMEOUT -2//-2:deliver timeout(deliver线程使用:好象都没什么用??)
#define CDEL_STATUS_CONCLOSE -3//-3:连接已被关闭??
///////////////////////////////////////////////////////////
//定义注册表信息
#define SUBKEY "Software\\JAMD3.0\\Sgip Service System version 1.5"
//数据源参数
const char RegKey_DSN[] = "DSN";
const char RegKey_ServerName[] = "DB Server Name";
const char RegKey_DatabaseName[] = "Database Name";
const char RegKey_UserName[] = "User Name";
const char RegKey_Password[] = "Password";
const char RegVal_DSN[] = "SgipJamd15";
const char RegVal_ServerName[] = "db_server01";
const char RegVal_DatabaseName[] = "SgipJamd15";
const char RegVal_UserName[] = "sa";
const char RegVal_Password[] = "";
//系统通讯队列参数
const char RegKey_PSCName[] = "PSC Name";
const char RegKey_SendQueue[] = "Send Queue";
const char RegKey_RecvQueue[] = "Receive Queue";
const char RegKey_ErrorQueue[] = "Error Queue";
const char RegVal_PSCName[] = "db_server01";
const char RegVal_SendQueue[] = "Qprocess";
const char RegVal_RecvQueue[] = "QRequest";
const char RegVal_ErrorQueue[] = "QRunState";
//连接深圳短信中心参数
const char RegKey_SGIPServerIP[] = "SGIP Server IP";
const char RegKey_SGIPServerPort[] = "SGIP Server Port";
const char RegKey_ListenPort[] = "Local Listen Port";
const char RegKey_LoginName[] = "Login Name";
const char RegKey_LoginPassword[] = "Login Password";
const char RegKey_SourceID[] = "SP Source ID";
const char RegKey_SPNumber[] = "SP Number";
const char RegKey_CorpID[] = "Corp ID";
const char RegKey_ChargeNumber[] = "Charge Number";
const char RegVal_SGIPServerIP[] = "211.96.96.211";
const char RegVal_SGIPServerPort[] = "8881";
const char RegVal_ListenPort[] = "8801";
const char RegVal_LoginName[] = "jingan";
const char RegVal_LoginPassword[] = "jingan";
const char RegVal_SourceID[] = "330012";
const char RegVal_SPNumber[] = "449";
const char RegVal_CorpID[] = "30012";
const char RegVal_ChargeNumber[] = "13005777777";
const char RegKey_AutoStart[] = "Auto Start";
const char RegVal_AutoStart[] = "0";
// Init values for the constants
#define VALUEAUTOSTART 0
//////////////////////////////////////////////////////////////////////
//for sgip
//SGIP Protocol command set
const int SGIP_bind = 0x00000001;
const int SGIP_bind_resp = 0x80000001;
const int SGIP_unbind = 0x00000002;
const int SGIP_unbind_resp = 0x80000002;
const int SGIP_submit_sm = 0x00000003;
const int SGIP_submit_sm_resp= 0x80000003;
const int SGIP_deliver_sm = 0x00000004;
const int SGIP_deliver_sm_resp= 0x80000004;
const int SGIP_report = 0x00000005;
const int SGIP_report_resp = 0x80000005;
const int SGIP_Trace = 0x00001000;
const int SGIP_Trace_resp = 0x80001000;
//SGIP Message coding
const BYTE MsgCode_ASCII = 0;
const BYTE MsgCode_WriteSIM = 3;
const BYTE MsgCode_Binary = 4;
const BYTE MsgCode_UCS2 = 8;
const BYTE MsgCode_GBK = 15;
//the followings are used by db operation
#define VALUEDBALLTHREAD 0//ALL THREAD
#define VALUEDBUSERINTERFACE 1//User Interface
#define VALUEDBGDCTHREAD 2//GET DOWN CMD Thread
#define VALUEDBMBTHREAD 3//MONITOR BUF THREAD
#define SUCCESS_OPEN_DB 1
#define TXT_SUCCESS_OPEN_DB "连接数据库成功"
#define ERR_OPEN_DB -1
#define TXT_ERR_OPEN_DB "打开数据库失败,系统将停止运行"
////////////////////////////////////////////////////////////////////
//*****************************************************************
//struct
typedef struct
{
unsigned long ulSourceID;
unsigned long ulTime;
unsigned long ulCycle;
} SequenceNo;
////////////////////////////////////////////////////////////////////
//the following structs define the sgip msg
//for init the interface
struct t_INIT_DEF
{
//local configs
int iLocalLisPort;
CString strLocalPwd;
CString strLocalUserName;
//server configs
//long iCorpID;
CString strServerIP;
CString strServerPwd;
int iServerLisPort;
CString strServerUserName;
//long lSourceID;
int iSPNumber;
////////////////////////
//CString strFeePhoneNo;
//callback function pointers
int (*OnSMSSubmit)(unsigned long ulTimeID,
unsigned long ulSgipSerial,
CString strSpNumber,
BYTE UserCount,
CString strUserNumber,
CString strCorpID,
CString strServiceType,
BYTE FeeType,
CString strFeeValue,
CString strGivenValue,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -