LNHandle.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #pragma once
  2. #include <ProtocolHandler.h>
  3. #include <ODBC/DBConnectPool.h>
  4. #include <string>
  5. #include <vector>
  6. #include <deque>
  7. #include <map>
  8. #include "AlarmDefine.h"
  9. #include "LNContext.h"
  10. #include <jsonxx.h>
  11. #include "MonitorObject.h"
  12. #define ROW_ARRAY_SIZE 50
  13. #define MAX_HANDLE_THREAD_NUM 5
  14. class CTask
  15. {
  16. public:
  17. CTask(LPBYTE, int, SOCKADDR*, void*);
  18. void join();
  19. private:
  20. ~CTask();
  21. public:
  22. LPBYTE pdata;
  23. int nlen;
  24. SOCKADDR addr;
  25. };
  26. typedef struct tagResistance
  27. {
  28. char imei[50];
  29. //TIMESTAMP_STRUCT time;
  30. char time[24];
  31. uint8_t index;
  32. int data0;
  33. int data1;
  34. int data2;
  35. }RESISTANCE, *LPRESISTANCE;
  36. class CLNHandle
  37. :public CProtocolHandler
  38. {
  39. public:
  40. CLNHandle();
  41. virtual ~CLNHandle();
  42. virtual BOOL HandlePack(LPBYTE pPack, int nPackLen, SOCKADDR* psa, void* pClientContext = NULL) override;
  43. void SendAllClientSync();
  44. //发送实时订阅包
  45. void SendSubNotify(string momp);
  46. protected:
  47. //回复确认包
  48. BOOL HandleRecvPack(CLNContext* pContext, E_ZL_PROTOCAL protocal, uint32_t packno);
  49. void HandleMoSync(LPHJDATAHEAD2 lpHead, char* json, int json_len, CLNContext* pContext);
  50. void HandleMpSync(LPHJDATAHEAD2 lpHead, char* json, int json_len, CLNContext* pContext);
  51. BOOL HandleSvgSync(LPHJDATAHEAD2 lpHead, char* json, int json_len, CLNContext* pContext);
  52. BOOL HandleReferSync(LPHJDATAHEAD2 lpHead, char* json, int json_len, CLNContext* pContext);
  53. BOOL HandleResistData(LPHJDATAHEAD2 lpHead, char* json, int json_len, CLNContext* pContext);
  54. BOOL HandleTempHumiData(LPHJDATAHEAD2 lpHead, char* json, int json_len, CLNContext* pContext);
  55. BOOL HandleAlarmSetSync(LPHJDATAHEAD2 lpHead, char* json, int json_len, CLNContext* pContext);
  56. BOOL HandleMove(LPHJDATAHEAD2 lpHead, char* json, int json_len, CLNContext* pContext);
  57. BOOL HandleAlarmData(LPHJDATAHEAD2 lpHead, char* json, int json_len, CLNContext* pContext);
  58. protected:
  59. void CompareMoSync(jsonxx::Object obj, CMonitorObject *pObject);
  60. void CompareMpSync(jsonxx::Object obj);
  61. private:
  62. std::thread* pThread[MAX_HANDLE_THREAD_NUM];
  63. bool m_bWork;
  64. std::mutex m_mtx;
  65. std::map<ULONG, SOCKADDR_IN> m_mapUser;
  66. uint8_t *m_dl_sync = nullptr;
  67. int m_dl_len = 0;
  68. };