wcomm_dll.h
上传用户:sdxhgc
上传日期:2013-09-14
资源大小:388k
文件大小:13k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #ifndef __COMM_NET_H
  2. #define __COMM_NET_H
  3. #ifndef DSCDLLAPI
  4. #define DSCDLLAPI  extern "C"
  5. #endif
  6. typedef long           int32; /* 32-bit signed integer */
  7. typedef unsigned int   uint; /* 16 or 32-bit unsigned integer */
  8. typedef unsigned long  uint32; /* 32-bit unsigned integer */
  9. typedef unsigned short uint16; /* 16-bit unsigned integer */
  10. typedef unsigned char  byte_t; /*  8-bit unsigned integer */
  11. typedef unsigned char  uint8; /* 8-bit unsigned integer */
  12. #define MAX_RECEIVE_BUF 1024  //the max data packet length that would be received
  13. #define MAX_SEND_BUF MAX_RECEIVE_BUF  //the max data packet length that would be sent
  14. #define DEFAULT_CLIENT_PORT 5001 //the default monitoring port on terminal
  15. #ifndef  HDCALL
  16. #define HDCALL WINAPI
  17. #endif
  18. /*
  19.  * user info interface
  20.  */
  21. typedef struct _USER_INFO{
  22. char       m_userid[12];    //DTU Identify number
  23. uint32     m_sin_addr;      //the ip address of DTU in Internet,maybe a gateway ip addr
  24. uint16     m_sin_port;      //the ip port of DTU in Internet
  25. uint32     m_local_addr;    //the ip address of DTU in local mobile net
  26. uint16     m_local_port;    //the local port of DTU in local mobile net
  27. char       m_logon_date[20];  //the date that the DTU logon 
  28. char    m_update_time[20]; //the last date that receive IP packet
  29. uint8    m_status; //DTU status, on line 1 : offline 0
  30. }user_info;
  31. /*
  32.  * user data record interface
  33.  * as param when call function do_read_proc()
  34.  * m_data_type: if 0 unknown type, 0x01 DTU logon;0x04 invalid command;
  35.  * 0x05 DTU receive data successfully;
  36.  * 0x0d setup parameters successfully;0x0b query parameters successfully;
  37.  * 0x06 disconnect ppp link successfully;0x07 stop send data to DSC successfully;
  38.  * 0x08 start to send data to DSC successfully;0x0A flush DTU data in cache successfully;
  39.  * 0x09 user data type
  40.  */
  41. typedef struct _USER_DATA_RECORD{
  42. char       m_userid[12]; //DTU Identify number
  43. char       m_recv_date[20]; //the date that receive data packet
  44. char       m_data_buf[MAX_RECEIVE_BUF]; //store data packet
  45. uint16     m_data_len; //the data length
  46. uint8      m_data_type; //data type
  47. }data_record;
  48. /*
  49.  * Get the user amount that could be supported 
  50.  * return uint
  51.  */
  52. DSCDLLAPI  uint HDCALL get_max_user_amount();
  53. /*
  54.  * Get the online user amount in user list
  55.  */
  56. DSCDLLAPI  uint HDCALL get_online_user_amount();
  57. /*
  58.  * Get the user info in user list, if exist 0,else -1
  59.  * @param userid:  [in] The user's identity number. 
  60.  * @param infoPtr: [out] A pointer to a buffer that receives the user info
  61.  */
  62. DSCDLLAPI  int HDCALL get_user_info(uint8 *userid,user_info *infoPtr);
  63. /*
  64.  * Get a user's info at one position 
  65.  * @param index:  [in] 0 ~ get_max_user_amount().
  66.  * @param infoPtr: [out] A pointer to a buffer that receives the user info
  67.  */
  68. DSCDLLAPI  int HDCALL get_user_at(uint index,user_info *infoPtr);
  69. /*
  70.  * Get Local Host Name
  71.  * @param namebuf: [out] A pointer to a buffer that receives the local host name
  72.  * @param len:  [in] The length of the buffer. 
  73.  * @param mess: [out] A pointer to a buffer that store error message
  74.  * return -1 error,0 successful
  75.  */
  76. DSCDLLAPI  int HDCALL get_server_name(char *namebuf,int len,char *mess);
  77. /*
  78.  * Start net service
  79.  * @param hWnd  A handle identifying the window that will receive a message when a network event occurs. 
  80.  * @param wMsg  The message to be received when a network event occurs. 
  81.  *     default value: const int WM_CLIENT_READCLOSE=WM_USER+105;
  82.  * @param nServerPort network monitor port,default 5002
  83.  * @param mess: [out] A pointer to a buffer that store error message
  84.  * A deprecated function,it was replaced by function start_net_service()
  85.  */
  86. DSCDLLAPI int HDCALL start_gprs_server(HWND hWnd,unsigned int wMsg,int nServerPort,char *mess);
  87. /*
  88.  * Stop net service
  89.  * @param mess: [out] A pointer to a buffer that store error message
  90.  * return -1 failed or nonexistent,0 successful
  91.  * A deprecated function,it was replaced by function stop_net_service()
  92.  */
  93. DSCDLLAPI int HDCALL stop_gprs_server(char *mess);
  94.  /*
  95.  * Process all data from DTU
  96.  * @param recdPtr:  [out] A pointer to a struct that store dtu data info
  97.  * @param mess: [out] A pointer to a buffer that store message
  98.  * @param reply:  [in] If true,the DSC will auto-reply the DTU when it receive data from DTU.
  99.  * when release your program,use false,when debug your program,use true
  100.  * return -1 failed,0 successful
  101.  */
  102. DSCDLLAPI int HDCALL do_read_proc(data_record *recdPtr,char *mess,BOOL reply);
  103. /*
  104.  * Send data to DTU
  105.  * @param userid:  [in] The user's identity number. 
  106.  * @param data: [in] The data that will be sent
  107.  * @param len:  [in] The length of the data. 
  108.  * @param mess: [out] A pointer to a buffer that store error message
  109.  * return -1 failed,0 successful
  110.  */
  111. DSCDLLAPI int HDCALL do_send_user_data(uint8* userid,uint8*data,uint len,char *mess);
  112. /*
  113.  * Close one DTU in current user list and send close command to DTU
  114.  * @param userid:  [in] The user's identity number. 
  115.  * @param mess: [out] A pointer to a buffer that store error message
  116.  * return -1 failed or nonexistent,0 successful
  117.  */
  118. DSCDLLAPI int HDCALL do_close_one_user(uint8* userid,char *mess);
  119. /*
  120.  * Close all DTU in current user list and send close command to DTU
  121.  * @param mess: [out] A pointer to a buffer that store error message
  122.  * return -1 failed or nonexistent,0 successful
  123.  */
  124. DSCDLLAPI int HDCALL do_close_all_user(char *mess);
  125. /*
  126.  * Close one DTU in current user list and send close command to DTU
  127.  * @param userid:  [in] The user's identity number. 
  128.  * @param mess: [out] A pointer to a buffer that store error message
  129.  * return -1 failed or nonexistent,0 successful
  130.  * A deprecated function
  131.  */
  132. DSCDLLAPI int HDCALL do_close_one_user2(uint8* userid,char *mess);
  133. /*
  134.  * Close all DTU in current user list and send close command to dtu
  135.  * @param mess: [out] A pointer to a buffer that store error message
  136.  * return -1 failed or nonexistent,0 successful
  137.  * A deprecated function
  138.  */
  139. DSCDLLAPI int HDCALL do_close_all_user2(char *mess);
  140. DSCDLLAPI int HDCALL DTUCallServer(data_record *,char *,int);
  141. DSCDLLAPI int HDCALL AddFilterIP(unsigned long ulIPAddr);
  142. DSCDLLAPI int HDCALL DelFilterIP(unsigned long ulIPAddr=0);
  143. DSCDLLAPI int HDCALL FindFilterIP(unsigned long ulIPAddr);
  144. DSCDLLAPI int HDCALL GetFilterIPCount(void);
  145. DSCDLLAPI unsigned long HDCALL GetCurrentIP(void);
  146. DSCDLLAPI unsigned long HDCALL GetIP(int iIndex);
  147. /*
  148.  * Set up IP that will be binded
  149.  * @param ulIPAddr: [in] IP address. network byte order
  150.  */
  151. DSCDLLAPI void  HDCALL SetCustomIP(unsigned long ulIPAddr);
  152. /*
  153.  * A deprecated function,it was replaced by function delete_all_user()
  154.  */
  155. DSCDLLAPI void HDCALL DeleteAllUser(void);
  156. /*
  157.  * when start server,u can call this function to add a user.
  158.  * A deprecated function,it was replaced by function add_one_user()
  159.  */
  160. DSCDLLAPI int HDCALL AddOneUser(user_info *pUserInfo);
  161. /*
  162.  *Add by SEA on Oct 28,2003
  163.  *Modified by SEA Oct 29,2003
  164.  *Setup work mode
  165.  *@param nWorkMode:  [in] The Mode of dll to work. 
  166.  *0-use blocking mode and uses thread to receive data
  167.  *1-use nonblocking mode,not need windows's handle and message
  168.  *2-use nonblocking mode,must transfer valid window's handle and message
  169.  *default value is 2 ,it is compatible with previous version
  170.  */
  171. DSCDLLAPI int  HDCALL SetWorkMode(int nWorkMode);
  172. ////////////////////////////////////////////////////////////////////////////////
  173. /*
  174.  * Parameters setting API
  175.  * 1.ClearParam()
  176.  * 2.SetParam(...)
  177.  * 3.do_update_param(...)
  178.  */
  179. /*
  180.  *Clear paramters' buffer
  181.  *Call this function before setting parameters
  182.  */
  183. DSCDLLAPI void  HDCALL ClearParam();
  184. /*
  185.  * Add parameter that would be updated.
  186.  * @param nParamType:  [in] parameter's type,see in param_types.h. 
  187.  * @param cpValue:  [in] parameter's value that would be updated. 
  188.  * @param nParamLenth:  [in] parameter's length. 
  189.  * @param errorCode: [out] error code that would be returned.
  190.  * return 1 successful, 0 failed
  191.  */
  192. DSCDLLAPI int  HDCALL SetParam(int nParamType, char *cpValue, int nParamLenth, int *errorCode);
  193. /*
  194.  * Update DTU parameters
  195.  * destIP: DTU's IP(host byte order)
  196.  * destPort: DTU's IP port(host byte order)
  197.  * return 1 successful, 0 failed
  198.  * A deprecated function,it was replaced by function do_update_param()
  199.  */
  200. DSCDLLAPI int  HDCALL DoUpdateParam(const unsigned long destIP,const unsigned short destPort, char *m_userid);
  201. /*
  202.  * Read DTU parameters
  203.  * return 1 successful, 0 failed
  204.  * A deprecated function,it was replaced by function do_read_param()
  205.  */
  206. DSCDLLAPI int  HDCALL DoReadParam(const unsigned long destIP,const unsigned short destPort, char *m_userid);
  207. /*
  208.  * Read a parameter
  209.  * @param nParamType:  [in] parameter's type,see in param_types.h. 
  210.  * @param cpValue:  [in] A pointer to a buffer that used to store parameter's value. 
  211.  * @param nParamLenth:  [in] cpValue's length [out] parameter's length. 
  212.  * return 1 successful, 0 failed
  213.  */
  214. DSCDLLAPI int  HDCALL GetParam(int nParamType, char *cpValue, int *nParamLenth);
  215. ////////////used to maintian user list//////////////////////////////////////////////////////////
  216. /*
  217.  *  服务启动后,调用add_one_user函数可向系统的用户表中
  218.  *  添加一个用户,这样可以省略掉DTU向中心登录的过程;
  219.  *  该情况适用于中心重启后,而DTU并没有立即登录,中心
  220.  *  为了保持和DTU之间的联系,用户可调用函数add_one_user
  221.  *  向用户列表中手工添加用户;
  222.  */
  223. /*
  224.  * When start server,u can call this function to add a user. 
  225.  * return -1 failed,0 successful
  226.  * This function used to replace function AddOneUser();
  227.  */
  228. DSCDLLAPI int HDCALL add_one_user(user_info * pUserInfo);
  229. /*
  230.  * It will delete all users in user list
  231.  * return -1 failed or nonexistent,0 successful
  232.  * This function used to replace function DeleteAllUser();
  233.  */
  234. DSCDLLAPI int HDCALL delete_all_user(void);
  235. /*
  236.  * Delete one user in user list
  237.  * Close one DTU in current user list but no really send close command to DTU
  238.  * return -1 failed or nonexistent,0 successful
  239.  */
  240. DSCDLLAPI int HDCALL delete_one_user(uint8* userid,char *mess);
  241. ////////////////////////////////////////////////////////////////////////////////
  242. /*
  243.  * Start net service
  244.  * @param hWnd  A handle identifying the window that will receive a message when a network event occurs. 
  245.  * @param wMsg  The message to be received when a network event occurs. 
  246.  *     default value: const int WM_CLIENT_READCLOSE=WM_USER+105;
  247.  * @param nServerPort network monitor port,default 5002
  248.  * @param mess: [out] A pointer to a buffer that store error message
  249.  *  This function used to replace function start_gprs_server();
  250.  */
  251. DSCDLLAPI int HDCALL start_net_service(HWND hWnd,unsigned int wMsg,int nServerPort,char *mess);
  252. /*
  253.  * Stop net service
  254.  * @param mess: [out] A pointer to a buffer that store error message
  255.  * return -1 failed or nonexistent,0 successful
  256.  *  This function used to replace function stop_gprs_server();
  257.  */
  258. DSCDLLAPI int HDCALL stop_net_service(char *mess);
  259. /*
  260.  * Update DTU parameters,the DTU always response it
  261.  * @param userid:  [in] The user's identity number. 
  262.  * @param mess: [out] A pointer to a buffer that store error message
  263.  * return -1 failed or nonexistent,0 successful
  264.  */
  265. DSCDLLAPI int HDCALL do_update_param(uint8* userid,char *mess);
  266. /*
  267.  * Read DTU parameters
  268.  * @param userid:  [in] The user's identity number. 
  269.  * @param qtype:  [in] The option that will be queried. 0x00 query all parameters
  270.  * @param mess: [out] A pointer to a buffer that store error message
  271.  * return -1 failed or nonexistent,0 successful
  272.  */
  273. DSCDLLAPI int HDCALL do_read_param(uint8* userid,uint8 qtype,char *mess);
  274. /*
  275.  * Added on Feb 28,2005
  276.  * Run on version 2.6.4 or later version
  277.  */
  278. /*
  279.  * Send command to remote DTU,the DTU always response it
  280.  * The DTU will disconnect ppp link and wait to redial(when setup reconnect interval)
  281.  * @param mess: [out] A pointer to a buffer that store error message
  282.  * return -1 failed or nonexistent,0 successful
  283.  */
  284. DSCDLLAPI int HDCALL do_disconnect_ppp_link(uint8* userid,char *mess);
  285. /*
  286.  * Send command to remote DTU,the DTU always response it
  287.  * The DTU will stop to send data to DSC
  288.  * @param mess: [out] A pointer to a buffer that store error message
  289.  * return -1 failed or nonexistent,0 successful
  290.  */
  291. DSCDLLAPI int HDCALL do_stop_send_data(uint8* userid,char *mess);
  292. /*
  293.  * Send command to remote DTU,the DTU always response it
  294.  * The DTU will start to send data to DSC
  295.  * @param mess: [out] A pointer to a buffer that store error message
  296.  * return -1 failed or nonexistent,0 successful
  297.  */
  298. DSCDLLAPI int HDCALL do_start_send_data(uint8* userid,char *mess);
  299. /*
  300.  * Send command to remote DTU,the DTU always response it
  301.  * The data in DTU cache will be discarded
  302.  * @param mess: [out] A pointer to a buffer that store error message
  303.  * return -1 failed or nonexistent,0 successful
  304.  */
  305. DSCDLLAPI int HDCALL do_flush_cache_data(uint8* userid,char *mess);
  306. /*
  307.  * Cancel block when call function do_read_proc.
  308.  * It can only be used after call function SetWorkMode(0)
  309.  */
  310. DSCDLLAPI void HDCALL cancel_read_block();
  311. ////////////////////////////////////////////////////////////////////////////////////////////////////
  312. #endif