GPRSDLL.h
上传用户:zcy791212
上传日期:2013-03-06
资源大小:196k
文件大小:4k
源码类别:

Modem编程

开发平台:

Visual C++

  1. // gprsdll.h : main header file for the GPRSDLL DLL
  2. //
  3. #if !defined(AFX_GPRSDLL_H__BED4558D_76A5_4E59_8469_939BB4F52841__INCLUDED_)
  4. #define AFX_GPRSDLL_H__BED4558D_76A5_4E59_8469_939BB4F52841__INCLUDED_
  5. #if _MSC_VER > 1000
  6. #pragma once
  7. #endif // _MSC_VER > 1000
  8. #ifndef __AFXWIN_H__
  9. #error include 'stdafx.h' before including this file for PCH
  10. #endif
  11. #include "resource.h" // main symbols
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CGprsdllApp
  14. // See gprsdll.cpp for the implementation of this class
  15. //
  16. class CGprsdllApp : public CWinApp
  17. {
  18. public:
  19. CGprsdllApp();
  20. // Overrides
  21. // ClassWizard generated virtual function overrides
  22. //{{AFX_VIRTUAL(CGprsdllApp)
  23. //}}AFX_VIRTUAL
  24. //{{AFX_MSG(CGprsdllApp)
  25. // NOTE - the ClassWizard will add and remove member functions here.
  26. //    DO NOT EDIT what you see in these blocks of generated code !
  27. //}}AFX_MSG
  28. DECLARE_MESSAGE_MAP()
  29. };
  30. //数据结构:
  31. //1.用以区分标识各台Modem的数据结构:
  32. typedef UINT u32t;
  33. typedef UCHAR u8t;
  34. typedef USHORT u16t;
  35. typedef ULONG u64t; 
  36. typedef struct _modem_info_t_
  37. {
  38. u32t m_modemId;      //Modem模块的ID号
  39. u8t m_phoneno[12];   //Modem的11位电话号码,必须以''字符结尾
  40. u64t m_conn_time;    //Modem模块最后一次建立TCP连接的时间
  41. u64t m_refresh_time;    //Modem模块最后一次收发数据的时间
  42. } ModemInfoStruct;
  43. #define MAX_RECEIVE_BUF 1450
  44. typedef struct _modem_data_t {
  45.    u32t       m_modemId;       // Modem模块的ID号
  46.    u64t       m_recv_time; //接收到数据包的时间
  47.    u8t        m_data_buf[MAX_RECEIVE_BUF+1];//存储接收到的数据
  48.    u16t     m_data_len; //接收到的数据包长度
  49.    u8t      m_data_type;            //接收到的数据包类型,
  50. // 0x01:用户数据包 
  51. // 0 : 不认识类型
  52. }ModemDataStruct;
  53. //2.Api说明:
  54. extern "C" { 
  55. //1).
  56.  BOOL _stdcall DSStartService(u16t uiListenPort);
  57. //功能:启动服务器的数据服务
  58. //参数: u16ListenPort:服务的侦听端口
  59. //说明:启动服务器的数据服务。启动数据服务后,服务器侦听在指定端口。
  60. //如果失败了,可以调用DSGetLastError()函数查看错误原因。
  61. //2).
  62.  BOOL _stdcall DSStopService(void);
  63. //功能:停止服务器的数据服务
  64. //参数:无
  65. //说明:停止服务器的数据服务。所有的Modem都将下线。
  66. // 如果失败了,可以调用DSGetLastError()函数查看错误原因。
  67. //3).
  68.  BOOL _stdcall DSGetNextData(ModemDataStruct* pDataStruct,u16t waitseconds);
  69. //功能:读取下一条Modem送上来的信息
  70. //参数:pDataStruct: 存放Modem所送上来的信息和数据的结构,读函数执行成功后,返回的数据存放到该参数指向的结构中
  71. // waitseconds:本函数读到数据后立即返回;如果没有数据到达,则等待最长waitseconds(时间单位:秒)的时间,直到有数据到达,取值范围从0~65535,如果取值为0表明本函数将立即返回。
  72. //返回:如果返回为非零值,表明收到了一条Modem信息。如果返回为0,则表明没有收到数据。
  73. //4).
  74.  BOOL _stdcall DSSendData(u32t modemId,u16t len,u8t * buf);
  75. //功能:向指定ID号的的Modem发送数据
  76. //参数:modemId:modem的ID号,用以标识一个Modem
  77. // len:待发送的数据长度(字节数),数据长度必须小于或等于1450个字节
  78. // buf:待发送的数据
  79. //如果失败了,可以调用DSGetLastError()函数查看错误原因。
  80. //5).
  81.  u32t _stdcall DSGetModemCount(void);
  82. //功能:取得当前在线的所有的Modem的总数;
  83. // 6).
  84.  BOOL _stdcall DSGetModemByPosition(u32t pos, ModemInfoStruct *pModemInfo);
  85. // 功能:取得指定位置的Modem的数据;
  86. // 参数:pos:Modem列表中的位置信息,0代表第一个Modem位置;
  87. // pModemInfo:指向用以保存Modem信息的数据结构;
  88.  void _stdcall DSGetLastError(char *str,int nMaxBufSize);
  89. //功能:获得先前API执行时发生的错误;
  90. // 参数: str:用来存放错误信息的缓冲区;
  91. // nMaxStrSize:缓冲区的最大长度,如果错误信息的大小超过了这个值,则此函数将把错误信息的尾部截除。
  92. }
  93. /////////////////////////////////////////////////////////////////////////////
  94. //{{AFX_INSERT_LOCATION}}
  95. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  96. #endif // !defined(AFX_GPRSDLL_H__BED4558D_76A5_4E59_8469_939BB4F52841__INCLUDED_)