1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #pragma once
- #include "json.hpp"
- #include "HIKBase.h"
- #include "DecisionPlatform.h"
- #include "DataTime.h"
- #include <vector>
- #define NVR_SUC 0
- #define NVR_ERR_HIK 6
- #define NVR_ERR_CONNECT_7 7
- struct TimeRecord
- {
- DateTime TimeStart;
- DateTime TimeEnd;
- long long tmTimeStart;
- long long tmTimeEnd;
- // 目前是针对每天记录比对,所以只比对time即可。
- bool IsInRecord(DateTime time_in)
- {
- if (TimeStart < time_in && TimeEnd > time_in)
- {
- return true;
- }
- return false;
- }
- };
- class HIKNvr : public HIKBase
- {
- public:
- HIKNvr();
- //初始化 Nvr
- bool InitNvr(std::string ip, std::string port, std::string username, std::string password, int channel);
- //按月查询
- int CheckTimeRegionWithMonth(DateTime select_time, std::vector<int> &available_date_vec);
- //按日查询
- int CheckTimeRegionWithDay(DateTime select_time, std::vector<TimeRecord> &available_time_vec);
- //though input SelectTime get the time region
- bool GetTimeRegion(DateTime select_time,int value ,DateTime &time_start,DateTime &time_end);
- bool GetNvrUTCDiff();
- int nDiffTotalMin;
- public:
- // 将时间转换成json
- nlohmann::json TimeToJson(DateTime Time,std::vector<int> *pAvailableDateVec);
- nlohmann::json TimeToJsonInDay(DateTime Time,std::vector<TimeRecord> *pAvailableTimeVec);
- private:
- //record the time in the Nvr
- std::vector<TimeRecord> m_TimeRecords;
- //Nvr channel
- int m_Channel;
- };
|