DevInitDlg.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #ifndef DEVINITDLG_H
  2. #define DEVINITDLG_H
  3. #include <QDialog>
  4. #include <QStandardItemModel>
  5. #include "dhnetsdk.h"
  6. #define MAX_DEV_INFO_COUNT (1024*32)
  7. #ifndef NEW
  8. #define NEW new(std::nothrow)
  9. #endif
  10. namespace Ui {
  11. class CDevInitDlg;
  12. }
  13. typedef enum
  14. {
  15. LISTCOLUMN_STATUS = 0,
  16. LISTCOLUMN_IPVERSION,
  17. LISTCOLUMN_IPADDRESS,
  18. LISTCOLUMN_PORT,
  19. LISTCOLUMN_SUBNETMASK,
  20. LISTCOLUMN_GATEWAY,
  21. LISTCOLUMN_MACADDRESS,
  22. LISTCOLUMN_DEVTYPE,
  23. LISTCOLUMN_DETAILTYPE,
  24. LISTCOLUMN_HTTP,
  25. LISTCOLUMN_COUNT = 10
  26. }LISTVIEW_COLUMN;
  27. class CNetCardInfo;
  28. class CDevInitDlg : public QDialog
  29. {
  30. Q_OBJECT
  31. public:
  32. explicit CDevInitDlg(QWidget *parent = 0);
  33. ~CDevInitDlg();
  34. friend void CALLBACK cbSearchDevices(DEVICE_NET_INFO_EX *pDevNetInfo, void* pUserData);
  35. friend void CALLBACK cbSearchDevicesEx(LLONG lSearchHandle,DEVICE_NET_INFO_EX2 *pDevNetInfo, void* pUserData);
  36. //初始化
  37. void Init();
  38. //初始化设备搜索List列表
  39. void InitListView();
  40. //初始化SDK
  41. void InitNetSDK();
  42. //设备初始化状态
  43. BOOL GetInitStatus(BYTE initStatus);
  44. //指定IP搜索
  45. void StartSearchDeviceByIP(const QString& strStartIP, const QString& strEndIP);
  46. //IP格式检查
  47. BOOL CheckIP(const QString& strStartIP, const QString& strEndIP);
  48. //IP转换
  49. void IPtoStr(DWORD ip, char* buf, unsigned int nBufferSize);
  50. //获取密码重置方式
  51. void GetPwdRestWay(BYTE pwdRestWay);
  52. void StopSearchDevice();
  53. signals:
  54. void SearchDevices(DEVICE_NET_INFO_EX2* pData);
  55. void SearchDevicesByIP(const QString& strStartIP, const QString& strEndIP);
  56. private slots:
  57. void on_InitializeDevice_Button_clicked();
  58. void on_ByIPSearchButton_clicked();
  59. void on_Broadcast_Button_clicked();
  60. void OnSearchDevices(DEVICE_NET_INFO_EX2* pDevNetInfo);
  61. void OnSearchDevicesByIP(const QString& strStartIP, const QString& strEndIP);
  62. protected:
  63. virtual void keyPressEvent(QKeyEvent *);
  64. private:
  65. Ui::CDevInitDlg *ui;
  66. private:
  67. QStandardItemModel *m_Model;
  68. std::vector<DEVICE_NET_INFO_EX2*> m_DevNetInfo;
  69. int m_nDeviceCount; //当前vector中的元素的个数
  70. LLONG m_lpSearch; //是否在搜索
  71. DWORD m_dwStartIP; //起始IP
  72. DWORD m_dwEndIP; //结束IP
  73. int m_nSelected; //当前选中的第几个元素
  74. QString m_strPwdResetWay; //密码重置方式
  75. std::vector<LLONG> m_searchVecotr;
  76. CNetCardInfo* m_pNetCardInfo;
  77. };
  78. #endif // DEVINITDLG_H