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

📄 mybase.h

📁 170话费查询系统
💻 H
📖 第 1 页 / 共 2 页
字号:
//////////////////////////////////////////////////////////////////////
//
//         			         TCB_SingleInput			        
//           				SingleInput线程控制块 	 			    
//
//////////////////////////////////////////////////////////////////////
typedef struct TCB_SingleInput_st{

     STATE				cur_st;					// 当前状态
     type_SGIPT_IO		io;						// IO参数
          
}TCB_SingleInput;



//////////////////////////////////////////////////////////////////////

//         			         TCB_MonthInput 
//           				MonthInput线程控制块 	 			    
//
//////////////////////////////////////////////////////////////////////
typedef struct TCB_monthInput_st{

     STATE		cur_st;					// 当前状态。
     
     int		month;					// 用户输入的有效月份
     int		error_input_times;		// 错误输入次数(包括无数据月,
										// 和错误的数字)               
     STATE 	    nst_valid;				// 用户输入有效时的下一步状态
     THREAD     nth_valid;				// 输入有效的下一线程
     
             
}TCB_monthInput;

//////////////////////////////////////////////////////////////////////
//
//         			         TCB_MultiPlay
//           				MultiPlay线程控制块 	 			    
//
//////////////////////////////////////////////////////////////////////
typedef struct TCB_MultiPlay_st{

     STATE					cur_st;		//线程状态      
	 int					cur_voice_chain;
	 int					voice_chain_get;  //返回的语音链状况
												//0		没有语音数据
												//1		取到一条语音
												//2		没有剩余语音数据(全部播报完毕 AllOver)
												//-1	取数据失败
     type_VoiceChainNode  	copy_vc[MaxVoiceChainNode];
     DX_IOTT  				iott[MaxVoiceChainNode*2]; 
	 DV_TPT 				play_tpt;
                     
}TCB_MultiPlay;

//////////////////////////////////////////////////////////////////////
//
//         			         TCB_TimeOut
//           				超时线程控制块 	 			    
//
//////////////////////////////////////////////////////////////////////
typedef struct TCB_TimeOut_st{

     STATE		cur_st;					//TimeOut当前状态。        
     CEvent		BeginWork;				//开始工作事件     
                                   
}TCB_TimeOut;


//////////////////////////////////////////////////////////////////////
//
//         			         TCB_Main
//           				主线程控制块 	 			    
//
//////////////////////////////////////////////////////////////////////
typedef struct TCB_Main_st{
	 
     STATE		cur_st;					// 当前状态
	 bool		play_sysbusy_over;
	 bool		query_data_ok;

	 char		UserOp[40];				// 用户操作状态

}TCB_Main;

//////////////////////////////////////////////////////////////////////
//
//        			       TimeTrigger_st
//           			     超时控制器
//
//////////////////////////////////////////////////////////////////////
typedef struct TimeTrigger_st{             

     int		TriggerID;				//计时器ID

	 CEvent		BeginCount;				//开始计时事件
	 bool       IsCounting;				//正在计时
	 int		msecond;				//计数器(毫秒)

	 STATE 	    st_timeout;				//超时后进入的状态
	 int		chn_timeout;			//超时事件触发的通道

	 EVT		event;					//时间条件满足后,触发的通道事件
	 //THREAD     th_timeout;   		//超时事件接受线程。
     
}TimeTrigger;

//////////////////////////////////////////////////////////////////////
//
//        			    Server Log Struct
//           			    日志块 	 			    
//
//////////////////////////////////////////////////////////////////////
typedef struct ServerLog_st{             

	bool			WriteLog;			// 是否可以写日志

	char			ani[20];			// 主叫号码
	char			start_time[64];		// 开始时间(包含日期和时间)
	char			end_time[64];		// 通话时长(以秒为单位)
	char			last_demand[64];	// 用户最后提交的请求
	char			result[64];			// 受理结果(用户超时、系统超时、受理成功)

}TServerLog;


//////////////////////////////////////////////////////////////////////
//
//        			    Channel_Control_Block
//           			    通道控制块 	 			    
//
//////////////////////////////////////////////////////////////////////
typedef struct CCB_st {

	bool			SeizedByThisApp;    // 通道是否被本程序占用

	int				no;					// 通道号
	int				voc;				// Voice端口handle		
	int				dti;				// DTI端口handle
	
	int             number;				// 得到的主叫号码位数
	char			voxname[20];		// Voice端口名
	char			dtiname[20];		// DTI端口名
	char			dnis[20];			// 被叫号码
	char			ani[20];			// 主叫号码
	

	long			evt_handle;			//通道事件句柄
	long			dev_handle;			//通道设备句柄
	int				wait_result;		//通道 sr_waitevtex()结果

	CEvent			startwork;			//线程启动事件

	DV_TPT			play_tpt[10];			// 播放终止参数表
	DV_TPT			dig_tpt[10];			// 读键终止参数表
	
	DX_IOTT			iott;				// 数据传输表
	DX_XPB			xpb;                // I/O transfer parameter block 
	DV_DIGIT		digp;			// 用户输入键
	
	char			keybuffer[32];			// 用户输入缓冲区
	int				keynumber;			// 总共读入键的个数
	char			lastkey;			// 最后一个读入的键
	
    THREAD			thread_id;			// 当前控制线程
    STATE			curr_st;
	
    TCB_Main		Main;				
    TCB_SingleInput	SingleInput;	
    TCB_monthInput	MonthInput;
    TCB_MultiPlay	MultiPlay;
    TCB_TimeOut		TimeOut;
	
	TimeTrigger		TimeTrigger;
	TServerLog		ServerLog;
          
}  type_CHANNEL;

//////////////////////////////////////////////////////////////////////
//
//						   程序线程指示块
//
//////////////////////////////////////////////////////////////////////
typedef struct SysThread_st{

            THREAD  id;					// 线程ID
            char    ThreadName[30];		// 线程名
			bool	thread_exist;		// 线程是否存在			
	        bool	keep_running;		// 是否继续运行
            CWinThread *  pThread;		// 线程指针
}type_SYSTHREAD;

//////////////////////////////////////////////////////////////////////
//
//        			     System_Info_Block
//           			    系统信息块 	 			    
//
//////////////////////////////////////////////////////////////////////
typedef struct System_Info_Block_st {

	int				ChannelNumber;		// 语音卡通道数
	int				VFITNumber;			// VFIT 数量
	char			voxpath[128];		// 语音文件位置
	int				VocNumber;			// 打开的语音文件数
	int				SysThreadNumber;	// 系统工作线程数

	int				QueryMonthStart;    // 查询开始月份
	int				QueryMonthEnd;		// 查询结束月份
	int				CurQfTable;			// 当前欠费表(1,2)

	CEvent			AllThreadClosed;	// 所有线程关闭事件

	char			RefuseCall[MaxRefuseCall][15];	//禁止呼入的主叫号码表,与GCA.RefuseCall对应
	QSSA			lQSSA[MaxQueryDemand];			//程序查询语法区(与共享文件中的QSSA对应)

	clock_t         start;
	clock_t         finish;
	double          duration;
	

} type_SYSINFO;



⌨️ 快捷键说明

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