📄 mp_mobilemovecamdlg.cpp
字号:
SCODE sRet = ServerUtl_CreateDevice(m_hServerUtl, &m_hServerDev);
TCHAR szBuf[256];
TCHAR szTemp[256];
if (sRet != S_OK)
{
_stprintf(szBuf, _T("ServerUtl_CreateDevice failed with error %X, %X"), sRet, m_hServerUtl);
MessageBox(szBuf, _T("Error"), MB_OK);
return 0;
}
TSERVERUTL_DEV_PROPERTY tDevProperty;
ZeroMemory(&tDevProperty, sizeof(tDevProperty));
tDevProperty.lpszHost = m_tChannelInfo.szHostIP;
tDevProperty.lpszPassword = m_tChannelInfo.szPassword;
tDevProperty.lpszUserName = m_tChannelInfo.szUserName;
tDevProperty.dwHttpPort = m_tChannelInfo.dwHTTPPort;
tDevProperty.lpszServerType = m_tChannelInfo.szServer_Type;
sRet = ServerUtl_SetDeviceProperty(m_hServerDev, tDevProperty, FALSE);
if (sRet != S_OK)
{
ServerUtl_DeleteDevice(m_hServerDev);
m_hServerDev = NULL;
_stprintf(szTemp, _T("ServerUtl_SetDeviceProperty failed %X"), sRet);
MessageBox(szTemp);
return 0;
}
TCHAR szModelName[64];
// must get this
sRet = ServerUtl_GetDeviceModel(m_hServerDev, szModelName);
if (sRet != S_OK)
{
ServerUtl_DeleteDevice(m_hServerDev);
m_hServerDev = NULL;
_stprintf(szTemp, _T("ServerUtl_GetDeviceModel failed %X"), sRet);
MessageBox(szTemp);
return 0;
}
sRet = ServerUtl_OpenDevice(m_hServerDev, szModelName);
if (sRet != S_OK)
{
ServerUtl_DeleteDevice(m_hServerDev);
m_hServerDev = NULL;
_stprintf(szTemp, _T("ServerUtl_OpenDevice failed %X"), sRet);
MessageBox(szTemp);
return 0;
}
sRet = SrvDepResource_GetParamForServer(szModelName, &srvInfo);
if (sRet != S_OK)
{
ServerUtl_DeleteDevice(m_hServerDev);
m_hServerDev = NULL;
_stprintf(szTemp, _T("SrvDepResource_GetParamForServer failed %X"), sRet);
MessageBox(szTemp);
return 0;
}
}
return 0;
}
int CMP_MobileMoveCamDlg::CreateAvSyncChannel()
{
TCHANNELOPTION tChannelOptions;
ZeroMemory(&tChannelOptions,sizeof(tChannelOptions));
tChannelOptions.dwTopBorderSize=30;
tChannelOptions.dwBottomBorderSize=0;
tChannelOptions.dwLeftBorderSize=0;
tChannelOptions.dwRightBorderSize=0;
tChannelOptions.dwDisplayContext=(DWORD)this;
tChannelOptions.pfDisplay = AvSyhchronizerDisplayCallBack;
tChannelOptions.hDisplay=GetDlgItem(IDC_STATIC_DISPLAY)->m_hWnd;
tChannelOptions.dwVolume=5000;
tChannelOptions.bAudioOut =TRUE;
tChannelOptions.bMotionAlert =TRUE;
tChannelOptions.dwMotionRect=0x80000000 | RGB(0, 255, 255);
tChannelOptions.dwMotionRectAlert=0;
tChannelOptions.dwFlags=CH_MOTIONRECT|CH_MOTIONRECTALERT|CH_MOTION|CH_DISPLAYCONTEXT|
CH_AUDIOOUT|CH_ALLBORDER|CH_VOLUME|CH_DISPLAYCB;
SCODE sRet = AvSynchronizer_CreateChannel(m_hAvSync, &m_tChannelInfo.hChannel, tChannelOptions);
if (IS_FAIL(sRet))
{
TCHAR szBuf[256];
_stprintf(szBuf, _T("AvSynchronizer_CreateChannel failed with error code %X"), sRet);
MessageBox(szBuf, _T("Error"), MB_OK);
return -1;
}
AvSynchronizer_SetChannelOption(m_tChannelInfo.hChannel, SETCH_CLEAR_QUEUE, 2, 0);
return 0;
}
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
void CMP_MobileMoveCamDlg::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
{
if (AfxIsDRAEnabled())
{
DRA::RelayoutDialog(
AfxGetResourceHandle(),
this->m_hWnd,
DRA::GetDisplayMode() != DRA::Portrait ?
MAKEINTRESOURCE(IDD_MP_MOBILEMOVECAM_DIALOG_WIDE) :
MAKEINTRESOURCE(IDD_MP_MOBILEMOVECAM_DIALOG));
}
}
#endif
void CMP_MobileMoveCamDlg::OnBnClickedSettings()
{
CSettings dlgSetting;
dlgSetting.m_strUser = this->m_tChannelInfo.szUserName;
dlgSetting.m_strIP = this->m_tChannelInfo.szHostIP;
dlgSetting.m_strType = this->m_tChannelInfo.szServer_Type;
dlgSetting.m_strPwd = this->m_tChannelInfo.szPassword;
dlgSetting.m_strPort.Format(_T("%ld"), this->m_tChannelInfo.dwHTTPPort);
dlgSetting.m_nConnectType = m_tChannelInfo.dwProtocol - 1;
dlgSetting.m_nStreamType = 3;
if (dlgSetting.DoModal() == IDOK)
{
_tcscpy(m_tChannelInfo.szUserName, dlgSetting.m_strUser);
_tcscpy(this->m_tChannelInfo.szHostIP, dlgSetting.m_strIP);
_tcscpy(this->m_tChannelInfo.szServer_Type, dlgSetting.m_strType);
_tcscpy(this->m_tChannelInfo.szPassword, dlgSetting.m_strPwd);
this->m_tChannelInfo.dwHTTPPort = _ttol(dlgSetting.m_strPort);
m_tChannelInfo.dwProtocol = dlgSetting.m_nConnectType + 1;
m_tChannelInfo.dwMediaType = dlgSetting.m_nStreamType;
}
}
void CMP_MobileMoveCamDlg::OnButtonConnect()
{
SCODE scRet;
TCHAR szBuf[MAX_PATH];
if (m_tChannelInfo.chStatus == channelStopped)
{
m_bUserStop = FALSE;
TDataBrokerConnectionOptions ConnectionOptions;
ZeroMemory(&ConnectionOptions,sizeof(ConnectionOptions));
ConnectionOptions.dwStatusContext= (DWORD)this;
ConnectionOptions.dwAVContext= (DWORD)this;
ConnectionOptions.pzIPAddr= m_tChannelInfo.szHostIP;
ConnectionOptions.pzUID= m_tChannelInfo.szUserName;
ConnectionOptions.pzPWD= m_tChannelInfo.szPassword;
DWORD dwProtocol = m_tChannelInfo.dwProtocol - 1;
if (_tcscmp(m_tChannelInfo.szServer_Type, _T("IP31x1-TLFN")) == 0)
{
dwProtocol = 1;
}
else if (m_tChannelInfo.szServer_Type[2] == _T('2'))
{
dwProtocol = 2;
ConnectionOptions.dwQuality = 3;
_tcscpy(ConnectionOptions.zVSize, _T("3"));
ConnectionOptions.dwFlags |= eConOptVSize | eConOptQuality;
}
switch (dwProtocol)
{
case 0:
ConnectionOptions.dwProtocolType=eptTCP;
break;
case 1:
ConnectionOptions.dwProtocolType = eptUDP;
break;
case 2:
ConnectionOptions.dwProtocolType = eptHTTP;
break;
}
ConnectionOptions.dwMediaType = m_tChannelInfo.dwMediaType;
ConnectionOptions.wHttpPort= (WORD) m_tChannelInfo.dwHTTPPort;
ConnectionOptions.wCam= 1;
ConnectionOptions.pzServerType= m_tChannelInfo.szServer_Type;
ConnectionOptions.dwFlags |= eConOptProtocolAndMediaType|eConOptCam|
eConOptHttpPort|eConOptStatusContext|eConOptAVContext;
scRet = DataBroker_SetConnectionOptions(m_tChannelInfo.hDataConn,
&ConnectionOptions);
if (scRet != S_OK)
{
_stprintf(szBuf, _T("DataBroker_SetConnectionOptions error %X"), scRet);
MessageBox(szBuf);
return;
}
scRet = DataBroker_Connect(m_tChannelInfo.hDataConn);
if (scRet != S_OK)
{
_stprintf(szBuf, _T("DataBroker_Connect error %X"), scRet);
MessageBox(szBuf);
return;
}
m_tChannelInfo.chStatus = channelConnecting;
scRet = AvSynchronizer_StartChannel(m_tChannelInfo.hChannel, DRAW_CONNECTING);
if (IS_FAIL(scRet))
{
_stprintf(szBuf, _T("AvSynchronizer_StartChannel failed %X"), scRet);
MessageBox(szBuf, _T("Error"), MB_OK);
return;
}
GetDlgItem(IDC_BUTTON_CONNECT)->SetWindowText(_T("Disconnect"));
}
else if (m_tChannelInfo.chStatus != channelDisconnecting)
{
//ChangeCameraCtrlState(FALSE);
m_bUserStop = TRUE;
m_tChannelInfo.chStatus = channelDisconnecting;
scRet = DataBroker_Disconnect(m_tChannelInfo.hDataConn);
m_tChannelInfo.dwReconnCnt = 0;
AvSynchronizer_StopChannel(m_tChannelInfo.hChannel);
TUPDATECHANNELOPTION tUpdateChOpt;
tUpdateChOpt.dwFlags = UPCH_SHOW_BMP;
AvSynchronizer_UpdateChannelSettings(m_tChannelInfo.hChannel, tUpdateChOpt);
GetDlgItem(IDC_BUTTON_CONNECT)->SetWindowText(_T("Connect"));
}
}
void CMP_MobileMoveCamDlg::OnButtonLeft()
{
if (!m_hServerDev)
return;
// send the command
TCHAR szBuf[256];
SCODE sRet = ServerUtl_SendPTZCommand(m_hServerDev, 0, SERVERUTL_PTZ_MOVE_LEFT, szBuf, FALSE);
if (sRet != S_OK)
{
_stprintf(szBuf, _T("ServerUtl_SendPTZCommand failed with error %X"), sRet);
MessageBox(szBuf, _T("Error"), MB_OK);
}
}
void CMP_MobileMoveCamDlg::OnButtonDown()
{
if (!m_hServerDev)
return;
// send the command
TCHAR szBuf[256];
SCODE sRet = ServerUtl_SendPTZCommand(m_hServerDev, 0, SERVERUTL_PTZ_MOVE_DOWN, szBuf, FALSE);
if (sRet != S_OK)
{
_stprintf(szBuf, _T("ServerUtl_SendPTZCommand failed with error %X"), sRet);
MessageBox(szBuf, _T("Error"), MB_OK);
}
}
void CMP_MobileMoveCamDlg::OnButtonHome()
{
if (!m_hServerDev)
return;
// send the command
TCHAR szBuf[256];
SCODE sRet = ServerUtl_SendPTZCommand(m_hServerDev, 0, SERVERUTL_PTZ_MOVE_HOME, szBuf, FALSE);
if (sRet != S_OK)
{
_stprintf(szBuf, _T("ServerUtl_SendPTZCommand failed with error %X"), sRet);
MessageBox(szBuf, _T("Error"), MB_OK);
}
}
void CMP_MobileMoveCamDlg::OnButtonUp()
{
if (!m_hServerDev)
return;
// send the command
TCHAR szBuf[256];
SCODE sRet = ServerUtl_SendPTZCommand(m_hServerDev, 0, SERVERUTL_PTZ_MOVE_UP, szBuf, FALSE);
if (sRet != S_OK)
{
_stprintf(szBuf, _T("ServerUtl_SendPTZCommand failed with error %X"), sRet);
MessageBox(szBuf, _T("Error"), MB_OK);
}
}
void CMP_MobileMoveCamDlg::OnButtonRight()
{
if (!m_hServerDev)
return;
// send the command
TCHAR szBuf[256];
SCODE sRet = ServerUtl_SendPTZCommand(m_hServerDev, 0, SERVERUTL_PTZ_MOVE_RIGHT, szBuf, FALSE);
if (sRet != S_OK)
{
_stprintf(szBuf, _T("ServerUtl_SendPTZCommand failed with error %X"), sRet);
MessageBox(szBuf, _T("Error"), MB_OK);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -