今天没事看到家里有一款海康的网络摄像头,这个摄像头支持上下左右旋转,另外还可以镜头远近缩放。刚好家里又有一款摇杆和一个北通的手柄。想着写一个软件实现用手柄和摇杆控制摄像头运动,

还能将实时画面显示在软件上,最后做出来的效果还是不错的。大概介绍一下这个软件的开发情况,先附上资料。

资料下载:

链接:https://pan.baidu.com/s/1awF_PagiqMkbfHJjwvb11g
提取码:1234

开发软件:qt5.14.2

开发语言:c++

测试摇杆:图马斯特(其它xbox摇杆也可以)  链接:http://support.thrustmaster.cn/zh/product/t-flight-hotas-one-zh

测试手柄:北通阿修罗2-无线版

摄像头:海康网络摄像头

效果展示:

  • 软件主界面

  

视频展示:

软件介绍:

  1.软件右边是摇杆或手柄键位拨动时读出的数值。

  2.中间部分是手动用鼠标控制摄像头运动,或登录参数设置。

  3.左边实时画面。

部分代码:

手柄类:

class joystick:public QObject
{
public:joystick()=delete;joystick(QVector<QPushButton*>&btn,QTextEdit *edit,QProgressBar *rpos,QProgressBar *zpos);~joystick();void Joyinit();void joyInfoUpdate();void joyBtnStateClear(void);bool readJoyActInfo(JOYINFOEX &info);
private:JOYINFOEX now_act;QVector<QPushButton*>joyBtnList;QTextEdit *textEdit;QProgressBar *joy_dwRpos;QProgressBar *joy_dwZpos;
};#endif // joystick
void joystick::joyInfoUpdate()
{QString str;now_act.dwSize = sizeof(typeof(joyinfoex_tag));now_act.dwFlags = (int)JOY_RETURNBUTTONS;qJoyGetPosEx(JSX, &now_act);str.append("dwSize=").append(QString::number(now_act.dwSize)).append("\n");str.append("dwFlags=").append(QString::number(now_act.dwFlags)).append("\n");str.append("dwXpos=").append(QString::number(now_act.dwXpos)).append("\n");str.append("dwYpos=").append(QString::number(now_act.dwYpos)).append("\n");str.append("dwZpos=").append(QString::number(now_act.dwZpos)).append("\n");str.append("dwRpos=").append(QString::number(now_act.dwRpos)).append("\n");str.append("dwUpos=").append(QString::number(now_act.dwUpos)).append("\n");str.append("dwVpos=").append(QString::number(now_act.dwVpos)).append("\n");str.append("dwButtons=").append(QString::number(now_act.dwButtons)).append("\n");str.append("dwButtonNumber=").append(QString::number(now_act.dwButtonNumber)).append("\n");str.append("dwPOV=").append(QString::number(now_act.dwPOV)).append("\n");str.append("dwReserved1=").append(QString::number(now_act.dwReserved1)).append("\n");str.append("dwReserved2=").append(QString::number(now_act.dwReserved2)).append("\n");textEdit->setText(str);joy_dwRpos->setValue(static_cast<int>(now_act.dwRpos*100/65535));joy_dwZpos->setValue(static_cast<int>((65535-now_act.dwZpos)*100/65535));for(int i=0;i<joyBtnList.size();i++){if(now_act.dwButtons & 0x01 << i){joyBtnList[i]->setStyleSheet(jBstate_ON);}else{joyBtnList[i]->setStyleSheet(jBstate_OF);}}
}

海康部分代码

class camera_dialog : public QDialog
{Q_OBJECT
public:explicit camera_dialog(QWidget *parent = nullptr);~camera_dialog();void CurDataUpdate();long play(long userID, HWND hWnd, NET_DVR_PREVIEWINFO struPlayInfo);void closeplay(long IRealPlayHandle);void StartRecord();void StopRecord();void Net_DevTimeConfig();void on_devPlayBtn_clicked();
public slots:void CameraInit();void on_devLoginBtn_clicked();void on_SetCtrlDwSpeed(DWORD value);void on_devCloseBtn_clicked();void on_RecordBtn_clicked();void on_Camera_Up_pressed();void on_Camera_Down_pressed();void on_Camera_Left_pressed();void on_Camera_Right_pressed();void on_Camera_Stop_clicked();void on_Zoom_Out_pressed();void on_Zoom_In_pressed();void on_Focus_Near_pressed();void on_Focus_Far_pressed();void Dev_Ctrl_PTZ( DWORD dwPTZCommand,DWORD dwStop,DWORD dwSpeed);private:Ui::camera_dialog *ui;long userID;long IRealPlayHandle;QTimer *DataTimer;QString IP;QString Port;QString User;QString PassWord;// DWORD dwStop;DWORD dwSpeed=7;long m_lPlayHandle;BOOL m_bIsRecording;NET_DVR_DEVICEINFO_V30 DeviceInfoTmp;
};
  • 摇杆控制摄像头运动

  • 手柄控制摄像头运动

  

