// 云台控制 public bool PTZControl(int channel, PtzCommand command, PtzStop stop, PtzSpeed speed) { return(HCNetSDK.NET_DVR_PTZControlWithSpeed(_real_handles[channel - 1] , (uint)command , (uint)stop , (uint)speed)); }
/// <summary> /// 转动一次云台,按钮控制,彭海波增加 /// </summary> /// <param name="channelId">通道号</param> /// <param name="command">转动方向</param> private void TurnDirectionByButton(int channelId,PtzCommand command) { if (_measApp != null && _measApp.Dvr != null) { _measApp.Dvr.PTZControl(channelId, command, PtzStop.START, PtzSpeed.LEVEL4); _measApp.Dvr.PTZControl(channelId, command, PtzStop.STOP, PtzSpeed.LEVEL4); } }
// 云台控制 public bool PTZControl(int channel, PtzCommand command, PtzStop stop, PtzSpeed speed) { return HCNetSDK.NET_DVR_PTZControlWithSpeed(_real_handles[channel - 1] , (uint)command , (uint)stop , (uint)speed); }
/// <summary> /// 处理云台移动方向 /// </summary> /// <param name="sender"></param> /// <param name="channelId"></param> /// <param name="x"></param> /// <param name="y"></param> private void MovePTZ(object sender, int channelId, int x, int y) { if (_mousedown && _measApp != null && _measApp.Dvr != null) { //tbCharge.Text = Convert.ToString(Math.Atan2(y - _moveTop, x - _moveLeft) * 180 / Math.PI); double angle = Math.Atan2(y - _moveTop, x - _moveLeft) * 180 / Math.PI; if (angle < 22.5 && angle >= -22.5) { _direction = PtzCommand.PAN_RIGHT; ((Control)sender).Cursor = Cursors.PanEast; } else if (angle >= 22.5 && angle < 67.5) { _direction = PtzCommand.DOWN_RIGHT; ((Control)sender).Cursor = Cursors.PanSE; } else if (angle >= 67.5 && angle < 112.5) { _direction = PtzCommand.TILT_DOWN; ((Control)sender).Cursor = Cursors.PanSouth; } else if (angle >= 112.5 && angle < 157.5) { _direction = PtzCommand.DOWN_LEFT; ((Control)sender).Cursor = Cursors.PanSW; } else if (angle >= 157.5 || angle < -157.5) { _direction = PtzCommand.PAN_LEFT; ((Control)sender).Cursor = Cursors.PanWest; } else if (angle >= -157.5 && angle < -112.5) { _direction = PtzCommand.UP_LEFT; ((Control)sender).Cursor = Cursors.PanNW; } else if (angle >= -112.5 && angle < -67.5) { _direction = PtzCommand.TILT_UP; ((Control)sender).Cursor = Cursors.PanNorth; } else if (angle >= -67.5 && angle < -22.5) { _direction = PtzCommand.UP_RIGHT; ((Control)sender).Cursor = Cursors.PanNE; } } }