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

📄 smmapp.h

📁 基于dialogic语音卡的IVR系统源代码
💻 H
字号:
#ifndef _SMMAPP_H
#define _SMMAPP_H

/*SNMP操作错误信息 */
#define SNMP_NOERROR           1
#define SNMP_NOSUCHNAME        2
#define SNMP_READONLY          3
#define SNMP_GENERR            4

/*操作类型*/
#define SNMP_GET		    1 
#define SNMP_REPLY			2
#define SNMP_SET			3
#define SNMP_TRAP			4

/*函数返回错误信息*/
#define	SUCCESS			 0 /*成功*/
#define ERROR_DECODEMSG_MEM      1 /*解释帧内存分配错误*/
#define ERROR_DECODEMSG_FRAME	 2 /*帧格式错误*/
#define ERROR_SOCKET_CREATE	 3 /*创建socket错误*/
#define ERROR_SOCKET_CONNECT	 4 /*socket连接错误*/
#define ERROR_SOCKET_SEND	 5 /*socket发送错误*/
#define ERROR_TRAPHANDLE_NOTINIT 6 /*trap句柄未初始化*/
#define ERROR_TRAPHANDLE_MEM	 7 /*trap句柄内存分配错误*/
#define ERROR_TRAPHANDLE_NOMATCH 8
#define ERROR_WINSOCK_STARTUP    9/*Winsock启动错误*/
#define ERROR_THREAD_CREATE		 10 
#define ERROR_DECODEMSG_TYPE	 11
#define ERROR_SNMPPDU_TYPE		 12
#define ERROR_PROFILE_KEY		 13

/*数据类型*/
#define  SNMP_TYPE_INTEGER32	1
#define  SNMP_TYPE_STRING		2


/*Get数据结构 */
typedef   struct
{
	char*   pParamname;
	unsigned short  nInstance;
	unsigned char   bType;
}GETSTRUCT;

/*Set数据结构*/
typedef   struct
{
	char*          pParamName;
	unsigned short nInstance;
	unsigned char  bType;
	unsigned short nLen;
	unsigned char* szValue;
}SETSTRUCT;

/*Response数据结构*/
typedef struct{
	unsigned char  bRetCode;  //返回错误代码
	SETSTRUCT      info;
}REPLYSTRUCT;


/*Trap数据结构*/
typedef   struct
{
	char*    szEnterpriseOid;  //产生Trap消息的企业OID
	unsigned char     generic;  //RFC MIB-II规定的Trap的ID
	unsigned char     specific; //自定义的Trap的ID
	SETSTRUCT*        pInfo;
	unsigned short    nNum;  /*pInfo的个数,小于256*/
} TRAPSTRUCT;

/*SNMP数据帧结构 */
typedef   struct
{
	unsigned char bPacketType;
	union{
		GETSTRUCT get_packet;
		SETSTRUCT set_packet;
		REPLYSTRUCT reply_packet;
		TRAPSTRUCT  trap_packet;
	} packet_info;
}SNMPPACKET;


//读监控参数回调函数原型
//输入: char* pParamName - 监控参数名
//      unsigned short nInstance - 监控参数的事例号
//		unsigned char bType - 数据类型       
//输出: unsigned char* szValue - 值
//      unsigned short* pLen - 值长度
//返回值: SNMP操作错误信息
typedef unsigned short (*READPARAM) (char* pParamName, unsigned short nInstance,unsigned char bType,unsigned char* szValue,unsigned short* pLen);

//写字符串型监控参数回调函数原型
//输入: char* pParamName - 监控参数名
//      unsigned short nInstance - 监控参数的事例号
//		unsigned char bType - 数据类型       
//      unsigned char* szValue - 值
//      unsigned short* pLen - 值长度
//返回值: SNMP操作错误信息
typedef unsigned short (*WRITEPARAM) (char* pParamName/*监控参数名*/, unsigned short nInstance/*监控参数的事例号*/,unsigned char bType/*数据类型*/,unsigned char* szValue/*值*/,unsigned short nLen/*值长度*/);

/*--------------------------------------------------------------------*
*
*			函数声明
*
*----------------------------------------------------------------------*/

//DLL初始化,返回初始化成功或错误结果
//输入: READPARAM   pReadParamFunc: 读监控参数的回调函数指针
//      WRITEPARAM  pWriteParamFunc: 写监控参数的回调函数指针
//输出: 

//返回:SUCCESS - 调用成功
//		ERROR_THREAD_CREATE - 线程创建错误
unsigned short Init(READPARAM pReadParamFunc, WRITEPARAM pWriteParamFunc,char* szSection);

//DLL关闭
//返回:SUCCESS - 成功
//
//功能: 关闭子线程      
unsigned short Close();

/*子线程函数,从SNMP扩展代理接收消息并处理*/
 
DWORD WINAPI ReceiveMsg(LPVOID lpvParam);

/* 释放一个Trap句柄
输入:void* pTrapHandle: 要释放的内存地址
输出:
返回: SUCCESS - 成功
功能: 将InitTrap分配的内存释放*/
unsigned short  FreeTrapHandle(void* pTrapHandle);

/* 初始化一个Trap句柄
输入: char* szEnterpriseOid: Trap所属的企业Oid
	    unsigned char generic:  若产生的Trap消息为RFC MIB-II规定的,则在此变量设置相应数值,否则为0
      unsigend char specific: 若产生的Trap消息为企业自定义的Trap消息,则在此变量设置相应数值,否则为0
输出: void* pTrapHandle:  是一个TRAPSTRUCT类型的指针.
返回: Trap句柄,当NULL时表示函数执行错误
功能:
      根据输入参数分配内存并将指针返回*/
void*  InitTrapHandle( char* szEnterpriseOid,unsigned char generic,unsigned char specific);

/*写Trap消息
输入:
     void* pTrapHandle : Trap的句柄
     char* pParamName:   监控参数名,当Trap消息不与任何监控参数相关时,此参数设为NULL
     unsigned short nInstance: 监控参数事例
     unsigned char bType: 监控参数数据类型
     unsigned char* szValue: 监控参数的值,当Trap消息不与任何监控参数相关时,此参数设为NULL
	   unsigned short nLen : 值长度,当szValue为NULL时,此值为0
返回:ERROR_TRAPHANDLE_NOTINIT - 输入的Trap句柄未初始化
     ERROR_TRAPHANDLE_MEM - 内存分配错误*/
unsigned short  WriteTrap(void* pTrapHandle, char* pParamName, unsigned short nInstance/*监控参数的事例号*/,unsigned char bType/*数据类型*/,unsigned char* szValue/*值*/,unsigned short nLen/*值长度*/);

/* 发送Trap消息

返回:	   ERROR_TRAPHANDLE_SEND - 向SNMP扩展代理发送消息错误
         ERROR_TRAPHANDLE_NOTINIT - 输入的Trap句柄未初始化
			SUCCESS  */
unsigned short SendTrap(void* pTrapHandle);



//将32位无符号整型转换成字符串
//输入:  unsigned long nVal: 整型数据
//输出:  unsigned char* szStr: 转换后的字符串
//返回:  字符串长度
unsigned short UInt32ToStr(unsigned char* szStr, unsigned long nVal);


//将字符串转换为32位无符号整型
//输入:  unsigned char* szStr: 要转换的字符串
//返回:  unsigned long& nVal: 转换后的整数值
// 
unsigned long StrToUInt32(unsigned char* szStr);

#endif

⌨️ 快捷键说明

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