用摇杆或北通手柄控制海康摄像头相关推荐

  1. 海康摄像头的二次开发(java)

    海康摄像头的二次开发(java) 我第一次接触海康摄像头的二次开发的项目,一开始的时候摸不清套路,走了不少弯路,现在准备把我的一些经验留下来,让大家参考一下. 1.首先到海康的官网下载设备网络SDK: ...

  2. 两个rtsp同时抓流_海康摄像头同时添加到两台海康硬盘录像机上

    相信大家都有这种经历,我我为啥要多买两个摄像头呀,我直接一个摄像头添加到两台硬盘录像机上不香吗? 海康摄像头一般不建议同时添加到超过三台录像机,由于取流限制~ 那么如何同时添加到两台海康录像机上呢? ...

  3. 海康摄像头取、录像机RTSP视频流的字串格式

    海康摄像头取.录像机RTSP视频流的字串格式 主码流 rtsp://IP:554/h264/ch1/main/av_stream rtsp://IP:554/ISAPI/streaming/chann ...

  4. php对接海康视频教程_EasyNVR无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页播放...

    原标题:EasyNVR无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页播放 市场上常见的海康.大华.宇视等网络摄像头只要支持RTSP协议,都可以接入到EasyNVR中,今天主要给大家分 ...

  5. linux开机自动启动(自启动)脚本、程序(初始化脚本)(海康摄像头自启动程序)

    文章目录 原 20220225 寻找海康摄像头armv7l自启动脚本 /etc/init.d/rcS /etc/init.d/rc.local /etc/profile /usr/etc/rc.loc ...

  6. onvif协议_大华的录像机添加海康摄像头,使用了onvif协议,为啥也添加不进去?...

    大华的录像机添加海康摄像头在监控项目中经常会遇到,有很多的项目我们使用并不是同一个厂家的设备. 前段时间我们弱电vip技术2群中讨论到一个问题,关于大华的录像机添加海康摄像头为什么总是不成功,很多情况 ...

  7. 海康摄像头恢复出厂监控录像视频恢复

    "你好,我这边海康的摄像头恢复出厂了,能恢复前段时间的一些视频数据么?" 海康威视作为中国领先的监控产品供应商之一,海康的监控录像机使用极其广泛,而监控通过摄像头的录制将数据存储到 ...

  8. 海康摄像头忘记密码,自己如何快速重置密码

    海康摄像头,自助重置密码. 一.摄像头忘记密码情况 在项目工程中,有各种各样的原因,导致摄像头密码忘记,有的时安装时安装工程商没有把密码留下来,有的是客户自己设置了密码后忘记了密码,还有的是客户买的新 ...

  9. 浏览器显示海康摄像头实时预览画面纯前端解决方案

    浏览器显示海康摄像头实时预览画面纯前端解决方案 将海康设备的 rtsp 协议视频流通过 ffmpeg 转码为 flv 实时视频流,并将实时视频流通过 express 服务生成 http 长链接或 ws ...

最新文章

  1. NetTiers中的一些内置对象及关系
  2. SAP Hybris install.bat工作原理分析
  3. php获取其他php文件变量值,php 引入其他文件中的变量
  4. mysql中编写匿名块_Oracle数据库之Oracle_PL/SQL(1) 匿名块
  5. 计算机相关科幻小说,科幻小说家和计算机科学家总是用人工智能来迷惑我们,计算机可以...
  6. es集群节点数和分片数关系_ES数据插入和查询流程是怎么样的?
  7. 实战 | F1060路由模式典型组网配置案例(静态路由)
  8. ELK下es的分词器analyzer
  9. php采集过滤内容,PHP采集利器:根据开始字符串和结束字符串截取需要的采集内容数据...
  10. 门禁卡读写器—把手机秒变门禁卡与自己复制门禁卡
  11. 跨境电商o2o模式的表现形式有哪些?
  12. 已斥资250亿!东京奥运会的AI黑科技能否如期亮相?
  13. wordpress友联_WordPress 友情链接页面终极版
  14. 跨平台应用开发进阶(十五) :uni-app实现全项目字体替换
  15. location选择收货地址
  16. 在Golang里如何实现结构体成员指针到结构体自身指针的转换
  17. Java的优缺点是什么?具体是怎样运行的?
  18. 华为荣耀手机复制卡号,开启NFV功能。说白了就是将原本的卡的信息复制到手机上,以后不用带卡,带手机就行了。
  19. Sublime Text 3安装及常用插件安装
  20. 最新Java面试知识点

热门文章

  1. 调试Alinx的AXU4EV-P MPSoCs踩坑记录
  2. 如何查看计算机系统管理日志,怎么查看电脑系统日志
  3. 正宗港行诺基亚N70的极速鉴别方法
  4. Ubuntu English environment使用中文输入法SCIM
  5. 报数游戏(约瑟夫问题)
  6. ColorCube配色神器
  7. 论文查重的几个小问题
  8. 产业互联网时代新零售如何成长?
  9. PostgreSQL安装(zip解压方式)
  10. 重建“巴别塔”,Skype推出Windows10实时语音翻译预览版