|
|
@@ -1,1759 +0,0 @@
|
|
|
-// DlgPlayMotion.cpp : implementation file
|
|
|
-//
|
|
|
-
|
|
|
-#include "stdafx.h"
|
|
|
-#include "clientdemo.h"
|
|
|
-#include "DlgPlayMotion.h"
|
|
|
-#include "DlgIPCSimpIntellCfg.h"
|
|
|
-#include "resource.h"
|
|
|
-
|
|
|
-#ifdef _DEBUG
|
|
|
-#define new DEBUG_NEW
|
|
|
-#undef THIS_FILE
|
|
|
-static char THIS_FILE[] = __FILE__;
|
|
|
-#endif
|
|
|
-int g_dwPrecision = 16;
|
|
|
-CDlgPlayMotion *g_PlayMotion = NULL;
|
|
|
-/////////////////////////////////////////////////////////////////////////////
|
|
|
-// CDlgPlayMotion dialog
|
|
|
-void CALLBACK DrawSearchMotionArea(LONG lRealHandle, HDC hDc, DWORD dwUser)
|
|
|
-{
|
|
|
- CDlgPlayMotion *lp = (CDlgPlayMotion *)g_PlayMotion;
|
|
|
-
|
|
|
- switch(lp->m_dwSearchType)
|
|
|
- {
|
|
|
- case 0:
|
|
|
-// {
|
|
|
-// CRect rect;
|
|
|
-// int i = 0,j = 0;
|
|
|
-// CPoint point;
|
|
|
-// for (i = 0;i<18;i++)
|
|
|
-// {
|
|
|
-// for (j = 0;j<22;j++)
|
|
|
-// {
|
|
|
-// if (g_PlayMotion->m_struSmartSearch.uSmartSearchCond.byMotionScope[i][j] == 1)
|
|
|
-// {
|
|
|
-// point.x = j*g_dwPrecision;
|
|
|
-// point.y = i*g_dwPrecision;
|
|
|
-// rect.left = point.x;
|
|
|
- // rect.top = point.y;
|
|
|
- // rect.right = point.x + g_dwPrecision;
|
|
|
- // rect.bottom = point.y + g_dwPrecision;
|
|
|
- // ::DrawEdge(hDc, &rect, BDR_SUNKENOUTER, BF_RECT);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
- // break;
|
|
|
- case 1:
|
|
|
- case 2:
|
|
|
- lp->F_DrawFun(lRealHandle, hDc, dwUser);
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- SetBkMode(hDc,TRANSPARENT);
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-DWORD GetMotionInfoThread(LPVOID pParam)
|
|
|
-{
|
|
|
- CDlgPlayMotion *pPlayMotion = (CDlgPlayMotion*)pParam;
|
|
|
-
|
|
|
-
|
|
|
- NET_DVR_SMART_SEARCH_RET struSmartSearchRet = {0};
|
|
|
- long nStatus = -1;
|
|
|
- char szLan[128] = {0};
|
|
|
-
|
|
|
- pPlayMotion->m_listMotionTime.DeleteAllItems();
|
|
|
- int nItemIndex = 0;
|
|
|
- while (1)
|
|
|
- {
|
|
|
- nStatus = NET_DVR_SearchNextInfo(pPlayMotion->m_lSearchHandle, &struSmartSearchRet);
|
|
|
- CString str = "";
|
|
|
-
|
|
|
- if (-1 == nStatus)
|
|
|
- {
|
|
|
- g_StringLanType(szLan, "查找失败", "Fail to search");
|
|
|
- str = szLan;
|
|
|
- g_PlayMotion->GetDlgItem(IDC_STATIC_MOTION_SEARCH_STATE)->SetWindowText(str);
|
|
|
- break;
|
|
|
- }
|
|
|
- else if (NET_DVR_FILE_SUCCESS == nStatus)
|
|
|
- {
|
|
|
- char chStartTime[128] = {0};
|
|
|
- char chStopTime[128] = {0};
|
|
|
- sprintf(chStartTime, "%04d%02d%02d%02d%02d%02d",struSmartSearchRet.struStartTime.dwYear,
|
|
|
- struSmartSearchRet.struStartTime.dwMonth, struSmartSearchRet.struStartTime.dwDay,
|
|
|
- struSmartSearchRet.struStartTime.dwHour, struSmartSearchRet.struStartTime.dwMinute,
|
|
|
- struSmartSearchRet.struStartTime.dwSecond);
|
|
|
- sprintf(chStopTime, "%04d%02d%02d%02d%02d%02d", struSmartSearchRet.struEndTime.dwYear, struSmartSearchRet.struEndTime.dwMonth,
|
|
|
- struSmartSearchRet.struEndTime.dwDay, struSmartSearchRet.struEndTime.dwHour, struSmartSearchRet.struEndTime.dwMinute,
|
|
|
- struSmartSearchRet.struEndTime.dwSecond);
|
|
|
-
|
|
|
- char chCount[256]= {0};
|
|
|
- sprintf(chCount, "%d", nItemIndex+1);
|
|
|
- pPlayMotion->m_listMotionTime.InsertItem(nItemIndex, chCount, 0);
|
|
|
- pPlayMotion->m_listMotionTime.SetItemText(nItemIndex, 1,chStartTime);
|
|
|
- pPlayMotion->m_listMotionTime.SetItemText(nItemIndex, 2, chStopTime );
|
|
|
- TRACE("StartTime:Y[%d]M[%d]D[%d]H[%d]M[%d]S[%d] EndTime:Y[%d]M[%d]D[%d]H[%d]M[%d]S[%d]\n",
|
|
|
- struSmartSearchRet.struStartTime.dwYear, struSmartSearchRet.struStartTime.dwMonth, struSmartSearchRet.struStartTime.dwDay,
|
|
|
- struSmartSearchRet.struStartTime.dwHour, struSmartSearchRet.struStartTime.dwMinute, struSmartSearchRet.struStartTime.dwSecond,
|
|
|
- struSmartSearchRet.struEndTime.dwYear, struSmartSearchRet.struEndTime.dwMonth, struSmartSearchRet.struEndTime.dwDay,
|
|
|
- struSmartSearchRet.struEndTime.dwHour, struSmartSearchRet.struEndTime.dwMinute, struSmartSearchRet.struEndTime.dwSecond
|
|
|
- );
|
|
|
- g_StringLanType(szLan, "获取到文件信息", "Access to file information");
|
|
|
- str = szLan;
|
|
|
- nItemIndex++;
|
|
|
- }
|
|
|
- else if (NET_DVR_ISFINDING == nStatus)
|
|
|
- {
|
|
|
- g_StringLanType(szLan, "正在查找", "searching");
|
|
|
- str = szLan;
|
|
|
- }
|
|
|
- else if (NET_DVR_NOMOREFILE == nStatus)
|
|
|
- {
|
|
|
- g_StringLanType(szLan, "查找时没有更多文件", "search end");
|
|
|
- str = szLan;
|
|
|
- g_PlayMotion->GetDlgItem(IDC_STATIC_MOTION_SEARCH_STATE)->SetWindowText(str);
|
|
|
- AfxMessageBox(szLan);
|
|
|
- break;
|
|
|
- }
|
|
|
- else if (NET_DVR_FILE_EXCEPTION == nStatus)
|
|
|
- {
|
|
|
- g_StringLanType(szLan, "查找文件时异常", "search exception");
|
|
|
- str = szLan;
|
|
|
- g_PlayMotion->GetDlgItem(IDC_STATIC_MOTION_SEARCH_STATE)->SetWindowText(str);
|
|
|
- break;
|
|
|
- }
|
|
|
- else if (NET_DVR_FILE_NOFIND == nStatus)
|
|
|
- {
|
|
|
- g_StringLanType(szLan, "没有查找到文件", "search nothing");
|
|
|
- str = szLan;
|
|
|
- AfxMessageBox(szLan);
|
|
|
- g_PlayMotion->GetDlgItem(IDC_STATIC_MOTION_SEARCH_STATE)->SetWindowText(str);
|
|
|
- break;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- g_StringLanType(szLan, "查找错误", "search error");
|
|
|
- str = szLan;
|
|
|
- g_PlayMotion->GetDlgItem(IDC_STATIC_MOTION_SEARCH_STATE)->SetWindowText(str);
|
|
|
- break;
|
|
|
- }
|
|
|
- g_PlayMotion->GetDlgItem(IDC_STATIC_MOTION_SEARCH_STATE)->SetWindowText(str);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if (!NET_DVR_StopSearch(pPlayMotion->m_lSearchHandle))
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- return 1;
|
|
|
-}
|
|
|
-
|
|
|
-CDlgPlayMotion::CDlgPlayMotion(CWnd* pParent /*=NULL*/)
|
|
|
- : CDialog(CDlgPlayMotion::IDD, pParent)
|
|
|
- , m_csStreamID(_T(""))
|
|
|
-{
|
|
|
- //{{AFX_DATA_INIT(CDlgPlayMotion)
|
|
|
- m_ctDateStart = 0;
|
|
|
- m_ctDateStop = 0;
|
|
|
- m_ctTimeStart = 0;
|
|
|
- m_ctTimeStop = 0;
|
|
|
- m_iTime = 0;
|
|
|
- m_dwIntrusionDuration = 0;
|
|
|
- m_dwIntrusionRate = 0;
|
|
|
- m_dwIntrusionSensitivity = 0;
|
|
|
- m_dwTravesePlaneSensitivity = 0;
|
|
|
- m_dwTraversePlanePreTime = 0;
|
|
|
- m_dwTraversePlaneDelayTime = 0;
|
|
|
- m_dwIntrusionPreTime = 0;
|
|
|
- m_dwIntrusionDelayTime = 0;
|
|
|
- m_fPanPos = 0.0f;
|
|
|
- m_fTitlePos = 0.0f;
|
|
|
- m_fZoomPos = 0.0f;
|
|
|
- //}}AFX_DATA_INIT
|
|
|
- m_hFindThread = NULL;
|
|
|
- m_lServerID = -1;
|
|
|
- m_lChannel = -1;
|
|
|
- m_iDevIndex = -1;
|
|
|
- memset(&m_struSmartSearchV40, 0, sizeof(m_struSmartSearchV40));
|
|
|
- m_lSearchHandle = -1;
|
|
|
- m_lRealPlayHandle = -1;
|
|
|
- m_lPlayBackHandle = -1;
|
|
|
- m_iDrawingIndex = -1;
|
|
|
- memset(m_bMouseMove, 0, sizeof(m_bMouseMove));
|
|
|
- memset(m_struRect, 0, sizeof(m_struRect));
|
|
|
- memset(m_bDrawed, 0, sizeof(m_bDrawed));
|
|
|
- memset(&m_struStartTime, 0, sizeof(m_struStartTime)) ;
|
|
|
- memset(&m_struStopTime, 0, sizeof(m_struStopTime));
|
|
|
- m_iItemSel = -1;
|
|
|
- m_dwSearchType = 0;
|
|
|
- m_iFieldNo = 0 ;
|
|
|
- m_iLineNo = 0;
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-void CDlgPlayMotion::DoDataExchange(CDataExchange* pDX)
|
|
|
-{
|
|
|
- CDialog::DoDataExchange(pDX);
|
|
|
- //{{AFX_DATA_MAP(CDlgPlayMotion)
|
|
|
- DDX_Control(pDX, IDC_COMBO_SEX, m_cmbSex);
|
|
|
- DDX_Control(pDX, IDC_COMBO_ADVANCE, m_cmbAdvance);
|
|
|
- DDX_Control(pDX, IDC_COMBO_EYEGLASS, m_cmbEyeGlass);
|
|
|
- DDX_Control(pDX, IDC_COMBO_COLOR_RATE, m_cmbColorRate);
|
|
|
- DDX_Control(pDX, IDC_COMBO_COLOR_R, m_cmbColorR);
|
|
|
- DDX_Control(pDX, IDC_COMBO_COLOR_G, m_cmbColorG);
|
|
|
- DDX_Control(pDX, IDC_COMBO_COLOR_B, m_cmbColorB);
|
|
|
- DDX_Control(pDX, IDC_COMBO_RES, m_cmbRes);
|
|
|
- DDX_Control(pDX, IDC_COMBO_INTRUSION_CUR_AREA, m_cmbIntrusionCurArea);
|
|
|
- DDX_Control(pDX, IDC_COMBO_CUR_AREA, m_cmbCurArea);
|
|
|
- DDX_Control(pDX, IDC_COMBO_TRAVERSE_PLANE_DIRECTION, m_cmbTraversePlaneDirction);
|
|
|
- DDX_Control(pDX, IDC_COMBO_SEARCH_TYPE, m_cmbSearchType);
|
|
|
- DDX_Control(pDX, IDC_LIST_MOTION_TIME, m_listMotionTime);
|
|
|
- DDX_Control(pDX, IDC_COMBO_SEARCH_SENSE, m_comboSearchSense);
|
|
|
- DDX_DateTimeCtrl(pDX, IDC_COMBO_REMOTE_DATE_START, m_ctDateStart);
|
|
|
- DDX_DateTimeCtrl(pDX, IDC_COMBO_REMOTE_DATE_STOP, m_ctDateStop);
|
|
|
- DDX_DateTimeCtrl(pDX, IDC_COMBO_REMOTE_TIME_START, m_ctTimeStart);
|
|
|
- DDX_DateTimeCtrl(pDX, IDC_COMBO_REMOTE_TIME_STOP, m_ctTimeStop);
|
|
|
- DDX_Text(pDX, IDC_EDIT_TIME, m_iTime);
|
|
|
- DDX_Text(pDX, IDC_EDIT_INTRUSION_DURATION, m_dwIntrusionDuration);
|
|
|
- DDX_Text(pDX, IDC_EDIT_INTRUSION_RATE, m_dwIntrusionRate);
|
|
|
- DDX_Text(pDX, IDC_EDIT_INTRUSION_SENSITIVITY, m_dwIntrusionSensitivity);
|
|
|
- DDX_Text(pDX, IDC_EDIT_TRAVERSE_PLANE_SENSITIVITY, m_dwTravesePlaneSensitivity);
|
|
|
- DDX_Text(pDX, IDC_EDIT_TRAVERSE_PLANE_PRE_TIME, m_dwTraversePlanePreTime);
|
|
|
- DDX_Text(pDX, IDC_EDIT_TRAVERSE_PLANE_DELAY_TIME, m_dwTraversePlaneDelayTime);
|
|
|
- DDX_Text(pDX, IDC_EDIT_INTRUSION_PRE_TIME, m_dwIntrusionPreTime);
|
|
|
- DDX_Text(pDX, IDC_EDIT_INTRUSION_DELAY_TIME, m_dwIntrusionDelayTime);
|
|
|
- DDX_Text(pDX, IDC_EDIT_PAN_POS, m_fPanPos);
|
|
|
- DDX_Text(pDX, IDC_EDIT_TITLE_POS, m_fTitlePos);
|
|
|
- DDX_Text(pDX, IDC_EDIT_ZOOM_POS, m_fZoomPos);
|
|
|
- DDX_Text(pDX, IDC_EDIT_STREAM_ID2, m_csStreamID);
|
|
|
- DDX_Control(pDX, IDC_CMB_RELATED_CHANNEL, m_cmbRelatedChan);
|
|
|
- //}}AFX_DATA_MAP
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-BEGIN_MESSAGE_MAP(CDlgPlayMotion, CDialog)
|
|
|
- //{{AFX_MSG_MAP(CDlgPlayMotion)
|
|
|
- ON_BN_CLICKED(IDC_BTN_MOTION_SEARCH, OnBtnMotionSearch)
|
|
|
- ON_BN_CLICKED(IDC_BTN_PREVIEW, OnBtnPreview)
|
|
|
- ON_NOTIFY(NM_CLICK, IDC_LIST_MOTION_TIME, OnClickListMotionTime)
|
|
|
- ON_NOTIFY(NM_DBLCLK, IDC_LIST_MOTION_TIME, OnDblclkListMotionTime)
|
|
|
- ON_WM_TIMER()
|
|
|
- ON_CBN_SELCHANGE(IDC_COMBO_SEARCH_TYPE, OnSelchangeComboSearchType)
|
|
|
- ON_BN_CLICKED(IDC_BTN_CLEARPIC, OnBtnClearpic)
|
|
|
- ON_BN_CLICKED(IDC_BTN_GET_PTZ, OnBtnGetPtz)
|
|
|
- //}}AFX_MSG_MAP
|
|
|
-END_MESSAGE_MAP()
|
|
|
-
|
|
|
-/////////////////////////////////////////////////////////////////////////////
|
|
|
-// CDlgPlayMotion message handlers
|
|
|
-
|
|
|
-void CDlgPlayMotion::OnBtnMotionSearch()
|
|
|
-{
|
|
|
- UpdateData(TRUE);
|
|
|
- char szLan[128] = {0};
|
|
|
-
|
|
|
- m_struSmartSearchV40.dwSize = sizeof(m_struSmartSearchV40);
|
|
|
-
|
|
|
- m_struSmartSearchV40.struStartTime.wYear = (WORD)m_ctDateStart.GetYear();
|
|
|
- m_struSmartSearchV40.struStartTime.byMonth = (BYTE)m_ctDateStart.GetMonth();
|
|
|
- m_struSmartSearchV40.struStartTime.byDay = (BYTE)m_ctDateStart.GetDay();
|
|
|
- m_struSmartSearchV40.struStartTime.byHour = (BYTE)m_ctTimeStart.GetHour();
|
|
|
- m_struSmartSearchV40.struStartTime.byMinute = (BYTE)m_ctTimeStart.GetMinute();
|
|
|
- m_struSmartSearchV40.struStartTime.bySecond = (BYTE)m_ctTimeStart.GetSecond();
|
|
|
- m_struSmartSearchV40.struEndTime.wYear = (WORD)m_ctDateStop.GetYear();
|
|
|
- m_struSmartSearchV40.struEndTime.byMonth = (BYTE)m_ctDateStop.GetMonth();
|
|
|
- m_struSmartSearchV40.struEndTime.byDay = (BYTE)m_ctDateStop.GetDay();
|
|
|
- m_struSmartSearchV40.struEndTime.byHour = (BYTE)m_ctTimeStop.GetHour();
|
|
|
- m_struSmartSearchV40.struEndTime.byMinute = (BYTE)m_ctTimeStop.GetMinute();
|
|
|
- m_struSmartSearchV40.struEndTime.bySecond = (BYTE)m_ctTimeStop.GetSecond();
|
|
|
- m_struSmartSearchV40.byISO8601 = g_bISO8601;
|
|
|
- m_struSmartSearchV40.cStartTimeDifferenceH = g_iHourDiffWithUTC;
|
|
|
- m_struSmartSearchV40.cStartTimeDifferenceM = g_iMinDiffWithUTC;
|
|
|
- m_struSmartSearchV40.cStopTimeDifferenceH = g_iHourDiffWithUTC;
|
|
|
- m_struSmartSearchV40.cStopTimeDifferenceM = g_iMinDiffWithUTC;
|
|
|
-
|
|
|
- //m_struSmartSearch.byChan = (BYTE)m_lChannel;
|
|
|
-
|
|
|
- m_struSmartSearchV40.struIDInfo.dwChannel = m_cmbRelatedChan.GetItemData(m_cmbRelatedChan.GetCurSel());
|
|
|
- m_struSmartSearchV40.struIDInfo.dwSize = sizeof(NET_DVR_STREAM_INFO);
|
|
|
- strncpy((char*)m_struSmartSearchV40.struIDInfo.byID, m_csStreamID, STREAM_ID_LEN);
|
|
|
-
|
|
|
- DWORD dwCurSearchType = m_cmbSearchType.GetCurSel();
|
|
|
-
|
|
|
- m_struSmartSearchV40.bySearchCondType = m_cmbSearchType.GetCurSel();
|
|
|
- DWORD dwTemp = 0;
|
|
|
-
|
|
|
- switch(dwCurSearchType)
|
|
|
- {
|
|
|
- case 0:
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- dwTemp = m_cmbCurArea.GetCurSel();
|
|
|
- //m_struSmartSearch.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[dwTemp].dwCrossDirection = m_cmbTraversePlaneDirction.GetCurSel();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[dwTemp].bySensitivity = (BYTE)m_dwTravesePlaneSensitivity;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[dwTemp].dwCrossDirection = (VCA_CROSS_DIRECTION)m_cmbTraversePlaneDirction.GetCurSel();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.dwPreTime = m_dwTraversePlanePreTime;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.dwDelayTime = m_dwTraversePlaneDelayTime;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struPTZPosInfo.dwPanPos = m_fPanPos*10;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struPTZPosInfo.dwTiltPos = m_fTitlePos*10;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struPTZPosInfo.dwZoomPos = m_fZoomPos*10;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.byAdvanceType = m_cmbAdvance.GetCurSel();
|
|
|
- if (m_cmbAdvance.GetCurSel() == 1)
|
|
|
- {
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.uAdvanceCond.struHumanFeature.byGroup = m_cmbRes.GetItemData(m_cmbRes.GetCurSel());
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.uAdvanceCond.struHumanFeature.byEyeGlass = m_cmbEyeGlass.GetItemData(m_cmbEyeGlass.GetCurSel());
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.uAdvanceCond.struHumanFeature.bySex = m_cmbSex.GetItemData(m_cmbSex.GetCurSel());
|
|
|
- }
|
|
|
- else if (m_cmbAdvance.GetCurSel() == 2)
|
|
|
- {
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.uAdvanceCond.struObjectFeature.byColorRatel = m_cmbColorRate.GetCurSel();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.uAdvanceCond.struObjectFeature.byRed = m_cmbColorR.GetCurSel();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.uAdvanceCond.struObjectFeature.byGreen = m_cmbColorG.GetCurSel();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.uAdvanceCond.struObjectFeature.byBlue = m_cmbColorB.GetCurSel();
|
|
|
- }
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- dwTemp = m_cmbIntrusionCurArea.GetCurSel();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[dwTemp].byRate = (BYTE)m_dwIntrusionRate;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[dwTemp].wDuration = m_dwIntrusionDuration;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[dwTemp].bySensitivity = m_dwIntrusionSensitivity;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.dwPreTime = m_dwIntrusionPreTime;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.dwDelayTime = m_dwIntrusionDelayTime;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struPTZPosInfo.dwPanPos = m_fPanPos*10;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struPTZPosInfo.dwTiltPos = m_fTitlePos*10;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struPTZPosInfo.dwZoomPos = m_fZoomPos*10;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.byAdvanceType = m_cmbAdvance.GetCurSel();
|
|
|
- if (m_cmbAdvance.GetCurSel() == 1)
|
|
|
- {
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.uAdvanceCond.struHumanFeature.byGroup = m_cmbRes.GetItemData(m_cmbRes.GetCurSel());
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.uAdvanceCond.struHumanFeature.byEyeGlass = m_cmbEyeGlass.GetItemData(m_cmbEyeGlass.GetCurSel());
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.uAdvanceCond.struHumanFeature.bySex = m_cmbSex.GetItemData(m_cmbSex.GetCurSel());
|
|
|
- }
|
|
|
- else if (m_cmbAdvance.GetCurSel() == 2)
|
|
|
- {
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.uAdvanceCond.struObjectFeature.byColorRatel = m_cmbColorRate.GetCurSel();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.uAdvanceCond.struObjectFeature.byRed = m_cmbColorR.GetCurSel();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.uAdvanceCond.struObjectFeature.byGreen = m_cmbColorG.GetCurSel();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.uAdvanceCond.struObjectFeature.byBlue = m_cmbColorB.GetCurSel();
|
|
|
- }
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- memcpy(&m_struSmartSearchV40.uSmartSearchCond.struFaceSnapCond.struFacePolygon, &m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion, sizeof(NET_VCA_POLYGON));
|
|
|
-
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struFaceSnapCond.dwPreTime = m_dwTraversePlanePreTime;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struFaceSnapCond.dwDelayTime = m_dwTraversePlaneDelayTime;
|
|
|
- break;
|
|
|
- }
|
|
|
- m_struSmartSearchV40.bySensitivity = m_comboSearchSense.GetCurSel()+1;
|
|
|
- m_lSearchHandle = NET_DVR_SmartSearch_V40(m_lServerID, &m_struSmartSearchV40);
|
|
|
-
|
|
|
- if (-1 == m_lSearchHandle)
|
|
|
- {
|
|
|
- int i = NET_DVR_GetLastError();
|
|
|
- g_pMainDlg->AddLog(m_iDevIndex, OPERATION_FAIL_T, "NET_DVR_SmartSearch");
|
|
|
- g_StringLanType(szLan, "获取文件列表失败!", "Fail to get file list");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if (m_hFindThread == NULL)
|
|
|
- {
|
|
|
- m_hFindThread = CreateThread(NULL,0,LPTHREAD_START_ROUTINE(GetMotionInfoThread),this,0,NULL);
|
|
|
- }
|
|
|
-
|
|
|
- if (m_hFindThread != NULL)
|
|
|
- {
|
|
|
- CloseHandle(m_hFindThread);
|
|
|
- m_hFindThread = NULL;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CDlgPlayMotion::OnInitDialog()
|
|
|
-{
|
|
|
- CDialog::OnInitDialog();
|
|
|
-
|
|
|
- int i = -1;
|
|
|
- for (i =0 ; i < MOTION_NUM; i++)
|
|
|
- {
|
|
|
- m_bMouseMove[i] = FALSE;
|
|
|
- m_bDrawed[i] = FALSE;
|
|
|
- }
|
|
|
-
|
|
|
- CRect rc(0, 0, 0, 0);
|
|
|
- GetParent()->GetClientRect(&rc);
|
|
|
- ((CTabCtrl*)GetParent())->AdjustRect(FALSE, &rc);
|
|
|
- MoveWindow(&rc);
|
|
|
-
|
|
|
- CRect rcMotion(0, 0, 0, 0);
|
|
|
- GetDlgItem(IDC_PIC_MOTION_DETECT)->GetWindowRect(&rcMotion);
|
|
|
- ScreenToClient(&rcMotion);
|
|
|
- rcMotion.right = rcMotion.left - 5 + 16*22;
|
|
|
- rcMotion.bottom = rcMotion.top - 12 + 16*18;
|
|
|
- GetDlgItem(IDC_PIC_MOTION_DETECT)->MoveWindow(rcMotion);
|
|
|
-
|
|
|
- CTime timeCur = CTime::GetCurrentTime();
|
|
|
- CTime timeStart(timeCur.GetYear(),timeCur.GetMonth(),timeCur.GetDay(),0,0,0);
|
|
|
- CTime timeStop(timeCur.GetYear(),timeCur.GetMonth(),timeCur.GetDay(),23,59,59);
|
|
|
- m_ctDateStart = timeStart;
|
|
|
- m_ctTimeStart = timeStart;
|
|
|
- m_ctDateStop = timeStop;
|
|
|
- m_ctTimeStop = timeStop;
|
|
|
-
|
|
|
- m_comboSearchSense.SetCurSel(1);
|
|
|
-
|
|
|
- int nIndex = 0;
|
|
|
- m_listMotionTime.SetExtendedStyle(m_listMotionTime.GetExtendedStyle() | LVS_EX_FULLROWSELECT);
|
|
|
- char szLan[128] = {0};
|
|
|
- g_StringLanType(szLan, "序号","Index");
|
|
|
- m_listMotionTime.InsertColumn(nIndex, szLan,LVCFMT_LEFT, 50, -1);
|
|
|
- nIndex++;
|
|
|
- g_StringLanType(szLan, "开始时间", "Start time");
|
|
|
- m_listMotionTime.InsertColumn(nIndex, szLan, LVCFMT_LEFT, 120, -1);
|
|
|
- nIndex++;
|
|
|
- g_StringLanType(szLan, "结束时间", "Stop Time");
|
|
|
- m_listMotionTime.InsertColumn(nIndex, szLan, LVCFMT_LEFT, 120, -1);
|
|
|
- nIndex++;
|
|
|
-
|
|
|
- int iChanIndex = g_pMainDlg->GetCurChanIndex();
|
|
|
-
|
|
|
- if (iChanIndex > -1)
|
|
|
- {
|
|
|
- m_lChannel = g_struDeviceInfo[m_iDevIndex].pStruChanInfo[iChanIndex].iChannelNO;
|
|
|
- }
|
|
|
- GetDlgItem(IDC_PIC_MOTION_DETECT)->GetWindowRect(&m_rcWnd);
|
|
|
-
|
|
|
- if (iChanIndex > -1)
|
|
|
- {
|
|
|
- m_cmbRelatedChan.ResetContent();
|
|
|
- for (i = 0; i < g_struDeviceInfo[m_iDevIndex].iDeviceChanNum; i++)
|
|
|
- {
|
|
|
- m_cmbRelatedChan.AddString(g_struDeviceInfo[m_iDevIndex].pStruChanInfo[iChanIndex].chChanName);
|
|
|
- m_cmbRelatedChan.SetItemData(i, g_struDeviceInfo[m_iDevIndex].pStruChanInfo[iChanIndex].iChannelNO);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- UpdateData(FALSE);
|
|
|
- return TRUE; // return TRUE unless you set the focus to a control
|
|
|
- // EXCEPTION: OCX Property Pages should return FALSE
|
|
|
-}
|
|
|
-
|
|
|
-long CDlgPlayMotion::StartPlay()
|
|
|
-{
|
|
|
-
|
|
|
- NET_DVR_PREVIEWINFO struPlayInfo = { 0 };
|
|
|
-
|
|
|
- struPlayInfo.lChannel = m_lChannel;
|
|
|
- // struPlayInfo.sMultiCastIP = g_struDeviceInfo[iDeviceIndex].chDeviceMultiIP;
|
|
|
- struPlayInfo.dwLinkMode = 0;
|
|
|
- struPlayInfo.dwStreamType = 0;
|
|
|
- struPlayInfo.hPlayWnd = GetDlgItem(IDC_PIC_MOTION_DETECT)->GetSafeHwnd();
|
|
|
- strncpy((char*)struPlayInfo.byStreamID, m_csStreamID, STREAM_ID_LEN);
|
|
|
-
|
|
|
- m_lRealPlayHandle = NET_DVR_RealPlay_V40(m_lServerID, &struPlayInfo, NULL, NULL);
|
|
|
-
|
|
|
- if (-1 == m_lRealPlayHandle)
|
|
|
- {
|
|
|
- AfxMessageBox("Fail to preview");
|
|
|
- g_pMainDlg->AddLog(m_iDevIndex, OPERATION_FAIL_T, "NET_DVR_RealPlay_V40");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- g_pMainDlg->AddLog(m_iDevIndex, OPERATION_SUCC_T, "NET_DVR_RealPlay_V40");
|
|
|
- }
|
|
|
- return m_lRealPlayHandle;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CDlgPlayMotion::StopPlay()
|
|
|
-{
|
|
|
- BOOL bRet = TRUE;
|
|
|
- if (m_lRealPlayHandle >= 0)
|
|
|
- {
|
|
|
- bRet = NET_DVR_StopRealPlay(m_lRealPlayHandle);
|
|
|
- m_lRealPlayHandle = -1;
|
|
|
-
|
|
|
- }
|
|
|
- return bRet;
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::PostNcDestroy()
|
|
|
-{
|
|
|
- // TODO: Add your specialized code here and/or call the base class
|
|
|
- StopPlay();
|
|
|
- CDialog::PostNcDestroy();
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CDlgPlayMotion::PreTranslateMessage(MSG* pMsg)
|
|
|
-{
|
|
|
- /*CPoint pt(0,0);
|
|
|
- CRect rcWnd(0,0,0,0);
|
|
|
- GetDlgItem(IDC_PIC_MOTION_DETECT)->GetWindowRect(&rcWnd);
|
|
|
-
|
|
|
- GetCursorPos(&pt);
|
|
|
-
|
|
|
- switch (pMsg->message)
|
|
|
- {
|
|
|
- case WM_LBUTTONDOWN:
|
|
|
- if (PtInRect(&rcWnd, pt) && (GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0))
|
|
|
- {
|
|
|
- for (int nMotionIndex = 0; nMotionIndex < MOTION_NUM; nMotionIndex++)
|
|
|
- {
|
|
|
- if (m_bDrawed[nMotionIndex] == FALSE)
|
|
|
- {
|
|
|
- //Get the Drawing Rect Index
|
|
|
- m_iDrawingIndex = nMotionIndex;
|
|
|
- m_struRect[m_iDrawingIndex].fX = (float)(pt.x-rcWnd.left)/(float)rcWnd.Width();
|
|
|
- m_struRect[m_iDrawingIndex].fY = (float)(pt.y-rcWnd.top)/(float)rcWnd.Height();
|
|
|
- m_bMouseMove[m_iDrawingIndex] = TRUE;
|
|
|
- TRACE("m_struRect.fX =%f m_struRect.fY =%f\n", m_struRect[m_iDrawingIndex].fX,m_struRect[m_iDrawingIndex].fY);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case WM_LBUTTONUP:
|
|
|
- if (PtInRect(&rcWnd, pt) && (GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0))
|
|
|
- {
|
|
|
- m_bMouseMove[m_iDrawingIndex] = FALSE;
|
|
|
- m_bDrawed[m_iDrawingIndex] = TRUE;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case WM_MOUSEMOVE:
|
|
|
- if (PtInRect(&rcWnd, pt) && m_bMouseMove[m_iDrawingIndex] && (GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0))
|
|
|
- {
|
|
|
- m_struRect[m_iDrawingIndex].fWidth = (float)(pt.x-rcWnd.left)/(float)rcWnd.Width() - m_struRect[m_iDrawingIndex].fX;
|
|
|
- m_struRect[m_iDrawingIndex].fHeight = (float)(pt.y-rcWnd.top)/(float)rcWnd.Height() - m_struRect[m_iDrawingIndex].fY;
|
|
|
-
|
|
|
-
|
|
|
- TRACE("WM_MOUSEMOVE MotionIndex[%d] fWidth[%f] fHeight[%f]\n", m_iDrawingIndex, m_struRect[m_iDrawingIndex].fWidth, m_struRect[m_iDrawingIndex].fHeight);
|
|
|
-
|
|
|
- for(int i = int(m_struRect[m_iDrawingIndex].fX * 22); i <= int((m_struRect[m_iDrawingIndex].fX +m_struRect[m_iDrawingIndex].fWidth)*22); i++)
|
|
|
- {
|
|
|
- for (int j = int(m_struRect[m_iDrawingIndex].fY*18); j <= int((m_struRect[m_iDrawingIndex].fY + m_struRect[m_iDrawingIndex].fHeight)*18); j++)
|
|
|
- {
|
|
|
- m_struSmartSearch.byMotionScope[j][i] = 1;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case WM_RBUTTONDOWN:
|
|
|
- if (PtInRect(&rcWnd, pt) && (GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0))
|
|
|
- {
|
|
|
- memset(&m_struRect, 0, sizeof(m_struRect));
|
|
|
- memset(m_struSmartSearch.byMotionScope, 0, sizeof(m_struSmartSearch.byMotionScope));
|
|
|
- for (int i = 0; i < MOTION_NUM; i++)
|
|
|
- {
|
|
|
- m_bDrawed[i] = FALSE;
|
|
|
- m_bMouseMove[i] = FALSE;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return CDialog::PreTranslateMessage(pMsg);*/
|
|
|
- CPoint pt(0, 0);
|
|
|
- GetDlgItem(IDC_PIC_MOTION_DETECT)->GetWindowRect(&m_rcWnd);
|
|
|
- GetCursorPos(&pt);
|
|
|
- ScreenToClient(&m_rcWnd);
|
|
|
- ScreenToClient(&pt);
|
|
|
-
|
|
|
- // if (m_bChkDrawPlate)
|
|
|
- // {
|
|
|
- // PreDrawPolygonMsg(pMsg, pt);
|
|
|
- // }
|
|
|
- if (m_cmbSearchType.GetCurSel() == 0)
|
|
|
- {
|
|
|
- PreDrawMotionMsg(pMsg,pt);
|
|
|
- }
|
|
|
- if (m_cmbSearchType.GetCurSel() == 1)
|
|
|
- {
|
|
|
- PreDrawLineMsg(pMsg, pt);
|
|
|
- }
|
|
|
- else if(m_cmbSearchType.GetCurSel() == 2 || m_cmbSearchType.GetCurSel() == 3)
|
|
|
- {
|
|
|
- PreDrawPolygonMsg(pMsg, pt);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- return CDialog::PreTranslateMessage(pMsg);
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::SetParentWnd(HWND *hhWnd, int iParentNum)
|
|
|
-{
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CDlgPlayMotion::CheckInitParam()
|
|
|
-{
|
|
|
- g_PlayMotion = this;
|
|
|
-
|
|
|
- m_iDevIndex = g_pMainDlg->GetCurDeviceIndex();
|
|
|
- if (m_iDevIndex >= 0)
|
|
|
- {
|
|
|
- m_lServerID = g_struDeviceInfo[m_iDevIndex].lLoginID;
|
|
|
- int iChanIndex = g_pMainDlg->GetCurChanIndex();
|
|
|
- if (iChanIndex == -1)
|
|
|
- {
|
|
|
- iChanIndex = 1;
|
|
|
- }
|
|
|
- m_lChannel = g_struDeviceInfo[m_iDevIndex].pStruChanInfo[iChanIndex].iChannelNO;
|
|
|
- }
|
|
|
-
|
|
|
- ShowSetInfo(0);
|
|
|
- m_cmbAdvance.ResetContent();
|
|
|
- char szLan[128]= {0};
|
|
|
- g_StringLanType(szLan,"不带","No With");
|
|
|
- m_cmbAdvance.AddString(szLan);
|
|
|
- g_StringLanType(szLan,"人体属性","Human Feature");
|
|
|
- m_cmbAdvance.AddString(szLan);
|
|
|
- g_StringLanType(szLan,"物体颜色","Object Color");
|
|
|
- m_cmbAdvance.AddString(szLan);
|
|
|
- m_cmbAdvance.SetCurSel(0);
|
|
|
- AddObjectIFeatureInfo();
|
|
|
- AddHumanFeatureInfo();
|
|
|
-
|
|
|
- m_cmbSearchType.SetCurSel(0);
|
|
|
- m_cmbCurArea.SetCurSel(0);
|
|
|
- m_cmbIntrusionCurArea.SetCurSel(0);
|
|
|
- m_cmbTraversePlaneDirction.SetCurSel(0);
|
|
|
-
|
|
|
- if (m_iDevIndex >= 0)
|
|
|
- {
|
|
|
- m_cmbRelatedChan.ResetContent();
|
|
|
- int i = -1;
|
|
|
- for (i = 0; i < g_struDeviceInfo[m_iDevIndex].iDeviceChanNum; i++)
|
|
|
- {
|
|
|
- m_cmbRelatedChan.AddString(g_struDeviceInfo[m_iDevIndex].pStruChanInfo[i].chChanName);
|
|
|
- m_cmbRelatedChan.SetItemData(i, g_struDeviceInfo[m_iDevIndex].pStruChanInfo[i].iChannelNO);
|
|
|
- }
|
|
|
- m_cmbRelatedChan.SetCurSel(0);
|
|
|
- }
|
|
|
-
|
|
|
- UpdateData(FALSE);
|
|
|
-
|
|
|
- return TRUE;
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::OnBtnPreview()
|
|
|
-{
|
|
|
- if (m_lRealPlayHandle >= 0)
|
|
|
- {
|
|
|
- NET_DVR_RigisterDrawFun(m_lRealPlayHandle, NULL, (DWORD)this);
|
|
|
- StopPlay();
|
|
|
- Invalidate();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- m_dwSearchType = m_cmbSearchType.GetCurSel();
|
|
|
- StartPlay();
|
|
|
- if (m_lRealPlayHandle >= 0)
|
|
|
- {
|
|
|
- NET_DVR_RigisterDrawFun(m_lRealPlayHandle, DrawSearchMotionArea, (DWORD)this);
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-void CDlgPlayMotion::OnClickListMotionTime(NMHDR* pNMHDR, LRESULT* pResult)
|
|
|
-{
|
|
|
- // TODO: Add your control notification handler code here
|
|
|
- POSITION iPos = m_listMotionTime.GetFirstSelectedItemPosition();
|
|
|
- if (iPos == NULL)
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
- char szTime[32] = {0};
|
|
|
- char szTmp[8] = {0};
|
|
|
- int iOffset = 0;
|
|
|
- m_iItemSel = m_listMotionTime.GetNextSelectedItem(iPos);
|
|
|
- sprintf(szTime, "%s", m_listMotionTime.GetItemText(m_iItemSel, 1));
|
|
|
- memcpy(szTmp, szTime, 4);
|
|
|
- m_struStartTime.dwYear = atoi(szTmp);
|
|
|
-
|
|
|
- iOffset+=4;
|
|
|
- memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 2);
|
|
|
- m_struStartTime.dwMonth = atoi(szTmp);
|
|
|
-
|
|
|
- iOffset+=2;memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 2);
|
|
|
- m_struStartTime.dwDay = atoi(szTmp);
|
|
|
-
|
|
|
- iOffset+=2;memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 2);
|
|
|
- m_struStartTime.dwHour = atoi(szTmp);
|
|
|
-
|
|
|
- iOffset+=2;memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 2);
|
|
|
- m_struStartTime.dwMinute = atoi(szTmp);
|
|
|
-
|
|
|
- iOffset+=2;memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 2);
|
|
|
- m_struStartTime.dwSecond = atoi(szTmp);
|
|
|
-
|
|
|
- memset(szTime, 0, 32);
|
|
|
- sprintf(szTime, "%s", m_listMotionTime.GetItemText(m_iItemSel, 2));//stop time
|
|
|
- iOffset=0;memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 4);
|
|
|
- m_struStopTime.dwYear = atoi(szTmp);
|
|
|
-
|
|
|
- iOffset+=4;memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 2);
|
|
|
- m_struStopTime.dwMonth = atoi(szTmp);
|
|
|
-
|
|
|
- iOffset+=2;memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 2);
|
|
|
- m_struStopTime.dwDay = atoi(szTmp);
|
|
|
-
|
|
|
- iOffset+=2;memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 2);
|
|
|
- m_struStopTime.dwHour = atoi(szTmp);
|
|
|
-
|
|
|
- iOffset+=2;memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 2);
|
|
|
- m_struStopTime.dwMinute = atoi(szTmp);
|
|
|
-
|
|
|
- iOffset+=2;memset(szTmp, 0, 8);
|
|
|
- memcpy(szTmp, szTime+iOffset, 2);
|
|
|
- m_struStopTime.dwSecond = atoi(szTmp);
|
|
|
- UpdateData(FALSE);
|
|
|
- *pResult = 0;
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::OnDblclkListMotionTime(NMHDR* pNMHDR, LRESULT* pResult)
|
|
|
-{
|
|
|
- BtnRemoteFileStop();
|
|
|
- BtnRemotFilePlay();
|
|
|
-
|
|
|
- *pResult = 0;
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::BtnRemoteFileStop()
|
|
|
-{
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::BtnRemotFilePlay()
|
|
|
-{
|
|
|
- StopPlay();
|
|
|
- if (m_lPlayBackHandle == -1)
|
|
|
- {
|
|
|
- PlayBack();
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-extern BOOL ConvertTime(time_t *lpInBuf, LPNET_DVR_TIME pOutBuf, BOOL bInToOut);
|
|
|
-
|
|
|
-void CDlgPlayMotion::PlayBack()
|
|
|
- {
|
|
|
- UpdateData(TRUE);
|
|
|
-
|
|
|
- int m_nVerifyret = -1;
|
|
|
- CString csFileName;
|
|
|
- int iFileSelPos = 0;
|
|
|
- HWND hPlayWnd=GetDlgItem(IDC_PIC_MOTION_DETECT)->GetSafeHwnd();
|
|
|
- POSITION posItem = m_listMotionTime.GetFirstSelectedItemPosition();
|
|
|
- NET_DVR_TIME struStartTime,struStopTime;
|
|
|
- char szLan[128] = {0};
|
|
|
-
|
|
|
- // remoteplay_info.srcfilename=m_szFileName;
|
|
|
- if (m_lPlayBackHandle >= 0)
|
|
|
- {
|
|
|
- if (NET_DVR_StopPlayBack(m_lPlayBackHandle))
|
|
|
- {
|
|
|
- g_pMainDlg->AddLog(m_iDevIndex, OPERATION_SUCC_T, "NET_DVR_StopPlayBack");
|
|
|
- }
|
|
|
- m_lPlayBackHandle = -1;
|
|
|
- Sleep(400);
|
|
|
- }
|
|
|
- if (m_lPlayBackHandle == -1)
|
|
|
- {
|
|
|
- time_t tmp;
|
|
|
- m_iTime = 5;
|
|
|
- ConvertTime(&tmp, &m_struStartTime, FALSE);
|
|
|
- tmp -= m_iTime;
|
|
|
- ConvertTime(&tmp, &m_struStartTime, TRUE);
|
|
|
- ConvertTime(&tmp, &m_struStopTime, FALSE);
|
|
|
- tmp += m_iTime;
|
|
|
- ConvertTime(&tmp, &m_struStopTime, TRUE);
|
|
|
- memcpy(&struStartTime, &m_struStartTime, sizeof(NET_DVR_TIME));
|
|
|
- memcpy(&struStopTime, &m_struStopTime, sizeof(NET_DVR_TIME));
|
|
|
-
|
|
|
-
|
|
|
- m_lPlayBackHandle = NET_DVR_PlayBackByTime(m_lServerID, m_lChannel, &struStartTime, &struStopTime, hPlayWnd);//NULL
|
|
|
-
|
|
|
- if (m_lPlayBackHandle== -1)
|
|
|
- {
|
|
|
- g_pMainDlg->AddLog(m_iDevIndex, OPERATION_FAIL_T, "NET_DVR_PlayBackByTime ChanNum[%d]", m_lChannel);
|
|
|
- g_StringLanType(szLan, "远程回放失败", "Fail to play back remote");
|
|
|
- AfxMessageBox(szLan);
|
|
|
- return;
|
|
|
- }
|
|
|
- NET_DVR_GetPlayBackPlayerIndex(m_lPlayBackHandle);
|
|
|
-
|
|
|
- NET_DVR_PlayBackControl(m_lPlayBackHandle, NET_DVR_PLAYSTART, 0, NULL);
|
|
|
-
|
|
|
-#if 1
|
|
|
-
|
|
|
- if (NET_DVR_PlayBackControl(m_lPlayBackHandle, NET_DVR_PLAYSTARTAUDIO, 0, NULL))
|
|
|
- {
|
|
|
-// m_bSound=TRUE;
|
|
|
- NET_DVR_PlayBackControl(m_lPlayBackHandle, NET_DVR_PLAYAUDIOVOLUME, (0xffff)/2, NULL);
|
|
|
- // m_sliderVolume.SetPos(50);
|
|
|
-// ((CButton *)GetDlgItem(IDC_BTN_EVENT_FILE_SOUND))->SetIcon(m_hSoundStartIcon);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
-// m_bSound=FALSE;
|
|
|
-// ((CButton *)GetDlgItem(IDC_BTN_EVENT_FILE_SOUND))->SetIcon(m_hSoundStopIcon);
|
|
|
- }
|
|
|
-#endif
|
|
|
- //SetPlayState();
|
|
|
- SetTimer(PLAYBYTIME_TIMER, 3000, NULL);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
-// if (m_bPause)
|
|
|
-// {
|
|
|
-// if (NET_DVR_PlayBackControl(m_lPlayBackHandle, NET_DVR_PLAYRESTART, 0, NULL))
|
|
|
-// {
|
|
|
-// g_pMainDlg->AddLog(m_iDevIndex, OPERATION_FAIL_T, "NET_DVR_PLAYRESTART");
|
|
|
-// m_bPause=FALSE;
|
|
|
-// SetPlayState();
|
|
|
-// }
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-// if (NET_DVR_PlayBackControl(m_lPlayBackHandle, NET_DVR_PLAYPAUSE, 0, NULL))
|
|
|
-// {
|
|
|
-// g_pMainDlg->AddLog(m_iDevIndex, OPERATION_FAIL_T, "NET_DVR_PLAYPAUSE");
|
|
|
-// m_bPause=TRUE;
|
|
|
-// CButton *pButton;
|
|
|
-// pButton = (CButton *)GetDlgItem(IDC_BTN_EVENT_FILE_PLAY);
|
|
|
-// pButton->SetIcon(m_hPlayEnableIcon);
|
|
|
-// pButton->EnableWindow(TRUE);
|
|
|
-// }
|
|
|
-// }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-#if (_MSC_VER >= 1500) //vs2008
|
|
|
-void CDlgPlayMotion::OnTimer(UINT_PTR nIDEvent)
|
|
|
-#else
|
|
|
-void CDlgPlayMotion::OnTimer(UINT nIDEvent)
|
|
|
-#endif
|
|
|
-{
|
|
|
- // TODO: Add your message handler code here and/or call default
|
|
|
- DWORD nPos;
|
|
|
- char szLan[128] = {0};
|
|
|
- // NET_DVR_TIME struOsdTime;
|
|
|
- if (nIDEvent == PLAYBYTIME_TIMER)
|
|
|
- {
|
|
|
- if (m_lPlayBackHandle >= 0)
|
|
|
- {
|
|
|
- if (NET_DVR_PlayBackControl(m_lPlayBackHandle, NET_DVR_PLAYGETPOS, 0, &nPos))
|
|
|
- {
|
|
|
- g_pMainDlg->AddLog(m_iDevIndex, OPERATION_SUCC_T, "NET_DVR_PLAYGETPOS pos[%d]", nPos);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- g_pMainDlg->AddLog(m_iDevIndex, OPERATION_FAIL_T, "NET_DVR_PLAYGETPOS");
|
|
|
- }
|
|
|
-
|
|
|
- if (nPos > 100)
|
|
|
- {
|
|
|
- StopPlayBack();
|
|
|
- g_StringLanType(szLan, "由于网络原因或DVR忙,回放异常终止!", " Due to network reasons or DVR is busy, playback abnormal termination");
|
|
|
- AfxMessageBox(szLan);
|
|
|
- }
|
|
|
- if (nPos == 100)
|
|
|
- {
|
|
|
- StopPlayBack();
|
|
|
- g_StringLanType(szLan, "按时间回放结束", "playback by time over");
|
|
|
- AfxMessageBox(szLan);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- CDialog::OnTimer(nIDEvent);
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::StopPlayBack()
|
|
|
-{
|
|
|
- if (m_lPlayBackHandle >= 0)
|
|
|
- {
|
|
|
- if (!NET_DVR_StopPlayBack(m_lPlayBackHandle))
|
|
|
- {
|
|
|
- g_pMainDlg->AddLog(m_iDevIndex, OPERATION_FAIL_T, "NET_DVR_StopPlayBack");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- g_pMainDlg->AddLog(m_iDevIndex, OPERATION_SUCC_T, "NET_DVR_StopPlayBack");
|
|
|
-
|
|
|
- }
|
|
|
- m_lPlayBackHandle = -1;
|
|
|
- //KillTimer(REMOTE_PLAY_STATE_TIMER);
|
|
|
- UpdateData(FALSE);
|
|
|
- Invalidate(TRUE);
|
|
|
- }
|
|
|
-// m_bPause = FALSE;
|
|
|
-// m_bSetFrame = FALSE;
|
|
|
-//
|
|
|
-// SetStopState();
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::OnSelchangeComboSearchType()
|
|
|
-{
|
|
|
- // TODO: Add your control notification handler code here
|
|
|
- UpdateData(TRUE);
|
|
|
-
|
|
|
- int iCurSelect = m_cmbSearchType.GetCurSel();
|
|
|
- if (iCurSelect < 0)
|
|
|
- {
|
|
|
- iCurSelect = 0;
|
|
|
- }
|
|
|
- memset(m_bDrawed,0, sizeof(m_bDrawed));
|
|
|
- ShowSetInfo(iCurSelect);
|
|
|
- if (iCurSelect != 0)
|
|
|
- {
|
|
|
- CleanMotionPic();
|
|
|
- m_dwPosNum = 0;
|
|
|
- }
|
|
|
- //OnBtnClearpic();
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::ShowSetInfo(DWORD dwSearchType)
|
|
|
-{
|
|
|
- //show Detectin
|
|
|
- switch(dwSearchType)
|
|
|
- {
|
|
|
- case 0:
|
|
|
- GetDlgItem(IDC_STATIC_SENSITIVITY)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_COMBO_SEARCH_SENSE)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DIRECTION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_TRAVERSE_PLANE_DIRECTION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_PRE_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DELAY_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_CONF)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DURATION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_DURATION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_PRE_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DELAY_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_RATE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_RATE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_INTRUSION_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_BTN_CLEARPIC)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_BTN_GET_PTZ)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_EDIT_PAN_POS)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_TITLE_POS)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_ZOOM_POS)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_P)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_T)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_Z)->ShowWindow(SW_HIDE);
|
|
|
- break;
|
|
|
- case 1: //Travese Plane
|
|
|
- GetDlgItem(IDC_STATIC_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_SEARCH_SENSE)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_CUR_AREA)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_COMBO_CUR_AREA)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_SENSITIVITY)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_SENSITIVITY)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DIRECTION)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_COMBO_TRAVERSE_PLANE_DIRECTION)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_PRE_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_PRE_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_PRE_TIME_SECONDS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DELAY_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_DELAY_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DELAY_TIME_SECONDS)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_CONF)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DURATION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_DURATION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_RATE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_RATE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_INTRUSION_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_PRE_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DELAY_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_BTN_CLEARPIC)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
- GetDlgItem(IDC_BTN_GET_PTZ)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
- GetDlgItem(IDC_EDIT_PAN_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_TITLE_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_ZOOM_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_P)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_T)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_Z)->ShowWindow(SW_SHOW);
|
|
|
- break;
|
|
|
- case 2: //Intrusion
|
|
|
- GetDlgItem(IDC_STATIC_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_SEARCH_SENSE)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DIRECTION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_TRAVERSE_PLANE_DIRECTION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_PRE_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DELAY_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_CONF)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DURATION)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_DURATION)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_SENSITIVITY)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_SENSITIVITY)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_RATE)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_RATE)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_CUR_AREA)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_COMBO_INTRUSION_CUR_AREA)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_PRE_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_PRE_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DELAY_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_PRE_TIME_SECONDS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_DELAY_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DELAY_TIME_SECONDS)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
- GetDlgItem(IDC_BTN_CLEARPIC)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_BTN_GET_PTZ)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
- GetDlgItem(IDC_EDIT_PAN_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_TITLE_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_ZOOM_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_P)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_T)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_Z)->ShowWindow(SW_SHOW);
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_PRE_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_PRE_TIME)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DELAY_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_DELAY_TIME)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_SENSITIVITY)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_COMBO_SEARCH_SENSE)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DIRECTION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_TRAVERSE_PLANE_DIRECTION)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_CONF)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DURATION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_DURATION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_RATE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_RATE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_INTRUSION_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_PRE_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DELAY_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_BTN_CLEARPIC)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_BTN_GET_PTZ)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
- GetDlgItem(IDC_EDIT_PAN_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_TITLE_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_ZOOM_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_P)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_T)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_Z)->ShowWindow(SW_SHOW);
|
|
|
- break;
|
|
|
- default:
|
|
|
- GetDlgItem(IDC_STATIC_SENSITIVITY)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_COMBO_SEARCH_SENSE)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_TRAVERSE_PLANE_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_TRAVERSE_PLANE_DIRECTION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_TRAVERSE_PLANE_DIRECTION)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
-
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_CONF)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DURATION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_DURATION)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_SENSITIVITY)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_RATE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_RATE)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_COMBO_INTRUSION_CUR_AREA)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_PRE_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_PRE_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_EDIT_INTRUSION_DELAY_TIME)->ShowWindow(SW_HIDE);
|
|
|
- GetDlgItem(IDC_STATIC_INTRUSION_DELAY_TIME_SECONDS)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_BTN_CLEARPIC)->ShowWindow(SW_HIDE);
|
|
|
-
|
|
|
- GetDlgItem(IDC_BTN_GET_PTZ)->ShowWindow(SW_SHOW);
|
|
|
-
|
|
|
- GetDlgItem(IDC_EDIT_PAN_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_TITLE_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_EDIT_ZOOM_POS)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_P)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_T)->ShowWindow(SW_SHOW);
|
|
|
- GetDlgItem(IDC_STATIC_Z)->ShowWindow(SW_SHOW);
|
|
|
- break;
|
|
|
- }
|
|
|
- UpdateData(FALSE);
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::OnBtnClearpic()
|
|
|
-{
|
|
|
- // TODO: Add your control notification handler code here
|
|
|
-// if (m_cmbSearchType.GetCurSel() == 0)
|
|
|
-// {
|
|
|
-// memset(&(m_struSmartSearch.uSmartSearchCond.byMotionScope), 0, sizeof(BYTE)*64*96);
|
|
|
-// }
|
|
|
- if (m_cmbSearchType.GetCurSel() == 1)
|
|
|
- {
|
|
|
- memset(&(m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_cmbTraversePlaneDirction.GetCurSel()]), 0, sizeof(NET_VCA_TRAVERSE_PLANE));
|
|
|
- }
|
|
|
- else if (m_cmbSearchType.GetCurSel() == 2 || m_cmbSearchType.GetCurSel() == 3)
|
|
|
- {
|
|
|
- memset(&m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion , 0, sizeof(NET_VCA_INTRUSION) * MAX_INTRUSIONREGION_NUM);
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum = 0;
|
|
|
- m_dwPosNum = 0;
|
|
|
- // OnBtnPreview();
|
|
|
- // OnInitDialog();
|
|
|
- //OnBtnPreview();
|
|
|
-
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::CleanMotionPic()
|
|
|
-{
|
|
|
- memset(&(m_struSmartSearchV40.uSmartSearchCond.byMotionScope), 0, sizeof(BYTE)*64*96);
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::F_DrawFun( long lPlayHandle, HDC hDc, DWORD dwUser)
|
|
|
-{
|
|
|
- if (m_cmbSearchType.GetCurSel() == 0)
|
|
|
- {
|
|
|
- F_DrawMotion(hDc);
|
|
|
- }
|
|
|
- if (m_cmbSearchType.GetCurSel() == 1)
|
|
|
- {
|
|
|
- F_DrawLine(hDc);
|
|
|
- }
|
|
|
- else if (m_cmbSearchType.GetCurSel() == 2 || m_cmbSearchType.GetCurSel() == 3)
|
|
|
- {
|
|
|
- F_DrawPolygon(hDc);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::F_DrawMotion(HDC hDc )
|
|
|
-{
|
|
|
- CRect rect;
|
|
|
- int i = 0,j = 0;
|
|
|
- CPoint point;
|
|
|
- for (i = 0;i<18;i++)
|
|
|
- {
|
|
|
- for (j = 0;j<22;j++)
|
|
|
- {
|
|
|
- if (m_struSmartSearchV40.uSmartSearchCond.byMotionScope[i][j] == 1)
|
|
|
- {
|
|
|
- point.x = j*g_dwPrecision;
|
|
|
- point.y = i*g_dwPrecision;
|
|
|
- rect.left = point.x;
|
|
|
- rect.top = point.y;
|
|
|
- rect.right = point.x + g_dwPrecision;
|
|
|
- rect.bottom = point.y + g_dwPrecision;
|
|
|
- ::DrawEdge(hDc, &rect, BDR_SUNKENOUTER, BF_RECT);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::F_DrawLine( HDC hDc )
|
|
|
-{
|
|
|
- int iDirect = -1;
|
|
|
- m_iLineNo = m_cmbCurArea.GetCurSel();
|
|
|
- int i = m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struStart.fX;
|
|
|
- int x1 = (int)(m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struStart.fX*m_rcWnd.Width());
|
|
|
- int y1 = (int)(m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struStart.fY*m_rcWnd.Height());
|
|
|
- int x2 = (int)(m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struEnd.fX*m_rcWnd.Width());
|
|
|
- int y2 = (int)(m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struEnd.fY*m_rcWnd.Height());
|
|
|
-
|
|
|
- COLORREF color = RGB(0,255,0);
|
|
|
- SetTextColor(hDc,color);
|
|
|
-
|
|
|
- using namespace Gdiplus;
|
|
|
- Graphics graphics(hDc);
|
|
|
- Color DrawColor;
|
|
|
- DrawColor.SetValue(DrawColor.MakeARGB(50,GetRValue(color) ,GetGValue(color),GetBValue(color)));
|
|
|
-
|
|
|
- Pen pen(color, 4);
|
|
|
- pen.SetStartCap(LineCapFlat);
|
|
|
- pen.SetEndCap(LineCapFlat);
|
|
|
-
|
|
|
- CPen DrawPen;
|
|
|
- DrawPen.CreatePen(PS_SOLID, 2, color);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- HGDIOBJ pOldPen = SelectObject(hDc, DrawPen);
|
|
|
- MoveToEx(hDc, x1, y1, NULL);
|
|
|
- LineTo(hDc, x2, y2);
|
|
|
-
|
|
|
- //Draw arrow
|
|
|
- // F_DrawArrowhead(hDc, lpDrawTaversePlane);
|
|
|
- //Draw label
|
|
|
-
|
|
|
- SelectObject(hDc, pOldPen);
|
|
|
- DeleteObject(DrawPen);
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::F_DrawPolygon( HDC hDc)
|
|
|
-{
|
|
|
- using namespace Gdiplus;
|
|
|
- Graphics graphics(hDc);
|
|
|
- SolidBrush brush(Color(50, 0, 0, 0));
|
|
|
- COLORREF color = RGB(0,255,0);
|
|
|
- brush.SetColor(Color(50, GetRValue(color), GetGValue(color), GetBValue(color)));
|
|
|
-
|
|
|
- POINT point[ITC_MAX_POLYGON_POINT_NUM] = {0};
|
|
|
-
|
|
|
- CPen DrawPen;
|
|
|
- unsigned int i;
|
|
|
-
|
|
|
- DrawPen.CreatePen(PS_SOLID, 2, color);
|
|
|
- SetTextColor(hDc,color);
|
|
|
- SetBkMode(hDc, TRANSPARENT);
|
|
|
-
|
|
|
- m_iFieldNo = m_cmbIntrusionCurArea.GetCurSel();
|
|
|
- HGDIOBJ pOldPen = SelectObject(hDc, DrawPen);
|
|
|
- MoveToEx(hDc, (int)(m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[0].fX*m_rcWnd.Width()), \
|
|
|
- (int)(m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[0].fY*m_rcWnd.Height()), NULL);
|
|
|
-
|
|
|
- for(i=1; i< m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum && i < VCA_MAX_POLYGON_POINT_NUM + 1; i++)
|
|
|
- {
|
|
|
-
|
|
|
- LineTo(hDc, (int)(m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[i].fX*m_rcWnd.Width()),\
|
|
|
- (int)(m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[i].fY*m_rcWnd.Height()));
|
|
|
- //Redraw the polygon if the lines are intersectant.
|
|
|
-
|
|
|
- if (i>=MIN_PNT_NUM)
|
|
|
- {
|
|
|
- if (!m_bMouseMove[0] && (m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum <10))
|
|
|
- {
|
|
|
- if (IsCrossLine(&(m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion)))
|
|
|
- {
|
|
|
- {
|
|
|
- char szLan[128] = {0};
|
|
|
- g_StringLanType(szLan,"多边形不相邻的边有相交情况存在,请重新输入!","Edges of Polygon can be intersectant, please redraw.!");
|
|
|
- // AfxMessageBox(szLan);
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum--;
|
|
|
- m_dwPosNum = m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum;
|
|
|
- memset(&m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum], 0, sizeof(NET_VCA_POINT));
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-// if(i>=MIN_PNT_NUM && !lpDrawPolygon->bMouseMove && IsCrossLine(&lpDrawPolygon->struVcaPolygon))
|
|
|
-// {
|
|
|
-// char szLan[128] = {0};
|
|
|
-// g_StringLanType(szLan,"多边形不相邻的边有相交情况存在,请重新输入!","Edges of Polygon can be intersectant, please redraw.!");
|
|
|
-// //AfxMessageBox(szLan);
|
|
|
-// lpDrawPolygon->struVcaPolygon.dwPointNum--;
|
|
|
-// break;
|
|
|
-// }
|
|
|
- }
|
|
|
-
|
|
|
- for (i=0; i<(int)m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum ; i++)
|
|
|
- {
|
|
|
- if (i == ITC_MAX_POLYGON_POINT_NUM)
|
|
|
- {
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- point[i].x = (int)(m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[i].fX*m_rcWnd.Width());
|
|
|
- point[i].y = (int)(m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[i].fY*m_rcWnd.Height());
|
|
|
- }
|
|
|
- //After drawing the 10th point, connect it with the 1st point.
|
|
|
- if(ITC_MAX_POLYGON_POINT_NUM == i && !m_bMouseMove[0] && (m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum < 10))
|
|
|
- {
|
|
|
- if (IsValidArea(&m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion))
|
|
|
- {
|
|
|
- graphics.FillPolygon(&brush, (Point *)point, m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum);
|
|
|
-
|
|
|
- LineTo(hDc, point[0].x, point[0].y);
|
|
|
- // TextOut(hDc, point[0].x, point[0].y, lpDrawPolygon->chName, strlen(lpDrawPolygon->chName));
|
|
|
-
|
|
|
- m_bCloseIn = TRUE;
|
|
|
- }else//redraw
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- //check if the alarm region is intact
|
|
|
- }
|
|
|
- else if(m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum>2 && m_bCloseIn)
|
|
|
- {
|
|
|
- if (IsValidArea(&m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion))
|
|
|
- {
|
|
|
- graphics.FillPolygon(&brush, (Point *)point, m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum);
|
|
|
-
|
|
|
- LineTo(hDc, point[0].x, point[0].y);
|
|
|
-
|
|
|
- // TextOut(hDc, point[0].x, point[0].y, lpDrawPolygon->chName, strlen(lpDrawPolygon->chName));
|
|
|
- // F_AddLabel(hDc, AlarmArea, dwRuleID);
|
|
|
- }else
|
|
|
- {
|
|
|
- // m_bNeedRedraw[dwRuleID] = TRUE;
|
|
|
- // m_bCloseIn[dwRuleID] = FALSE;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- SelectObject(hDc, pOldPen);
|
|
|
- DeleteObject(DrawPen);
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-BOOL CDlgPlayMotion::PreDrawPolygonMsg( MSG* pMsg, CPoint &pt )
|
|
|
-{
|
|
|
- int i=0;
|
|
|
- BOOL bOneLine = TRUE,bXOneLine = TRUE,bYOneLine = TRUE;
|
|
|
-
|
|
|
- switch (pMsg->message)
|
|
|
- {
|
|
|
- case WM_LBUTTONDOWN:
|
|
|
- if ((GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0) &&
|
|
|
- PtInRect(&m_rcWnd,pt))
|
|
|
- {
|
|
|
- // if(m_bNeedRedraw)
|
|
|
- {
|
|
|
- if (m_dwPosNum > 9)
|
|
|
- {
|
|
|
- m_bCloseIn = TRUE;
|
|
|
- }
|
|
|
- if(m_bCloseIn)
|
|
|
- {
|
|
|
- m_dwPosNum = 0;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum = m_dwPosNum;
|
|
|
- memset(&m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo], 0, sizeof(NET_VCA_POLYGON));
|
|
|
- }
|
|
|
- if(m_dwPosNum > 9)
|
|
|
- {
|
|
|
- char szLan[128] = {0};
|
|
|
- g_StringLanType(szLan,"多边形顶点不能超过10个!","Apexes of polygon should less than 10");
|
|
|
- AfxMessageBox(szLan);
|
|
|
- return TRUE;
|
|
|
- }
|
|
|
- if((float)(pt.x-m_rcWnd.left)/(float)m_rcWnd.Width() <= m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_dwPosNum-1].fX+0.01 && (float)(pt.x-m_rcWnd.left)/(float)m_rcWnd.Width() >= m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_dwPosNum-1].fX-0.01\
|
|
|
- && (float)(pt.y-m_rcWnd.top)/(float)m_rcWnd.Height() <= m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_dwPosNum-1].fY+0.01 && (float)(pt.y-m_rcWnd.top)/(float)m_rcWnd.Height() >= m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_dwPosNum-1].fY-0.01)
|
|
|
- {
|
|
|
- char szLan[128] = {0};
|
|
|
- g_StringLanType(szLan, "不能连续在同一点上画区域", "Can't draw region on the point used");
|
|
|
- AfxMessageBox(szLan);
|
|
|
- return TRUE;
|
|
|
- }
|
|
|
- m_bCloseIn = FALSE;
|
|
|
- m_bMouseMovePolygon = FALSE;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_dwPosNum].fX = (float)(pt.x-m_rcWnd.left)/(float)m_rcWnd.Width();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_dwPosNum].fY = (float)(pt.y-m_rcWnd.top)/(float)m_rcWnd.Height();
|
|
|
- m_dwPosNum++;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum = m_dwPosNum;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- break;
|
|
|
- case WM_MOUSEMOVE:
|
|
|
- if ((GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0) &&
|
|
|
- PtInRect(&m_rcWnd,pt))
|
|
|
- {
|
|
|
- if(PtInRect(&m_rcWnd,pt))
|
|
|
- {
|
|
|
- if(m_dwPosNum > 9)
|
|
|
- {
|
|
|
- return TRUE;
|
|
|
- }
|
|
|
- if( !m_bCloseIn)
|
|
|
- {
|
|
|
- m_bMouseMovePolygon = TRUE;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_dwPosNum].fX = (float)(pt.x-m_rcWnd.left)/(float)m_rcWnd.Width();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_dwPosNum].fY = (float)(pt.y-m_rcWnd.top)/(float)m_rcWnd.Height();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum = m_dwPosNum+1;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
- case WM_RBUTTONDOWN:
|
|
|
- if((GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0)
|
|
|
- && PtInRect(&m_rcWnd,pt))
|
|
|
- {
|
|
|
- if(m_dwPosNum > 9)
|
|
|
- {
|
|
|
- return TRUE;
|
|
|
- }
|
|
|
- for(i=0; i<m_dwPosNum; i++)
|
|
|
- {
|
|
|
- if(m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[i].fX != m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[i+1].fX)
|
|
|
- {
|
|
|
- bXOneLine = FALSE;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- for(i=0; i<m_dwPosNum; i++)
|
|
|
- {
|
|
|
- if(m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[i].fY != m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[i+1].fY)
|
|
|
- {
|
|
|
- bYOneLine = FALSE;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- bOneLine = bXOneLine||bYOneLine;
|
|
|
- if(bOneLine)
|
|
|
- {
|
|
|
- char szlan[128] = {0};
|
|
|
- g_StringLanType(szlan, "所画点成一线,无法构成区域!","The points is on a line and can't create a rectangle!");
|
|
|
- AfxMessageBox(szlan);
|
|
|
- return TRUE;
|
|
|
- }
|
|
|
- if( !m_bCloseIn)
|
|
|
- {
|
|
|
- if(m_bMouseMovePolygon)
|
|
|
- {
|
|
|
- m_bMouseMovePolygon = FALSE;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum--;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum].fX = 0;
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.struPos[m_struSmartSearchV40.uSmartSearchCond.struIntrusionCond.struVcaIntrusion[m_iFieldNo].struRegion.dwPointNum].fY = 0;
|
|
|
- }
|
|
|
- m_bCloseIn = TRUE;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- return TRUE;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CDlgPlayMotion::PreDrawLineMsg( MSG* pMsg, CPoint &pt )
|
|
|
-{
|
|
|
- UpdateData(TRUE);
|
|
|
- CString strTemp = _T("");
|
|
|
- DWORD i=0;
|
|
|
- BOOL bOneLine = TRUE,bXOneLine = TRUE,bYOneLine = TRUE;
|
|
|
- int dwTest1 = GetAsyncKeyState(VK_LCONTROL);
|
|
|
- int dwTest2 = GetAsyncKeyState(VK_RCONTROL);
|
|
|
- switch(pMsg->message) // Message of Draw
|
|
|
- {
|
|
|
- case WM_LBUTTONDOWN:
|
|
|
- if( (m_cmbSearchType.GetCurSel() == 1) &&
|
|
|
- ((dwTest1 < 0 ) || (GetAsyncKeyState(VK_RCONTROL) < 0)))//Press CTRL to draw
|
|
|
- {
|
|
|
- if(!m_bMouseMove[0])
|
|
|
- {
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struStart.fX = (float)(pt.x-m_rcWnd.left)/(float)m_rcWnd.Width();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struStart.fY = (float)(pt.y-m_rcWnd.top)/(float)m_rcWnd.Height();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struEnd.fX = (float)(pt.x-m_rcWnd.left)/(float)m_rcWnd.Width();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struEnd.fY = (float)(pt.y-m_rcWnd.top)/(float)m_rcWnd.Height();
|
|
|
- m_bMouseMove[0] = TRUE;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if ((float)(pt.x-m_rcWnd.left)/(float)m_rcWnd.Width() <= m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struStart.fX+0.01 && (float)(pt.x-m_rcWnd.left)/(float)m_rcWnd.Width() >= m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struStart.fX-0.01\
|
|
|
- && (float)(pt.y-m_rcWnd.top)/(float)m_rcWnd.Height() <= m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struStart.fY+0.01 && (float)(pt.y-m_rcWnd.top)/(float)m_rcWnd.Height() >= m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struStart.fY-0.01)
|
|
|
- {
|
|
|
- char szLan[128] = {0};
|
|
|
- g_StringLanType(szLan, "不能连续在同一点上画区域", "Can't draw region on the point used");
|
|
|
- AfxMessageBox(szLan);
|
|
|
- return TRUE;
|
|
|
- }
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struEnd.fX = (float)(pt.x-m_rcWnd.left)/(float)m_rcWnd.Width();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struEnd.fY = (float)(pt.y-m_rcWnd.top)/(float)m_rcWnd.Height();
|
|
|
- m_bMouseMove[0] = FALSE;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case WM_MOUSEMOVE:
|
|
|
- if( (m_cmbSearchType.GetCurSel() == 1) && (GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0))
|
|
|
- {
|
|
|
- if(PtInRect(&m_rcWnd,pt))
|
|
|
- {
|
|
|
- if(m_bMouseMove[0])
|
|
|
- {
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struEnd.fX = (float)(pt.x-m_rcWnd.left)/(float)m_rcWnd.Width();
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.struTraversPlaneCond.struVcaTraversePlane[m_iLineNo].struPlaneBottom.struEnd.fY = (float)(pt.y-m_rcWnd.top)/(float)m_rcWnd.Height();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case WM_RBUTTONDOWN://Click right mouse to close the rectangle.
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- return TRUE;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CDlgPlayMotion::PreDrawMotionMsg(MSG* pMsg, CPoint &pt1)
|
|
|
-{
|
|
|
- CPoint pt(0,0);
|
|
|
- CRect rcWnd(0,0,0,0);
|
|
|
- GetDlgItem(IDC_PIC_MOTION_DETECT)->GetWindowRect(&rcWnd);
|
|
|
-
|
|
|
- GetCursorPos(&pt);
|
|
|
- int i1 = PtInRect(&rcWnd, pt);
|
|
|
- int i2 = GetAsyncKeyState(VK_LCONTROL);
|
|
|
- int i3 = GetAsyncKeyState(VK_RCONTROL);
|
|
|
- switch (pMsg->message)
|
|
|
- {
|
|
|
- case WM_LBUTTONDOWN:
|
|
|
- if (PtInRect(&rcWnd, pt) && (GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0))
|
|
|
- {
|
|
|
- for (int nMotionIndex = 0; nMotionIndex < MOTION_NUM; nMotionIndex++)
|
|
|
- {
|
|
|
- //AfxMessageBox("nim");
|
|
|
- if (m_bDrawed[nMotionIndex] == FALSE)
|
|
|
- {
|
|
|
- //Get the Drawing Rect Index
|
|
|
- m_iDrawingIndex = nMotionIndex;
|
|
|
- m_struRect[m_iDrawingIndex].fX = (float)(pt.x-rcWnd.left)/(float)rcWnd.Width();
|
|
|
- m_struRect[m_iDrawingIndex].fY = (float)(pt.y-rcWnd.top)/(float)rcWnd.Height();
|
|
|
- m_bMouseMove[m_iDrawingIndex] = TRUE;
|
|
|
- TRACE("m_struRect.fX =%f m_struRect.fY =%f\n", m_struRect[m_iDrawingIndex].fX,m_struRect[m_iDrawingIndex].fY);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case WM_LBUTTONUP:
|
|
|
- if (PtInRect(&rcWnd, pt) && (GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0))
|
|
|
- {
|
|
|
- m_bMouseMove[m_iDrawingIndex] = FALSE;
|
|
|
- m_bDrawed[m_iDrawingIndex] = TRUE;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case WM_MOUSEMOVE:
|
|
|
- if (PtInRect(&rcWnd, pt) && m_bMouseMove[m_iDrawingIndex] && (GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0))
|
|
|
- {
|
|
|
- m_struRect[m_iDrawingIndex].fWidth = (float)(pt.x-rcWnd.left)/(float)rcWnd.Width() - m_struRect[m_iDrawingIndex].fX;
|
|
|
- m_struRect[m_iDrawingIndex].fHeight = (float)(pt.y-rcWnd.top)/(float)rcWnd.Height() - m_struRect[m_iDrawingIndex].fY;
|
|
|
-
|
|
|
-
|
|
|
- TRACE("WM_MOUSEMOVE MotionIndex[%d] fWidth[%f] fHeight[%f]\n", m_iDrawingIndex, m_struRect[m_iDrawingIndex].fWidth, m_struRect[m_iDrawingIndex].fHeight);
|
|
|
-
|
|
|
- for(int i = int(m_struRect[m_iDrawingIndex].fX * 22); i <= int((m_struRect[m_iDrawingIndex].fX +m_struRect[m_iDrawingIndex].fWidth)*22); i++)
|
|
|
- {
|
|
|
- for (int j = int(m_struRect[m_iDrawingIndex].fY*18); j <= int((m_struRect[m_iDrawingIndex].fY + m_struRect[m_iDrawingIndex].fHeight)*18); j++)
|
|
|
- {
|
|
|
- m_struSmartSearchV40.uSmartSearchCond.byMotionScope[j][i] = 1;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case WM_RBUTTONDOWN:
|
|
|
- if (PtInRect(&rcWnd, pt) && (GetAsyncKeyState(VK_LCONTROL)<0 || GetAsyncKeyState(VK_RCONTROL)<0))
|
|
|
- {
|
|
|
- memset(&m_struRect, 0, sizeof(m_struRect));
|
|
|
- memset(m_struSmartSearchV40.uSmartSearchCond.byMotionScope, 0, sizeof(m_struSmartSearchV40.uSmartSearchCond.byMotionScope));
|
|
|
- for (int i = 0; i < MOTION_NUM; i++)
|
|
|
- {
|
|
|
- m_bDrawed[i] = FALSE;
|
|
|
- m_bMouseMove[i] = FALSE;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //return CDialog::PreTranslateMessage(pMsg);
|
|
|
- return TRUE;
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::OnBtnGetPtz()
|
|
|
-{
|
|
|
- // TODO: Add your control notification handler code here
|
|
|
- char szLan[1024] = {0};
|
|
|
- g_StringLanType(szLan,"请先预览", "Please RealPlay First!");
|
|
|
- if (m_lRealPlayHandle < 0)
|
|
|
- {
|
|
|
- AfxMessageBox(szLan);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- long lPlayPort = NET_DVR_GetRealPlayerIndex(m_lRealPlayHandle);
|
|
|
- LONG dwRetLen = 0;
|
|
|
- memset(&m_struPTZInfo,0,sizeof(m_struPTZInfo));
|
|
|
- BYTE*pRecvBuf = NULL;
|
|
|
- if (PlayM4_GetStreamAdditionalInfo(lPlayPort,1, NULL,&dwRetLen))
|
|
|
- {
|
|
|
- g_pMainDlg->AddLog(m_iDevIndex, OPERATION_SUCC_T, "PlayM4_GetStreamAdditionalInfo");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //g_pMainDlg->AddLog(m_iDevIndex, OPERATION_FAIL_T, "PlayM4_GetStreamAdditionalInfo");
|
|
|
-
|
|
|
-
|
|
|
- if (dwRetLen != 0)
|
|
|
- {
|
|
|
- pRecvBuf = new BYTE[dwRetLen];
|
|
|
- if (pRecvBuf != NULL)
|
|
|
- {
|
|
|
- memset(pRecvBuf,0,dwRetLen);
|
|
|
- }
|
|
|
- if (!PlayM4_GetStreamAdditionalInfo(lPlayPort,1, pRecvBuf,&dwRetLen))
|
|
|
- {
|
|
|
- g_StringLanType(szLan,"获取PTZ信息失败", "Get PTZ Info Failed!");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (pRecvBuf != NULL && dwRetLen == sizeof(m_struPTZInfo))
|
|
|
- {
|
|
|
- memcpy(&m_struPTZInfo,pRecvBuf,sizeof(m_struPTZInfo));
|
|
|
-
|
|
|
- delete[] pRecvBuf;
|
|
|
- pRecvBuf = NULL;
|
|
|
- }
|
|
|
-
|
|
|
- m_fPanPos = m_struPTZInfo.dwP/10.0;
|
|
|
- m_fTitlePos = m_struPTZInfo.dwT/10.0;
|
|
|
- m_fZoomPos = m_struPTZInfo.dwZ/10.0;
|
|
|
-
|
|
|
- UpdateData(FALSE);
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::AddHumanFeatureInfo()
|
|
|
-{
|
|
|
- m_cmbRes.ResetContent();
|
|
|
- DWORD dwIndex = 0;
|
|
|
- char szTemp[128] = {0};
|
|
|
- m_cmbRes.SetCurSel(0);
|
|
|
-
|
|
|
- dwIndex = 0;
|
|
|
-
|
|
|
-
|
|
|
- m_cmbEyeGlass.ResetContent();
|
|
|
-
|
|
|
- g_StringLanType(szTemp,"不关注","No Attention");
|
|
|
- m_cmbEyeGlass.AddString(szTemp);
|
|
|
- m_cmbEyeGlass.SetItemData(dwIndex,0xff);
|
|
|
- dwIndex++;
|
|
|
-
|
|
|
- g_StringLanType(szTemp,"不带","NO");
|
|
|
- m_cmbEyeGlass.AddString(szTemp);
|
|
|
- m_cmbEyeGlass.SetItemData(dwIndex,1);
|
|
|
- dwIndex++;
|
|
|
-
|
|
|
- g_StringLanType(szTemp,"带","YES");
|
|
|
- m_cmbEyeGlass.AddString(szTemp);
|
|
|
- m_cmbEyeGlass.SetItemData(dwIndex,2);
|
|
|
- dwIndex++;
|
|
|
-
|
|
|
-
|
|
|
- m_cmbEyeGlass.SetCurSel(0);
|
|
|
-
|
|
|
-
|
|
|
- dwIndex = 0;
|
|
|
- m_cmbSex.ResetContent();
|
|
|
-
|
|
|
- g_StringLanType(szTemp,"不关注","No Attention");
|
|
|
- m_cmbSex.AddString(szTemp);
|
|
|
- m_cmbSex.SetItemData(dwIndex,0xff);
|
|
|
- dwIndex++;
|
|
|
-
|
|
|
- g_StringLanType(szTemp,"男","MAN");
|
|
|
- m_cmbSex.AddString(szTemp);
|
|
|
- m_cmbSex.SetItemData(dwIndex,1);
|
|
|
- dwIndex++;
|
|
|
-
|
|
|
- g_StringLanType(szTemp,"女","WOMEN");
|
|
|
- m_cmbSex.AddString(szTemp);
|
|
|
- m_cmbSex.SetItemData(dwIndex,2);
|
|
|
- dwIndex++;
|
|
|
- m_cmbSex.SetCurSel(0);
|
|
|
-}
|
|
|
-
|
|
|
-void CDlgPlayMotion::AddObjectIFeatureInfo()
|
|
|
-{
|
|
|
- m_cmbColorR.ResetContent();
|
|
|
- m_cmbColorG.ResetContent();
|
|
|
- m_cmbColorB.ResetContent();
|
|
|
- DWORD dwIndex = 0;
|
|
|
- char szTemp[128] = {0};
|
|
|
-
|
|
|
- for (int i =0; i < 256;i++)
|
|
|
- {
|
|
|
- sprintf(szTemp,"%d",i);
|
|
|
- m_cmbColorR.AddString(szTemp) ;
|
|
|
- m_cmbColorG.AddString(szTemp) ;
|
|
|
- m_cmbColorB.AddString(szTemp) ;
|
|
|
- }
|
|
|
- m_cmbColorR.SetCurSel(255);
|
|
|
- m_cmbColorG.SetCurSel(0);
|
|
|
- m_cmbColorB.SetCurSel(0);
|
|
|
-
|
|
|
- m_cmbColorRate.ResetContent();
|
|
|
- for (int j = 0; j <= 100; j++)
|
|
|
- {
|
|
|
- sprintf(szTemp,"%d",j);
|
|
|
- m_cmbColorRate.AddString(szTemp) ;
|
|
|
- }
|
|
|
- m_cmbColorRate.SetCurSel(50);
|
|
|
-
|
|
|
- UpdateData(FALSE);
|
|
|
-
|
|
|
-}
|