(武警士官学校,杭州310000)
摘要:为有效提升武警部队在处置大规模群体事件中的处置能力,增强对指挥员、战斗员的保护。本文开展了无人车非致命性武器平台的研究,本文的主要内容是运用了QtCreator设计了操控台的主控程序,利用动态链接库winmm.dll来接收操纵杆的输入,最终实现了一体化操纵杆对平台多部件的可视化集成控制。
1.引言
为了实现人机交互的主控程序,本文采用QTCreator编写。服务器端通过套接字Socket监听是否有客户端的请求,调用摄像头驱动模块获取实时视频发送给客户端。客户端的人机交互程序显示摄像头传输过来的视频,并且通过按钮给武器平台端发送武器或相机云台控制命令。由于后面的操纵杆的编程需要用到Windows的DirectX,所以本程序在Windows环境下编写运行。
2.操控台程序编写
本文的客户端程序需要完成视频接收与显示和控制命令发送的功能。
要完成以上功能,本文建立了几个源文件,其源文件包括:main.cpp、controlthread.cpp、socketthread.cpp和mainwindow.cpp。
2.1人机交互界面介绍
左边主要是视频的显示和相机的前后左右转动的控制。右边是武器控制部分,主要包括武器的开关、武器的发射方式、升降机控制和武器射角控制(由武器的云台实现)。本操控台程序拥有界面友好,操作简便的特点[1]。
2.2主控命令通信代码
ControlThread.cpp的作用是利用基于TCP协议的Socket实现主控命令的通信,流程图如图1所示。
图1主控命令通信流程图
程序具体代码如下:
#include"controlthread.h"
#include"command.h"
{
…………//由于篇幅所限,故省略
}
2.3视频通信代码
picturethread.cpp的作用是利用UDP协议实现视频数据的接收,主要利用了udp_socket->readDatagram()函数。
程序代码如下:
include"picturethread.h"
#include"command.h"
{
………………
}
2.4交互窗口代码
mainwiondow.cpp的作用是通过调用以上两个子程序实现视频接收和显示,以及用按钮实现命令的发送。它给出了主要的人机交互界面,具体程序如下:
#include<stdio.h>#include"mainwindow.h"#include"ui_mainwindow.h"#include"QDataStream"#include<QPainter>#include"command.h"
{
…………
}
3操纵杆的使用
本文使用的是一款游戏操纵杆,由于这款操纵杆只提供Windows下驱动程序,所以整个交互界面都在Windows系统下设计。
操纵杆与鼠标、键盘类似,是电脑外部输入设备的一种。本文中操控台为Windows系统,运用动态链接库winmm.dll来实现对操纵杆的读取。winmm.dll是Windows自带的多媒体相关应用程序接口,可以直接调用,大大减少了开发的周期[2]。
4本章小结
本章在Windows操作系统下,运用QTCreator编写了操控台的主控程序。设计了人机交互界面,它由以下几个方面组成:主控命令通信代码、视频通信代码和交互窗口代码。本章中还利用Windows系统的动态链接库winmm.dll来接收操纵杆的输入。
参考文献
[1]李艳明.基于Qt跨平台的人机交互界面的研究和应用[D]:[硕士学位论文].重庆:重庆大学,2007.
[2]房泽平,段建民.基于VB的CyborgX飞行摇杆数据采集研究[J].中原工学院学报,2014(1):18-21.
作者简介:袁正,男(1989年10月—),江苏高邮人,硕士研究生,现任武警士官学校非致命武器与警用装备器材教研室助教,主要研究防护装备。
项德海,男,硕士研究生,现任武警士官,(1989年9月—),湖北黄冈人,学校非致命武器与警用装备器材教研室助教,主要研究装备信息化方向。