public void ptzControl(int cmd, string puId, int channelNo, BVCU_PTZ_MOVE move, int presetNo = 0) { Channel channel = m_session.getChannel(puId, channelNo); if (channel == null) { return; } BVCU_PUCFG_PTZControl ptzCtrl = new BVCU_PUCFG_PTZControl(); ptzCtrl.bStop = (int)move; ptzCtrl.iPTZCommand = cmd; ptzCtrl.iParam3 = ptzCtrl.iParam2 = ptzCtrl.iParam1 = 0; switch (cmd) { case BVCU.BVCU_PTZ_COMMAND.LEFT: case BVCU.BVCU_PTZ_COMMAND.RIGHT: case BVCU.BVCU_PTZ_COMMAND.UP: case BVCU.BVCU_PTZ_COMMAND.DOWN: ptzCtrl.iParam2 = m_ptzSpeed; break; case BVCU.BVCU_PTZ_COMMAND.LEFTDOWN: case BVCU.BVCU_PTZ_COMMAND.LEFTTOP: case BVCU.BVCU_PTZ_COMMAND.RIGHTDOWN: case BVCU.BVCU_PTZ_COMMAND.RIGHTTOP: ptzCtrl.iParam1 = ptzCtrl.iParam2 = m_ptzSpeed; break; case BVCU.BVCU_PTZ_COMMAND.PRESET_GO: ptzCtrl.iParam1 = presetNo; ptzCtrl.iParam2 = ptzCtrl.iParam3 = m_ptzSpeed; break; case BVCU.BVCU_PTZ_COMMAND.CRUISE_GO: ptzCtrl.iParam1 = presetNo; break; default: break; } IntPtr pt = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(BVCU_PUCFG_PTZControl))); Marshal.StructureToPtr(ptzCtrl, pt, true); BVCU.ManagedLayer_CuSetPuPtzControl(m_bvcuSdkHandle, m_session.Handle, Encoding.UTF8.GetBytes(puId), channel.ptzIdx, pt); }
void buttonPtzControl(Button button, BVCU_PTZ_MOVE move) { int cmd = BVCU_PTZ_COMMAND.UP; if (button.Name.Equals("buttonPTZLeftUp")) { cmd = BVCU_PTZ_COMMAND.LEFTTOP; } else if (button.Name.Equals("buttonPTZUp")) { cmd = BVCU_PTZ_COMMAND.UP; } else if (button.Name.Equals("buttonPTZRightUp")) { cmd = BVCU_PTZ_COMMAND.RIGHTTOP; } else if (button.Name.Equals("buttonPTZRight")) { cmd = BVCU_PTZ_COMMAND.RIGHT; } else if (button.Name.Equals("buttonPTZRightDown")) { cmd = BVCU_PTZ_COMMAND.RIGHTDOWN; } else if (button.Name.Equals("buttonPTZDown")) { cmd = BVCU_PTZ_COMMAND.DOWN; } else if (button.Name.Equals("buttonPTZLeftDown")) { cmd = BVCU_PTZ_COMMAND.LEFTDOWN; } else if (button.Name.Equals("buttonPTZLeft")) { cmd = BVCU_PTZ_COMMAND.LEFT; } else if (button.Name.Equals("buttonLensUp")) { cmd = BVCU_PTZ_COMMAND.ZOOM_DEC; } else if (button.Name.Equals("buttonLensDown")) { cmd = BVCU_PTZ_COMMAND.ZOOM_INC; } else if (button.Name.Equals("buttonFocusUp")) { cmd = BVCU_PTZ_COMMAND.FOCUS_DEC; } else if (button.Name.Equals("buttonFocusDown")) { cmd = BVCU_PTZ_COMMAND.FOCUS_INC; } else if (button.Name.Equals("buttonApertureUp")) { cmd = BVCU_PTZ_COMMAND.APERTURE_DEC; } else if (button.Name.Equals("buttonApertureDown")) { cmd = BVCU_PTZ_COMMAND.APERTURE_INC; } else { return; } Dialog.OneDialog dlg = m_sdkOperator.Dialog.getDialog(m_activePanel); if (dlg != null) { m_sdkOperator.ptzControl(cmd, dlg.pu.id, dlg.channelNo, move); } }