|
|
@@ -106,7 +106,7 @@ namespace DeviceCenter
|
|
|
{
|
|
|
if (device.status == DeviceStatus.CONNECTED && device.type == DeviceType.ACS)
|
|
|
{
|
|
|
- getEvent(((AcsDevice)device).userId, start, end);
|
|
|
+ ((AcsDevice)device).getEvent(start, end);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
@@ -484,104 +484,6 @@ namespace DeviceCenter
|
|
|
|
|
|
}
|
|
|
|
|
|
- private void getEvent(int userId, DateTime start, DateTime end)
|
|
|
- {
|
|
|
- CHCNetSDK.NET_DVR_ACS_EVENT_COND struCond = new CHCNetSDK.NET_DVR_ACS_EVENT_COND();
|
|
|
- struCond.Init();
|
|
|
- struCond.dwSize = (uint)Marshal.SizeOf(struCond);
|
|
|
-
|
|
|
- struCond.dwMajor = CHCNetSDK.MAJOR_EVENT;
|
|
|
-
|
|
|
- struCond.dwMinor = CHCNetSDK.MINOR_FACE_VERIFY_PASS;
|
|
|
-
|
|
|
- DateTime date = DateTime.Now.AddDays(-1);
|
|
|
- struCond.struStartTime.dwYear = start.Year;
|
|
|
- struCond.struStartTime.dwMonth = start.Month;
|
|
|
- struCond.struStartTime.dwDay = start.Day;
|
|
|
- struCond.struStartTime.dwHour = start.Hour;
|
|
|
- struCond.struStartTime.dwMinute = start.Minute;
|
|
|
- struCond.struStartTime.dwSecond = start.Second;
|
|
|
-
|
|
|
- struCond.struEndTime.dwYear = end.Year;
|
|
|
- struCond.struEndTime.dwMonth = end.Month;
|
|
|
- struCond.struEndTime.dwDay = end.Day;
|
|
|
- struCond.struEndTime.dwHour = end.Hour;
|
|
|
- struCond.struEndTime.dwMinute = end.Minute;
|
|
|
- struCond.struEndTime.dwSecond = end.Second;
|
|
|
-
|
|
|
- struCond.byPicEnable = 0;
|
|
|
- struCond.szMonitorID = "";
|
|
|
- struCond.wInductiveEventType = 65535;
|
|
|
-
|
|
|
- //if (!StrToByteArray(ref struCond.byCardNo, textBoxCardNo.Text))
|
|
|
- //{
|
|
|
- // return;
|
|
|
- //}
|
|
|
-
|
|
|
- //if (!StrToByteArray(ref struCond.byName, textBoxName.Text))
|
|
|
- //{
|
|
|
- // return;
|
|
|
- //}
|
|
|
- //struCond.dwBeginSerialNo = 0;
|
|
|
- //struCond.dwEndSerialNo = 0;
|
|
|
-
|
|
|
- uint dwSize = struCond.dwSize;
|
|
|
- IntPtr ptrCond = Marshal.AllocHGlobal((int)dwSize);
|
|
|
- Marshal.StructureToPtr(struCond, ptrCond, false);
|
|
|
- int m_lGetAcsEventHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(userId, CHCNetSDK.NET_DVR_GET_ACS_EVENT, ptrCond, (int)dwSize, null, IntPtr.Zero);
|
|
|
- if (-1 == m_lGetAcsEventHandle)
|
|
|
- {
|
|
|
- Marshal.FreeHGlobal(ptrCond);
|
|
|
- log.Error($"NET_DVR_StartRemoteConfig FAIL, ERROR CODE {CHCNetSDK.NET_DVR_GetLastError()}");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- Thread m_pDisplayListThread = new Thread(() =>
|
|
|
- {
|
|
|
- ProcessEvent(m_lGetAcsEventHandle);
|
|
|
- });
|
|
|
- m_pDisplayListThread.Start();
|
|
|
- Marshal.FreeHGlobal(ptrCond);
|
|
|
- }
|
|
|
-
|
|
|
- public void ProcessEvent(int m_lGetAcsEventHandle)
|
|
|
- {
|
|
|
- int dwStatus = 0;
|
|
|
- Boolean Flag = true;
|
|
|
- CHCNetSDK.NET_DVR_ACS_EVENT_CFG struCFG = new CHCNetSDK.NET_DVR_ACS_EVENT_CFG();
|
|
|
- struCFG.dwSize = (uint)Marshal.SizeOf(struCFG);
|
|
|
- int dwOutBuffSize = (int)struCFG.dwSize;
|
|
|
- struCFG.init();
|
|
|
- while (Flag)
|
|
|
- {
|
|
|
- dwStatus = CHCNetSDK.NET_DVR_GetNextRemoteConfig(m_lGetAcsEventHandle, ref struCFG, dwOutBuffSize);
|
|
|
- switch (dwStatus)
|
|
|
- {
|
|
|
- case CHCNetSDK.NET_SDK_GET_NEXT_STATUS_SUCCESS://成功读取到数据,处理完本次数据后需调用next
|
|
|
- ProcessAcsEvent(ref struCFG, ref Flag);
|
|
|
- break;
|
|
|
- case CHCNetSDK.NET_SDK_GET_NEXT_STATUS_NEED_WAIT:
|
|
|
- Thread.Sleep(200);
|
|
|
- break;
|
|
|
- case CHCNetSDK.NET_SDK_GET_NEXT_STATUS_FAILED:
|
|
|
- CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetAcsEventHandle);
|
|
|
- log.Error($"NET_SDK_GET_NEXT_STATUS_FAILED {CHCNetSDK.NET_DVR_GetLastError()}");
|
|
|
- Flag = false;
|
|
|
- break;
|
|
|
- case CHCNetSDK.NET_SDK_GET_NEXT_STATUS_FINISH:
|
|
|
- CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetAcsEventHandle);
|
|
|
- Flag = false;
|
|
|
- break;
|
|
|
- default:
|
|
|
- log.Info($"NET_SDK_GET_NEXT_STATUS_UNKOWN {CHCNetSDK.NET_DVR_GetLastError()}");
|
|
|
- Flag = false;
|
|
|
- CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetAcsEventHandle);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
private void ProcessAcsEvent(ref CHCNetSDK.NET_DVR_ACS_EVENT_CFG struCFG, ref bool flag)
|
|
|
{
|
|
|
int employNo = (int)struCFG.struAcsEventInfo.dwEmployeeNo;
|
|
|
@@ -599,7 +501,7 @@ namespace DeviceCenter
|
|
|
{
|
|
|
if (device.status == DeviceStatus.CONNECTED && device.type == DeviceType.ACS)
|
|
|
{
|
|
|
- getEvent(((AcsDevice)device).userId, dialog.start, dialog.end);
|
|
|
+ ((AcsDevice)device).getEvent(dialog.start, dialog.end);
|
|
|
}
|
|
|
}
|
|
|
}
|