|
|
|
#include "commandwidget.h"
|
|
|
|
|
|
|
|
#include "ui_commandwidget.h"
|
|
|
|
#include <QIntValidator>
|
|
|
|
#include "utils/switchbutton.h"
|
|
|
|
|
|
|
|
CommandWidget::CommandWidget(QWidget *parent)
|
|
|
|
: QWidget(parent), ui(new Ui::CommandWidget) {
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
|
|
|
m_commandUdpSocket = new QUdpSocket(this);
|
|
|
|
// 将套接字绑定到指定端口
|
|
|
|
if (m_commandUdpSocket->bind(QHostAddress::Any, 1200)) {
|
|
|
|
qDebug() << "UDP 套接字已绑定到端口 1200";
|
|
|
|
} else {
|
|
|
|
qDebug() << "绑定 UDP 套接字失败";
|
|
|
|
}
|
|
|
|
|
|
|
|
//创建自定义套接字
|
|
|
|
m_CUdpSocket = new CUdpSocket(this);
|
|
|
|
initmUdpParam();
|
|
|
|
}
|
|
|
|
|
|
|
|
CommandWidget::~CommandWidget() {
|
|
|
|
delete ui;
|
|
|
|
if (m_commandUdpSocket) m_commandUdpSocket->deleteLater();
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::receiveMessageSlots(QString message, int type) {
|
|
|
|
emit sendErrorMessage(message, type);
|
|
|
|
}
|
|
|
|
|
|
|
|
unsigned char CommandWidget::getCrc(quint8 *data, quint8 length) {
|
|
|
|
quint16 crc = 0;
|
|
|
|
int i = 0;
|
|
|
|
while (length-- > 0) {
|
|
|
|
crc = CRC8TAB[crc ^ (data[i] & 0x00FF)];
|
|
|
|
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return crc & 0x00ff;
|
|
|
|
}
|
|
|
|
|
|
|
|
ProtocalKB CommandWidget::EncodeCommandCmd(quint8 cmd) {
|
|
|
|
std::unique_ptr<ProtocalKB> pBuff = std::make_unique<ProtocalKB>();
|
|
|
|
pBuff->head[0] = PROTOCOL_HEAD_0;
|
|
|
|
pBuff->head[1] = PROTOCOL_HEAD_1;
|
|
|
|
pBuff->reserved = PROTOCOL_RESERVED;
|
|
|
|
pBuff->data[0] = cmd;
|
|
|
|
pBuff->data[1] = cmd;
|
|
|
|
pBuff->data[2] = cmd;
|
|
|
|
pBuff->curPage = PROTOCOL_CUR_PAGE;
|
|
|
|
quint8 *ptr = reinterpret_cast<quint8 *>(&pBuff);
|
|
|
|
pBuff->CHKSUM = getCrc(ptr, sizeof(pBuff) - sizeof(pBuff->CHKSUM));
|
|
|
|
|
|
|
|
return *pBuff;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool CommandWidget::writeBufferToClient(const QByteArray &data) {
|
|
|
|
// 目标地址和端口
|
|
|
|
QHostAddress destination("172.10.1.216"); // 目标 IP 地址
|
|
|
|
quint16 port = 9003; // 目标端口
|
|
|
|
|
|
|
|
// 发送数据
|
|
|
|
qint64 bytesSent =
|
|
|
|
m_commandUdpSocket->writeDatagram(data, destination, port);
|
|
|
|
if (bytesSent == -1) {
|
|
|
|
qDebug() << "发送失败:" << m_commandUdpSocket->errorString();
|
|
|
|
return false;
|
|
|
|
} else {
|
|
|
|
qDebug() << "发送成功,字节数:" << bytesSent;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::buttonResponse(quint8 cmd) {
|
|
|
|
ProtocalKB packet = EncodeCommandCmd(cmd);
|
|
|
|
// 将 ProtocalKB 结构体转换为 QByteArray
|
|
|
|
QByteArray data;
|
|
|
|
data.append(reinterpret_cast<const char *>(&packet), sizeof(ProtocalKB));
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
|
|
writeBufferToClient(data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::receiveUavTypeIndex(int index)
|
|
|
|
{
|
|
|
|
switch (index)
|
|
|
|
{
|
|
|
|
case FP98:
|
|
|
|
ui->cmdStackedWidget->setCurrentWidget(ui->stackedWidgetPage1);
|
|
|
|
break;
|
|
|
|
case MEDICAL_UNIVERSITY:
|
|
|
|
ui->cmdStackedWidget->setCurrentWidget(ui->stackedWidgePage2);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_clicked() {
|
|
|
|
buttonResponse(0x75);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_2_clicked() {
|
|
|
|
buttonResponse(0x76);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_5_clicked() {
|
|
|
|
buttonResponse(0x7D);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_6_clicked() {
|
|
|
|
buttonResponse(0x7C);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_10_clicked() {
|
|
|
|
buttonResponse(0x69);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_9_clicked() {
|
|
|
|
buttonResponse(0x6A);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_4_clicked() {
|
|
|
|
buttonResponse(0x77);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_3_clicked() {
|
|
|
|
buttonResponse(0x78);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_14_clicked() {
|
|
|
|
buttonResponse(0x79);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_13_clicked() {
|
|
|
|
buttonResponse(0xC6);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_17_clicked() {
|
|
|
|
buttonResponse(0x66);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_8_clicked() {
|
|
|
|
buttonResponse(0x67);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_7_clicked() {
|
|
|
|
buttonResponse(0x68);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_12_clicked() {
|
|
|
|
buttonResponse(0x7B);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_11_clicked() {
|
|
|
|
buttonResponse(0x7A);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_16_clicked() {
|
|
|
|
buttonResponse(0xC8);
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_15_clicked() {
|
|
|
|
buttonResponse(0xC9);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/** 武汉天进吊舱 */
|
|
|
|
void CommandWidget::on_pushButton_left_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7000"),
|
|
|
|
m_protocolPodTJ.cmdLeft(ui->cmdSlider->value())));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_left_released()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7000"),
|
|
|
|
QByteArray::fromHex("00000000")));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_right_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7000"),
|
|
|
|
m_protocolPodTJ.cmdRight(ui->cmdSlider->value())));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_right_released()
|
|
|
|
{
|
|
|
|
on_pushButton_left_released();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_up_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7000"),
|
|
|
|
m_protocolPodTJ.cmdUp(ui->cmdSlider->value())));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_up_released()
|
|
|
|
{
|
|
|
|
on_pushButton_left_released();
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_down_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7000"),
|
|
|
|
m_protocolPodTJ.cmdDown(ui->cmdSlider->value())));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_down_released()
|
|
|
|
{
|
|
|
|
on_pushButton_left_released();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_center_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7100")));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_guid_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7200"),
|
|
|
|
m_protocolPodTJ.digitalGuid(ui->guidLineEdit->text().toInt(), ui->poseLineEdit->text().toInt())));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_pose_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7C00"),
|
|
|
|
m_protocolPodTJ.digitalGuid(ui->guidLineEdit->text().toInt(), ui->poseLineEdit->text().toInt())));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_directL_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7A00")));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_directS_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7B00")));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_lookDown_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7300")));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_packUp_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7400")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_scanning_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7900")));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_close_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7500")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_comboBox1_activated(int index)
|
|
|
|
{
|
|
|
|
if (index >= 0)
|
|
|
|
{
|
|
|
|
QByteArray data = ui->comboBox1->currentData().toByteArray();
|
|
|
|
//qDebug() << data.toHex();
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("2300"),data));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_comboBox2_activated(int index)
|
|
|
|
{
|
|
|
|
if (index >= 0)
|
|
|
|
{
|
|
|
|
QByteArray data = ui->comboBox2->currentData().toByteArray();
|
|
|
|
//qDebug() << data.toHex();
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("2500"), data));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_videoSwitch_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("3100")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_video_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("3300")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_photo_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("3200")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_zoomp_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4500"),
|
|
|
|
m_protocolPodTJ.cmdZoom(0x01,ui->comboBox3->currentIndex())));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_zoomp_released()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4500")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_zoomd_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4500"),
|
|
|
|
m_protocolPodTJ.cmdZoom(0x02, ui->comboBox3->currentIndex())));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_zoomd_released()
|
|
|
|
{
|
|
|
|
on_pushButton_zoomp_released();
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_focusP_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4500"),
|
|
|
|
m_protocolPodTJ.cmdZoom(0x03, ui->comboBox3->currentIndex())));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_focusP_released()
|
|
|
|
{
|
|
|
|
on_pushButton_zoomp_released();
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_focusD_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4500"),
|
|
|
|
m_protocolPodTJ.cmdZoom(0x04, ui->comboBox3->currentIndex())));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_focusD_released()
|
|
|
|
{
|
|
|
|
on_pushButton_zoomp_released();
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_auto_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4500"),
|
|
|
|
m_protocolPodTJ.cmdZoom(0x05, 0x00)));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_auto_released()
|
|
|
|
{
|
|
|
|
on_pushButton_zoomp_released();
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_contrastP_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4100"),
|
|
|
|
QByteArray::fromHex("01010000")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_contrastD_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4100"),
|
|
|
|
QByteArray::fromHex("01020000")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_lightP_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4100"),
|
|
|
|
QByteArray::fromHex("02010000")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_lightD_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4100"),
|
|
|
|
QByteArray::fromHex("02020000")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_comboBox4_activated(int index)
|
|
|
|
{
|
|
|
|
if (index >= 0)
|
|
|
|
{
|
|
|
|
QByteArray data = ui->comboBox4->currentData().toByteArray();
|
|
|
|
//qDebug() << data.toHex();
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4A00"), data));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_zoomp_2_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("5000"),
|
|
|
|
QByteArray::fromHex("0F000000")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_zoomp_2_released()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("5000"),
|
|
|
|
QByteArray::fromHex("00000000")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_zoomd_2_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("5000"),
|
|
|
|
QByteArray::fromHex("10000000")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_zoomd_2_released()
|
|
|
|
{
|
|
|
|
on_pushButton_zoomp_2_released();
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_contrastP_2_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("5A00")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_contrastD_2_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("5A00"),
|
|
|
|
QByteArray::fromHex("01000000")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_color_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("5300")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_comboBox5_activated(int index)
|
|
|
|
{
|
|
|
|
if (index >= 0)
|
|
|
|
{
|
|
|
|
QByteArray data = ui->comboBox5->currentData().toByteArray();
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("5300"), data));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_distance_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("3D00")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_distanceC_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("3E00"),
|
|
|
|
m_protocolPodTJ.cmdLaser(ui->comboBox6->currentIndex() + 1)));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_pushButton_distanceS_pressed()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("3F00")));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::on_cmdLineEdit_textChanged(const QString text)
|
|
|
|
{
|
|
|
|
qDebug() << text;
|
|
|
|
if (text.toInt() < 10)//数据小于10不响应
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
ui->cmdSlider->setMaximum(text.toInt());
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::setPodIPConfig(NetworkIPStruct networkIP, bool isConnect)
|
|
|
|
{
|
|
|
|
qDebug() << "ip设置槽函数调用了";
|
|
|
|
|
|
|
|
if (!isConnect)
|
|
|
|
{
|
|
|
|
m_CUdpSocket->close();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (m_CUdpSocket->close())
|
|
|
|
{
|
|
|
|
if (!m_CUdpSocket->bind(networkIP.localIP, networkIP.localPort))
|
|
|
|
{
|
|
|
|
qDebug() << "端口号绑定失败";
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!m_CUdpSocket->joinMulticast())
|
|
|
|
{
|
|
|
|
qDebug() << "加入组播失败";
|
|
|
|
}
|
|
|
|
|
|
|
|
//绑定目标IP Port
|
|
|
|
m_CUdpSocket->setTargetInfo(networkIP.remoteIP, networkIP.remotePort);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::setMoveParm(QPointF size)
|
|
|
|
{
|
|
|
|
int x = std::clamp(static_cast<int>(size.x() / 10), -60, 60);
|
|
|
|
int y = std::clamp(static_cast<int>(-size.y() / 10), -60, 60);
|
|
|
|
qDebug() << "缩减之后的屏幕滑动参数==>" << "x:" << x << "y:" << y;
|
|
|
|
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("7000"),
|
|
|
|
m_protocolPodTJ.cmdServo(x, y)));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CommandWidget::stopServo()
|
|
|
|
{
|
|
|
|
on_pushButton_left_released();
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::setTargetTracking(double dir, double pitch)
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("3A00"),
|
|
|
|
m_protocolPodTJ.targetTracking(static_cast<int>(std::round(dir)), static_cast<int>(std::round(pitch)))));
|
|
|
|
}
|
|
|
|
|
|
|
|
void CommandWidget::setStopTracking()
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("3B00")));
|
|
|
|
}
|
|
|
|
|
|
|
|
/***武汉天进吊舱控制***/
|
|
|
|
void CommandWidget::initmUdpParam()
|
|
|
|
{
|
|
|
|
QIntValidator* validator = new QIntValidator(0, 100, this);
|
|
|
|
ui->cmdLineEdit->setValidator(validator);
|
|
|
|
ui->cmdLineEdit->setText("40");
|
|
|
|
ui->cmdSlider->setValue(20);
|
|
|
|
|
|
|
|
//AI开关
|
|
|
|
connect(ui->switchButton1, &WBSwitchButton::sigSwitchChanged, this, [=](bool onOroff){
|
|
|
|
if (onOroff) //开关打开
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("9100"),
|
|
|
|
QByteArray::fromHex("01000000")));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("9100")));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
ui->comboBox1->addItem("16 * 16", QByteArray::fromHex("01000000"));
|
|
|
|
ui->comboBox1->addItem("32 * 32", QByteArray::fromHex("02000000"));
|
|
|
|
ui->comboBox1->addItem("64 * 64", QByteArray::fromHex("03000000"));
|
|
|
|
ui->comboBox1->addItem("128 * 128", QByteArray::fromHex("04000000"));
|
|
|
|
|
|
|
|
ui->comboBox2->addItem("红外", QByteArray::fromHex("00000000"));
|
|
|
|
ui->comboBox2->addItem("可见光", QByteArray::fromHex("01000000"));
|
|
|
|
ui->comboBox2->addItem("上下分屏", QByteArray::fromHex("02000000"));
|
|
|
|
ui->comboBox2->addItem("画中画1", QByteArray::fromHex("03000000"));
|
|
|
|
ui->comboBox2->addItem("画中画2", QByteArray::fromHex("04000000"));
|
|
|
|
ui->comboBox2->addItem("左右分屏", QByteArray::fromHex("05000000"));
|
|
|
|
|
|
|
|
ui->comboBox3->setCurrentIndex(4);
|
|
|
|
|
|
|
|
//低照度
|
|
|
|
connect(ui->btn_light, &WBSwitchButton::sigSwitchChanged, this, [=](bool onOroff) {
|
|
|
|
if (onOroff) //开关打开
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4B00"),
|
|
|
|
QByteArray::fromHex("01000000")));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4B00")));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
//电子稳像
|
|
|
|
connect(ui->btn_stable, &WBSwitchButton::sigSwitchChanged, this, [=](bool onOroff) {
|
|
|
|
if (onOroff) //开关打开
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4100"),
|
|
|
|
QByteArray::fromHex("04010000")));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
m_CUdpSocket->sendData(ProtocolPodTJ::encode(QByteArray::fromHex("4100"),
|
|
|
|
QByteArray::fromHex("04020000")));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
//图像去雾
|
|
|
|
ui->comboBox4->addItem("关", QByteArray::fromHex("00000000"));
|
|
|
|
ui->comboBox4->addItem("低", QByteArray::fromHex("01000000"));
|
|
|
|
ui->comboBox4->addItem("中", QByteArray::fromHex("02000000"));
|
|
|
|
ui->comboBox4->addItem("强", QByteArray::fromHex("03000000"));
|
|
|
|
|
|
|
|
//伪彩选择
|
|
|
|
ui->comboBox5->addItem("白热", QByteArray::fromHex("01000000"));
|
|
|
|
ui->comboBox5->addItem("黑热", QByteArray::fromHex("01010000"));
|
|
|
|
ui->comboBox5->addItem("蓝红黄", QByteArray::fromHex("01020000"));
|
|
|
|
ui->comboBox5->addItem("紫红黄", QByteArray::fromHex("01030000"));
|
|
|
|
ui->comboBox5->addItem("蓝绿红", QByteArray::fromHex("01040000"));
|
|
|
|
ui->comboBox5->addItem("彩虹1", QByteArray::fromHex("01050000"));
|
|
|
|
ui->comboBox5->addItem("彩虹2", QByteArray::fromHex("01060000"));
|
|
|
|
ui->comboBox5->addItem("黑-红", QByteArray::fromHex("01070000"));
|
|
|
|
ui->comboBox5->addItem("墨绿-红", QByteArray::fromHex("01080000"));
|
|
|
|
ui->comboBox5->addItem("蓝绿红-粉", QByteArray::fromHex("01090000"));
|
|
|
|
ui->comboBox5->addItem("混合色", QByteArray::fromHex("010A0000"));
|
|
|
|
ui->comboBox5->addItem("红头", QByteArray::fromHex("010B0000"));
|
|
|
|
}
|