diff --git a/Src/GDDC/gddcStateInfo.cpp b/Src/GDDC/gddcStateInfo.cpp index 19c9205..b5a012f 100644 --- a/Src/GDDC/gddcStateInfo.cpp +++ b/Src/GDDC/gddcStateInfo.cpp @@ -1,104 +1,104 @@ #include "gddcStateInfo.h" + #include "ui_gddcStateInfo.h" GDDCStateInfo::GDDCStateInfo(QWidget *parent) : QWidget(parent), ui(new Ui::GDDCStateInfo) { - ui->setupUi(this); - initParam(); + ui->setupUi(this); + initParam(); } GDDCStateInfo::~GDDCStateInfo() { - delete m_tableModel; - delete ui; + delete m_tableModel; + delete ui; } // 初始化参数 void GDDCStateInfo::initParam() { + m_tableModel = new QStandardItemModel(); + m_tableModel->setHorizontalHeaderItem(0, new QStandardItem("类型")); + m_tableModel->setHorizontalHeaderItem(1, new QStandardItem("详细信息")); + // m_tableModel->setVerticalHeaderItem(0,new QStandardItem("序号")); + ui->tableViewShowIState->setModel(m_tableModel); + // 栅格显示或隐藏 + ui->tableViewShowIState->setShowGrid(true); + // 固定表格宽度不可扩展,不可手动调整宽度 + ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode( + QHeaderView::Fixed); + // 表格宽度随内容自动扩展 + // ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + // 表格宽度自动根据UI进行计算,不可手动调整宽度 + // ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); + // 固定表格高度不可扩展,不可手动调整高度 + ui->tableViewShowIState->verticalHeader()->setSectionResizeMode( + QHeaderView::Fixed); + // 表格高度随内容自动扩展 + // ui->tableViewShowIState->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + // 表格高度自动根据UI进行计算,不可手动调整高度 + // ui->tableViewShowIState->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch); + ui->tableViewShowIState->setEditTriggers( + QAbstractItemView::NoEditTriggers); // 不可编辑 + ui->tableViewShowIState->setColumnWidth(0, 100); + ui->tableViewShowIState->setColumnWidth(1, 100); - m_tableModel = new QStandardItemModel(); - m_tableModel->setHorizontalHeaderItem(0, new QStandardItem("类型")); - m_tableModel->setHorizontalHeaderItem(1, new QStandardItem("详细信息")); - // m_tableModel->setVerticalHeaderItem(0,new QStandardItem("序号")); - ui->tableViewShowIState->setModel(m_tableModel); - // 栅格显示或隐藏 - ui->tableViewShowIState->setShowGrid(true); - // 固定表格宽度不可扩展,不可手动调整宽度 - ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode( - QHeaderView::Fixed); - // 表格宽度随内容自动扩展 - // ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); - // 表格宽度自动根据UI进行计算,不可手动调整宽度 - // ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); - // 固定表格高度不可扩展,不可手动调整高度 - ui->tableViewShowIState->verticalHeader()->setSectionResizeMode( - QHeaderView::Fixed); - // 表格高度随内容自动扩展 - // ui->tableViewShowIState->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); - // 表格高度自动根据UI进行计算,不可手动调整高度 - // ui->tableViewShowIState->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch); - ui->tableViewShowIState->setEditTriggers( - QAbstractItemView::NoEditTriggers); // 不可编辑 - ui->tableViewShowIState->setColumnWidth(0, 100); - ui->tableViewShowIState->setColumnWidth(1, 100); - - m_tableModel->setItem(0, 0, new QStandardItem("跟踪源类型")); - m_tableModel->setItem(1, 0, new QStandardItem("姿态方位角")); - m_tableModel->setItem(2, 0, new QStandardItem("姿态俯仰角")); - m_tableModel->setItem(3, 0, new QStandardItem("姿态横滚角")); - m_tableModel->setItem(4, 0, new QStandardItem("中心点宽坐标")); - m_tableModel->setItem(5, 0, new QStandardItem("中心点高坐标")); - m_tableModel->setItem(6, 0, new QStandardItem("可见光焦距")); - m_tableModel->setItem(7, 0, new QStandardItem("可见光视场角")); - m_tableModel->setItem(8, 0, new QStandardItem("红外焦距")); - m_tableModel->setItem(9, 0, new QStandardItem("红外视场角")); - m_tableModel->setItem(10, 0, new QStandardItem("激光测距值")); - m_tableModel->setItem(11, 0, new QStandardItem("命令反馈")); - m_tableModel->setItem(12, 0, new QStandardItem("视频输出类型")); - m_tableModel->setItem(13, 0, new QStandardItem("红外电子变倍")); - m_tableModel->setItem(14, 0, new QStandardItem("可见光电子放大")); - m_tableModel->setItem(15, 0, new QStandardItem("吊舱框架方位角")); - m_tableModel->setItem(16, 0, new QStandardItem("吊舱框架俯仰角")); - m_tableModel->setItem(17, 0, new QStandardItem("吊舱框架横滚角")); - m_tableModel->setItem(18, 0, new QStandardItem("TF剩余百分比")); - m_tableModel->setItem(19, 0, new QStandardItem("TF卡总容量")); - m_tableModel->setItem(20, 0, new QStandardItem("TF插卡状态")); - m_tableModel->setItem(21, 0, new QStandardItem("拍照")); - m_tableModel->setItem(22, 0, new QStandardItem("视频抓图")); - m_tableModel->setItem(23, 0, new QStandardItem("连拍")); - m_tableModel->setItem(24, 0, new QStandardItem("视频连续抓图")); - m_tableModel->setItem(25, 0, new QStandardItem("录像状态")); - m_tableModel->setItem(26, 0, new QStandardItem("文件命名")); - m_tableModel->setItem(27, 0, new QStandardItem("当前图像反馈")); - m_tableModel->setItem(28, 0, new QStandardItem("载荷类型")); - m_tableModel->setItem(29, 0, new QStandardItem("红外机芯")); - m_tableModel->setItem(30, 0, new QStandardItem("可见光机芯")); - m_tableModel->setItem(31, 0, new QStandardItem("陀螺仪")); - m_tableModel->setItem(32, 0, new QStandardItem("角度传感器")); - m_tableModel->setItem(33, 0, new QStandardItem("电机")); - m_tableModel->setItem(34, 0, new QStandardItem("压缩")); - m_tableModel->setItem(35, 0, new QStandardItem("综合控制")); - m_tableModel->setItem(36, 0, new QStandardItem("吊舱准备状态")); - m_tableModel->setItem(37, 0, new QStandardItem("红外伪彩")); - m_tableModel->setItem(38, 0, new QStandardItem("红外图像增强")); - m_tableModel->setItem(39, 0, new QStandardItem("当前载荷版本")); - m_tableModel->setItem(40, 0, new QStandardItem("目标定位经度")); - m_tableModel->setItem(41, 0, new QStandardItem("目标定位纬度")); - m_tableModel->setItem(42, 0, new QStandardItem("目标海拔高度")); - m_tableModel->setItem(43, 0, new QStandardItem("姿态指示完成反馈")); - m_tableModel->setItem(44, 0, new QStandardItem("目标宽")); - m_tableModel->setItem(45, 0, new QStandardItem("目标高")); - m_tableModel->setItem(46, 0, new QStandardItem("目标类型")); - m_tableModel->setItem(47, 0, new QStandardItem("跟踪状态")); - m_tableModel->setItem(48, 0, new QStandardItem("最高温")); - m_tableModel->setItem(49, 0, new QStandardItem("配置保存")); - m_tableModel->setItem(50, 0, new QStandardItem("伺服状态")); - m_tableModel->setItem(51, 0, new QStandardItem("超温报警")); - m_tableModel->setItem(52, 0, new QStandardItem("红点指示")); - // ui->tableViewShowIState->horizontalHeader()->setStyleSheet("QHeaderView::section{background:rgb(255,228,225);color: - // black;}"); + m_tableModel->setItem(0, 0, new QStandardItem("跟踪源类型")); + m_tableModel->setItem(1, 0, new QStandardItem("姿态方位角")); + m_tableModel->setItem(2, 0, new QStandardItem("姿态俯仰角")); + m_tableModel->setItem(3, 0, new QStandardItem("姿态横滚角")); + m_tableModel->setItem(4, 0, new QStandardItem("中心点宽坐标")); + m_tableModel->setItem(5, 0, new QStandardItem("中心点高坐标")); + m_tableModel->setItem(6, 0, new QStandardItem("可见光焦距")); + m_tableModel->setItem(7, 0, new QStandardItem("可见光视场角")); + m_tableModel->setItem(8, 0, new QStandardItem("红外焦距")); + m_tableModel->setItem(9, 0, new QStandardItem("红外视场角")); + m_tableModel->setItem(10, 0, new QStandardItem("激光测距值")); + m_tableModel->setItem(11, 0, new QStandardItem("命令反馈")); + m_tableModel->setItem(12, 0, new QStandardItem("视频输出类型")); + m_tableModel->setItem(13, 0, new QStandardItem("红外电子变倍")); + m_tableModel->setItem(14, 0, new QStandardItem("可见光电子放大")); + m_tableModel->setItem(15, 0, new QStandardItem("吊舱框架方位角")); + m_tableModel->setItem(16, 0, new QStandardItem("吊舱框架俯仰角")); + m_tableModel->setItem(17, 0, new QStandardItem("吊舱框架横滚角")); + m_tableModel->setItem(18, 0, new QStandardItem("TF剩余百分比")); + m_tableModel->setItem(19, 0, new QStandardItem("TF卡总容量")); + m_tableModel->setItem(20, 0, new QStandardItem("TF插卡状态")); + m_tableModel->setItem(21, 0, new QStandardItem("拍照")); + m_tableModel->setItem(22, 0, new QStandardItem("视频抓图")); + m_tableModel->setItem(23, 0, new QStandardItem("连拍")); + m_tableModel->setItem(24, 0, new QStandardItem("视频连续抓图")); + m_tableModel->setItem(25, 0, new QStandardItem("录像状态")); + m_tableModel->setItem(26, 0, new QStandardItem("文件命名")); + m_tableModel->setItem(27, 0, new QStandardItem("当前图像反馈")); + m_tableModel->setItem(28, 0, new QStandardItem("载荷类型")); + m_tableModel->setItem(29, 0, new QStandardItem("红外机芯")); + m_tableModel->setItem(30, 0, new QStandardItem("可见光机芯")); + m_tableModel->setItem(31, 0, new QStandardItem("陀螺仪")); + m_tableModel->setItem(32, 0, new QStandardItem("角度传感器")); + m_tableModel->setItem(33, 0, new QStandardItem("电机")); + m_tableModel->setItem(34, 0, new QStandardItem("压缩")); + m_tableModel->setItem(35, 0, new QStandardItem("综合控制")); + m_tableModel->setItem(36, 0, new QStandardItem("吊舱准备状态")); + m_tableModel->setItem(37, 0, new QStandardItem("红外伪彩")); + m_tableModel->setItem(38, 0, new QStandardItem("红外图像增强")); + m_tableModel->setItem(39, 0, new QStandardItem("当前载荷版本")); + m_tableModel->setItem(40, 0, new QStandardItem("目标定位经度")); + m_tableModel->setItem(41, 0, new QStandardItem("目标定位纬度")); + m_tableModel->setItem(42, 0, new QStandardItem("目标海拔高度")); + m_tableModel->setItem(43, 0, new QStandardItem("姿态指示完成反馈")); + m_tableModel->setItem(44, 0, new QStandardItem("目标宽")); + m_tableModel->setItem(45, 0, new QStandardItem("目标高")); + m_tableModel->setItem(46, 0, new QStandardItem("目标类型")); + m_tableModel->setItem(47, 0, new QStandardItem("跟踪状态")); + m_tableModel->setItem(48, 0, new QStandardItem("最高温")); + m_tableModel->setItem(49, 0, new QStandardItem("配置保存")); + m_tableModel->setItem(50, 0, new QStandardItem("伺服状态")); + m_tableModel->setItem(51, 0, new QStandardItem("超温报警")); + m_tableModel->setItem(52, 0, new QStandardItem("红点指示")); + // ui->tableViewShowIState->horizontalHeader()->setStyleSheet("QHeaderView::section{background:rgb(255,228,225);color: + // black;}"); } // 设置tabwidget的几何位置 void GDDCStateInfo::setTableViewGeometry(int ax, int ay, int aw, int ah) { - ui->tableViewShowIState->setGeometry(ax, ay, aw, ah); + ui->tableViewShowIState->setGeometry(ax, ay, aw, ah); } /** * @brief udp数据接收 @@ -106,498 +106,500 @@ void GDDCStateInfo::setTableViewGeometry(int ax, int ay, int aw, int ah) { * @param size 数据大小 */ void GDDCStateInfo::UDPMessageReceive(QByteArray &da, int size) { - QByteArray data = da; - // data.resize(size); + QByteArray data = da; + // data.resize(size); - qDebug() << data.data(); - if (checkdata(data, data.size(), 1)) { - QString str; - double dou; - float flo; - // 载荷类型 - switch (data.at(2)) { - case '\x01': - str = "白光"; - break; - case '\x02': - str = "红外"; - break; - case '\x03': - str = "双光"; - break; - case '\x04': - str = "三光"; - break; - case '\x05': - str = "四光"; - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(28, 1, new QStandardItem(str)); + // qDebug() << data.data(); + if (checkdata(data, data.size(), 1)) { + QString str; + double dou; + float flo; + // 载荷类型 + switch (data.at(2)) { + case '\x01': + str = "白光"; + break; + case '\x02': + str = "红外"; + break; + case '\x03': + str = "双光"; + break; + case '\x04': + str = "三光"; + break; + case '\x05': + str = "四光"; + break; + default: + str = "未知"; + break; + } + m_tableModel->setItem(28, 1, new QStandardItem(str)); - /*****自检结果*****/ - // 红外机芯 - if ((data.at(3) & '\x01') == 0x01) { - str = "正常"; - } else { - str = "异常"; - } - m_tableModel->setItem(29, 1, new QStandardItem(str)); - // 可见光机芯 - if ((data.at(3) >> 1) & '\x01') { - str = "正常"; - } else { - str = "异常"; - } - m_tableModel->setItem(30, 1, new QStandardItem(str)); - // 陀螺仪 - if ((data.at(3) >> 2) & '\x01') { - str = "正常"; - } else { - str = "异常"; - } - m_tableModel->setItem(31, 1, new QStandardItem(str)); - // 角度传感器 - if ((data.at(3) >> 3) & '\x01') { - str = "正常"; - } else { - str = "异常"; - } - m_tableModel->setItem(32, 1, new QStandardItem(str)); - // 驱动板-电机 - if ((data.at(3) >> 4) & '\x01') { - str = "正常"; - } else { - str = "异常"; - } - m_tableModel->setItem(33, 1, new QStandardItem(str)); - // 压缩存储 - if ((data.at(3) >> 5) & '\x01') { - str = "正常"; - } else { - str = "异常"; - } - m_tableModel->setItem(34, 1, new QStandardItem(str)); - // 综合处理 - if ((data.at(3) >> 6) & '\x01') { - str = "正常"; - } else { - str = "异常"; - } - m_tableModel->setItem(35, 1, new QStandardItem(str)); - // 吊舱准备状态 - if ((data.at(3) >> 7) & '\x01') { - str = "已准备好"; - } else { - str = "未准备好"; - } - m_tableModel->setItem(36, 1, new QStandardItem(str)); + /*****自检结果*****/ + // 红外机芯 + if ((data.at(3) & '\x01') == 0x01) { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(29, 1, new QStandardItem(str)); + // 可见光机芯 + if ((data.at(3) >> 1) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(30, 1, new QStandardItem(str)); + // 陀螺仪 + if ((data.at(3) >> 2) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(31, 1, new QStandardItem(str)); + // 角度传感器 + if ((data.at(3) >> 3) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(32, 1, new QStandardItem(str)); + // 驱动板-电机 + if ((data.at(3) >> 4) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(33, 1, new QStandardItem(str)); + // 压缩存储 + if ((data.at(3) >> 5) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(34, 1, new QStandardItem(str)); + // 综合处理 + if ((data.at(3) >> 6) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(35, 1, new QStandardItem(str)); + // 吊舱准备状态 + if ((data.at(3) >> 7) & '\x01') { + str = "已准备好"; + } else { + str = "未准备好"; + } + m_tableModel->setItem(36, 1, new QStandardItem(str)); - /*****吊舱状态1******/ - // 拍照 - if (data.at(4) & '\x01') { - str = "正在拍照"; - } else { - str = "未拍照"; - } - m_tableModel->setItem(21, 1, new QStandardItem(str)); - // 视频抓图 - if ((data.at(4) >> 1) & '\x01') { - str = "正在抓图"; - } else { - str = "未抓图"; - } - m_tableModel->setItem(22, 1, new QStandardItem(str)); - // 连拍 - if ((data.at(4) >> 2) & '\x01') { - str = "正在连拍"; - } else { - str = "未连拍"; - } - m_tableModel->setItem(23, 1, new QStandardItem(str)); - // 视频连续抓图 - if ((data.at(4) >> 3) & '\x01') { - str = "正在连续抓图"; - } else { - str = "未连续抓图"; - } - m_tableModel->setItem(24, 1, new QStandardItem(str)); - // 录像状态 - if ((data.at(4) >> 4) & '\x01') { - str = "正在录像"; - } else { - str = "未开始录像"; - } - m_tableModel->setItem(25, 1, new QStandardItem(str)); - // 文件命名 - if ((data.at(4) >> 5) & '\x01') { - str = "信息导入完毕"; - } else { - str = "未成功导入"; - } - m_tableModel->setItem(26, 1, new QStandardItem(str)); - // TF插卡状态 - if ((data.at(4) >> 6) & '\x01') { - str = "TF卡已插入"; - } else { - str = "TF卡未插入"; - } - m_tableModel->setItem(20, 1, new QStandardItem(str)); - // 超温报警状态 - if ((data.at(4) >> 7) & '\x01') { - str = "超温"; - } else { - str = "未超温"; - } - m_tableModel->setItem(51, 1, new QStandardItem(str)); - // 红点指示 - if (data.at(5) & '\x01') { - str = "开"; - } else { - str = "关"; - } - m_tableModel->setItem(52, 1, new QStandardItem(str)); - // 备用 - // 红外图像增强 - str = QString::number((data.at(5) >> 3) & '\x0F'); - m_tableModel->setItem(38, 1, new QStandardItem(str)); - // 备用 - // 备用 + /*****吊舱状态1******/ + // 拍照 + if (data.at(4) & '\x01') { + str = "正在拍照"; + } else { + str = "未拍照"; + } + m_tableModel->setItem(21, 1, new QStandardItem(str)); + // 视频抓图 + if ((data.at(4) >> 1) & '\x01') { + str = "正在抓图"; + } else { + str = "未抓图"; + } + m_tableModel->setItem(22, 1, new QStandardItem(str)); + // 连拍 + if ((data.at(4) >> 2) & '\x01') { + str = "正在连拍"; + } else { + str = "未连拍"; + } + m_tableModel->setItem(23, 1, new QStandardItem(str)); + // 视频连续抓图 + if ((data.at(4) >> 3) & '\x01') { + str = "正在连续抓图"; + } else { + str = "未连续抓图"; + } + m_tableModel->setItem(24, 1, new QStandardItem(str)); + // 录像状态 + if ((data.at(4) >> 4) & '\x01') { + str = "正在录像"; + } else { + str = "未开始录像"; + } + m_tableModel->setItem(25, 1, new QStandardItem(str)); + // 文件命名 + if ((data.at(4) >> 5) & '\x01') { + str = "信息导入完毕"; + } else { + str = "未成功导入"; + } + m_tableModel->setItem(26, 1, new QStandardItem(str)); + // TF插卡状态 + if ((data.at(4) >> 6) & '\x01') { + str = "TF卡已插入"; + } else { + str = "TF卡未插入"; + } + m_tableModel->setItem(20, 1, new QStandardItem(str)); + // 超温报警状态 + if ((data.at(4) >> 7) & '\x01') { + str = "超温"; + } else { + str = "未超温"; + } + m_tableModel->setItem(51, 1, new QStandardItem(str)); + // 红点指示 + if (data.at(5) & '\x01') { + str = "开"; + } else { + str = "关"; + } + m_tableModel->setItem(52, 1, new QStandardItem(str)); + // 备用 + // 红外图像增强 + str = QString::number((data.at(5) >> 3) & '\x0F'); + m_tableModel->setItem(38, 1, new QStandardItem(str)); + // 备用 + // 备用 - /*****吊舱状态2******/ - // 备用 - // 跟踪源类型 - if (data.at(6) & '\x02') { - str = "可见光"; - } else { - str = "红外"; - } - m_tableModel->setItem(0, 1, new QStandardItem(str)); - // 红外电子变倍 - str = QString::number(((data.at(6) >> 2) & '\x7F') * 0.1, 'f', 1); - m_tableModel->setItem(13, 1, new QStandardItem(str)); - // 配置保存 - if (data.at(7) & '\x01') { - str = "保存成功"; - } else { - str = "未保存"; - } - m_tableModel->setItem(49, 1, new QStandardItem(str)); - // 可见光电子变倍 - switch ((data.at(7) >> 1) & '\x03') { - case 0: - str = "1x"; - break; - case 1: - str = "2x"; - break; - case 2: - str = "4x"; - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(14, 1, new QStandardItem(str)); - // 红外伪彩-色带 - switch ((data.at(7) >> 3) & '\x1F') { - case 0x00: - str = "白热"; - break; - case 0x01: - str = "黑热"; - break; - case 0x02: - str = "彩虹"; - break; - case 0x03: - str = "高对比度彩虹"; - break; - case 0x04: - str = "铁红"; - break; - case 0x05: - str = "熔岩"; - break; - case 0x06: - str = "天空"; - break; - case 0x07: - str = "中灰"; - break; - case 0x08: - str = "灰红"; - break; - case 0x09: - str = "紫橙"; - break; - case 0x0b: - str = "警示红"; - break; - case 0x0c: - str = "冰火"; - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(37, 1, new QStandardItem(str)); + /*****吊舱状态2******/ + // 备用 + // 跟踪源类型 + if (data.at(6) & '\x02') { + str = "可见光"; + } else { + str = "红外"; + } + m_tableModel->setItem(0, 1, new QStandardItem(str)); + // 红外电子变倍 + str = QString::number(((data.at(6) >> 2) & '\x7F') * 0.1, 'f', 1); + m_tableModel->setItem(13, 1, new QStandardItem(str)); + // 配置保存 + if (data.at(7) & '\x01') { + str = "保存成功"; + } else { + str = "未保存"; + } + m_tableModel->setItem(49, 1, new QStandardItem(str)); + // 可见光电子变倍 + switch ((data.at(7) >> 1) & '\x03') { + case 0: + str = "1x"; + break; + case 1: + str = "2x"; + break; + case 2: + str = "4x"; + break; + default: + str = "未知"; + break; + } + m_tableModel->setItem(14, 1, new QStandardItem(str)); + // 红外伪彩-色带 + switch ((data.at(7) >> 3) & '\x1F') { + case 0x00: + str = "白热"; + break; + case 0x01: + str = "黑热"; + break; + case 0x02: + str = "彩虹"; + break; + case 0x03: + str = "高对比度彩虹"; + break; + case 0x04: + str = "铁红"; + break; + case 0x05: + str = "熔岩"; + break; + case 0x06: + str = "天空"; + break; + case 0x07: + str = "中灰"; + break; + case 0x08: + str = "灰红"; + break; + case 0x09: + str = "紫橙"; + break; + case 0x0b: + str = "警示红"; + break; + case 0x0c: + str = "冰火"; + break; + default: + str = "未知"; + break; + } + m_tableModel->setItem(37, 1, new QStandardItem(str)); - /*********伺服状态********/ - // 红外伪彩-色带 - switch ((data.at(7) >> 3) & '\x1F') { - case 0x00: - str = "待命"; - break; - case 0x01: - str = "关伺服"; - break; - case 0x02: - str = "手动"; - break; - case 0x03: - str = "收藏"; - break; - case 0x04: - str = "数引"; - break; - case 0x05: - str = "航向锁定"; - break; - case 0x06: - str = "扫描"; - break; - case 0x07: - str = "跟踪"; - break; - case 0x08: - str = "垂直下视"; - break; - case 0x09: - str = "陀螺自动较漂"; - break; - case 0xA0: - str = "陀螺温度较漂"; - break; - case 0x0B: - str = "航向随动"; - break; - case 0x0C: - str = "归中"; - break; - case 0x0D: - str = "手动陀螺较漂"; - break; - case 0x0F: - str = "姿态指引"; - break; - default: - str = ""; - break; + /*********伺服状态********/ + // 红外伪彩-色带 + switch ((data.at(7) >> 3) & '\x1F') { + case 0x00: + str = "待命"; + break; + case 0x01: + str = "关伺服"; + break; + case 0x02: + str = "手动"; + break; + case 0x03: + str = "收藏"; + break; + case 0x04: + str = "数引"; + break; + case 0x05: + str = "航向锁定"; + break; + case 0x06: + str = "扫描"; + break; + case 0x07: + str = "跟踪"; + break; + case 0x08: + str = "垂直下视"; + break; + case 0x09: + str = "陀螺自动较漂"; + break; + case 0xA0: + str = "陀螺温度较漂"; + break; + case 0x0B: + str = "航向随动"; + break; + case 0x0C: + str = "归中"; + break; + case 0x0D: + str = "手动陀螺较漂"; + break; + case 0x0F: + str = "姿态指引"; + break; + default: + str = ""; + break; + } + m_tableModel->setItem(50, 1, new QStandardItem(str)); + // 吊舱框架方位角 + dou = (data.at(9) + data.at(10) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(15, 1, new QStandardItem(str)); + // 吊舱框架俯仰角 + dou = (data.at(11) + data.at(12) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(16, 1, new QStandardItem(str)); + // 吊舱框架横滚角 + dou = (data.at(13) + data.at(14) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(17, 1, new QStandardItem(str)); + // 当前载荷版本号 + str = QString::number(data.at(15) >> 4) + "." + + QString::number(data.at(15) & '\x07'); + m_tableModel->setItem(39, 1, new QStandardItem(str)); + // 红外视场角 + dou = ((UINT8)data[16] + (UINT16)data[17] * 256) * 0.1; + str = QString::number(dou, 'f', 1); + m_tableModel->setItem(9, 1, new QStandardItem(str)); + // TF使用容量百分比 + str = QString::number((UINT8)data.at(18)) + "%"; + m_tableModel->setItem(18, 1, new QStandardItem(str)); + // 可见光视场角 + dou = ((UINT8)data.at(19) + (UINT16)data.at(20) * 256) * 0.1; + str = QString::number(dou, 'f', 1); + m_tableModel->setItem(7, 1, new QStandardItem(str)); + // TF卡总容量 + dou = ((UINT8)data.at(21) + (UINT16)data.at(22) * 256) * 0.1; + str = QString::number(dou, 'f', 1); + m_tableModel->setItem(19, 1, new QStandardItem(str)); + // 红外焦距 + dou = ((UINT8)data.at(23) + (UINT16)data.at(24) * 256) * 0.1; + str = QString::number(dou, 'f', 1); + m_tableModel->setItem(8, 1, new QStandardItem(str)); + // 可见光焦距-白光 + dou = ((UINT8)data.at(25) + (UINT16)data.at(26) * 256) * 0.1; + str = QString::number(dou, 'f', 1); + m_tableModel->setItem(6, 1, new QStandardItem(str)); + // 激光测距距离 + str = QString::number((UINT8)data.at(27) + (UINT16)data.at(28) * 256); + m_tableModel->setItem(10, 1, new QStandardItem(str)); + // 目标定位经度 + flo = m_uint32_to_float(data.at(29), data.at(30), data.at(31), + data.at(32)); + str = QString::number(flo, 'f', 6); + m_tableModel->setItem(40, 1, new QStandardItem(str)); + // 目标定位纬度 + flo = m_uint32_to_float(data.at(33), data.at(34), data.at(35), + data.at(36)); + str = QString::number(flo, 'f', 6); + m_tableModel->setItem(41, 1, new QStandardItem(str)); + // 目标海拔高度 + str = QString::number(data.at(37) + data.at(38) * 256); + m_tableModel->setItem(42, 1, new QStandardItem(str)); + // 最高温-温度 + // dou = (data.at(39)+data.at(40)*256)*0.1; + // str = QString::number(dou,'f',1); + // m_tableModel->setItem(42,1,new QStandardItem(str)); + // 吊舱姿态方位角 + dou = (data.at(41) + data.at(42) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(1, 1, new QStandardItem(str)); + // 吊舱姿态俯仰角 + dou = (data.at(43) + data.at(44) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(2, 1, new QStandardItem(str)); + // 吊舱姿态横滚角 + dou = (data.at(45) + data.at(46) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(3, 1, new QStandardItem(str)); + // 当前显示图像反馈 + switch (data.at(47)) { + case 0x00: + str = "红外"; + break; + case 0x01: + str = "可见光"; + break; + case 0x02: + str = "上下分屏"; + break; + case 0x03: + str = "可见光画中画"; + break; + case 0x04: + str = "红外画中画"; + break; + case 0x05: + str = "左右分屏"; + break; + default: + str = "未知"; + break; + } + m_tableModel->setItem(27, 1, new QStandardItem(str)); + // 接收到的命令字反馈 + str = QString::number(data.at(48)); + m_tableModel->setItem(11, 1, new QStandardItem(str)); + // 姿态指示完成反馈 + switch (data.at(49)) { + case 0x12: + str = "姿态指示中"; + break; + case 0x13: + str = "姿态指示完成"; + break; + default: + str = "------"; + break; + } + m_tableModel->setItem(43, 1, new QStandardItem(str)); + // 跟踪中心点宽方向坐标 + str = QString::number((UINT8)data[50] + (UINT16)data[51] * 256); + m_tableModel->setItem(4, 1, new QStandardItem(str)); + // 跟踪中心点高方向坐标 + str = QString::number((UINT8)data[52] + (UINT16)data[53] * 256); + m_tableModel->setItem(5, 1, new QStandardItem(str)); + // 目标宽 + str = QString::number((UINT8)data.at(54) + data.at(55) * 256); + m_tableModel->setItem(44, 1, new QStandardItem(str)); + // 目标高 + str = QString::number((UINT8)data.at(56) + data.at(57) * 256); + m_tableModel->setItem(45, 1, new QStandardItem(str)); + // 目标类型 + switch (data.at(58)) { + case 0x00: + if (data.at(6) & '\x02') { // 可见光 + str = "人"; + } else { // 红外 + str = "车"; + } + break; + case 0x01: + if (data.at(6) & '\x02') { // 可见光 + str = "小汽车"; + } else { // 红外 + str = "人"; + } + break; + case 0x02: + if (data.at(6) & '\x02') { // 可见光 + str = "公交车"; + } + break; + case 0x03: + if (data.at(6) & '\x02') { // 可见光 + str = "卡车"; + } + break; + default: + str = "未知"; + break; + } + m_tableModel->setItem(46, 1, new QStandardItem(str)); + // 跟踪状态 + switch (data.at(59)) { + case 0x00: + str = "空闲状态"; + break; + case 0x01: + str = "稳定跟踪"; + break; + case 0x02: + str = "记忆跟踪"; + break; + case 0x03: + str = "目标丢失"; + break; + case 0x05: + str = "截获状态"; + break; + default: + str = "未知"; + break; + } + m_tableModel->setItem(47, 1, new QStandardItem(str)); + // 最高温 + dou = (data.at(60) + data.at(61) * 256) * 0.1; + str = QString::number(dou, 'f', 1) + "℃"; + m_tableModel->setItem(48, 1, new QStandardItem(str)); + // } - m_tableModel->setItem(50, 1, new QStandardItem(str)); - // 吊舱框架方位角 - dou = (data.at(9) + data.at(10) * 256) * 0.01; - str = QString::number(dou, 'f', 2); - m_tableModel->setItem(15, 1, new QStandardItem(str)); - // 吊舱框架俯仰角 - dou = (data.at(11) + data.at(12) * 256) * 0.01; - str = QString::number(dou, 'f', 2); - m_tableModel->setItem(16, 1, new QStandardItem(str)); - // 吊舱框架横滚角 - dou = (data.at(13) + data.at(14) * 256) * 0.01; - str = QString::number(dou, 'f', 2); - m_tableModel->setItem(17, 1, new QStandardItem(str)); - // 当前载荷版本号 - str = QString::number(data.at(15) >> 4) + "." + - QString::number(data.at(15) & '\x07'); - m_tableModel->setItem(39, 1, new QStandardItem(str)); - // 红外视场角 - dou = ((UINT8)data[16] + (UINT16)data[17] * 256) * 0.1; - str = QString::number(dou, 'f', 1); - m_tableModel->setItem(9, 1, new QStandardItem(str)); - // TF使用容量百分比 - str = QString::number((UINT8)data.at(18)) + "%"; - m_tableModel->setItem(18, 1, new QStandardItem(str)); - // 可见光视场角 - dou = ((UINT8)data.at(19) + (UINT16)data.at(20) * 256) * 0.1; - str = QString::number(dou, 'f', 1); - m_tableModel->setItem(7, 1, new QStandardItem(str)); - // TF卡总容量 - dou = ((UINT8)data.at(21) + (UINT16)data.at(22) * 256) * 0.1; - str = QString::number(dou, 'f', 1); - m_tableModel->setItem(19, 1, new QStandardItem(str)); - // 红外焦距 - dou = ((UINT8)data.at(23) + (UINT16)data.at(24) * 256) * 0.1; - str = QString::number(dou, 'f', 1); - m_tableModel->setItem(8, 1, new QStandardItem(str)); - // 可见光焦距-白光 - dou = ((UINT8)data.at(25) + (UINT16)data.at(26) * 256) * 0.1; - str = QString::number(dou, 'f', 1); - m_tableModel->setItem(6, 1, new QStandardItem(str)); - // 激光测距距离 - str = QString::number((UINT8)data.at(27) + (UINT16)data.at(28) * 256); - m_tableModel->setItem(10, 1, new QStandardItem(str)); - // 目标定位经度 - flo = m_uint32_to_float(data.at(29), data.at(30), data.at(31), data.at(32)); - str = QString::number(flo, 'f', 6); - m_tableModel->setItem(40, 1, new QStandardItem(str)); - // 目标定位纬度 - flo = m_uint32_to_float(data.at(33), data.at(34), data.at(35), data.at(36)); - str = QString::number(flo, 'f', 6); - m_tableModel->setItem(41, 1, new QStandardItem(str)); - // 目标海拔高度 - str = QString::number(data.at(37) + data.at(38) * 256); - m_tableModel->setItem(42, 1, new QStandardItem(str)); - // 最高温-温度 - // dou = (data.at(39)+data.at(40)*256)*0.1; - // str = QString::number(dou,'f',1); - // m_tableModel->setItem(42,1,new QStandardItem(str)); - // 吊舱姿态方位角 - dou = (data.at(41) + data.at(42) * 256) * 0.01; - str = QString::number(dou, 'f', 2); - m_tableModel->setItem(1, 1, new QStandardItem(str)); - // 吊舱姿态俯仰角 - dou = (data.at(43) + data.at(44) * 256) * 0.01; - str = QString::number(dou, 'f', 2); - m_tableModel->setItem(2, 1, new QStandardItem(str)); - // 吊舱姿态横滚角 - dou = (data.at(45) + data.at(46) * 256) * 0.01; - str = QString::number(dou, 'f', 2); - m_tableModel->setItem(3, 1, new QStandardItem(str)); - // 当前显示图像反馈 - switch (data.at(47)) { - case 0x00: - str = "红外"; - break; - case 0x01: - str = "可见光"; - break; - case 0x02: - str = "上下分屏"; - break; - case 0x03: - str = "可见光画中画"; - break; - case 0x04: - str = "红外画中画"; - break; - case 0x05: - str = "左右分屏"; - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(27, 1, new QStandardItem(str)); - // 接收到的命令字反馈 - str = QString::number(data.at(48)); - m_tableModel->setItem(11, 1, new QStandardItem(str)); - // 姿态指示完成反馈 - switch (data.at(49)) { - case 0x12: - str = "姿态指示中"; - break; - case 0x13: - str = "姿态指示完成"; - break; - default: - str = "------"; - break; - } - m_tableModel->setItem(43, 1, new QStandardItem(str)); - // 跟踪中心点宽方向坐标 - str = QString::number((UINT8)data[50] + (UINT16)data[51] * 256); - m_tableModel->setItem(4, 1, new QStandardItem(str)); - // 跟踪中心点高方向坐标 - str = QString::number((UINT8)data[52] + (UINT16)data[53] * 256); - m_tableModel->setItem(5, 1, new QStandardItem(str)); - // 目标宽 - str = QString::number((UINT8)data.at(54) + data.at(55) * 256); - m_tableModel->setItem(44, 1, new QStandardItem(str)); - // 目标高 - str = QString::number((UINT8)data.at(56) + data.at(57) * 256); - m_tableModel->setItem(45, 1, new QStandardItem(str)); - // 目标类型 - switch (data.at(58)) { - case 0x00: - if (data.at(6) & '\x02') { // 可见光 - str = "人"; - } else { // 红外 - str = "车"; - } - break; - case 0x01: - if (data.at(6) & '\x02') { // 可见光 - str = "小汽车"; - } else { // 红外 - str = "人"; - } - break; - case 0x02: - if (data.at(6) & '\x02') { // 可见光 - str = "公交车"; - } - break; - case 0x03: - if (data.at(6) & '\x02') { // 可见光 - str = "卡车"; - } - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(46, 1, new QStandardItem(str)); - // 跟踪状态 - switch (data.at(59)) { - case 0x00: - str = "空闲状态"; - break; - case 0x01: - str = "稳定跟踪"; - break; - case 0x02: - str = "记忆跟踪"; - break; - case 0x03: - str = "目标丢失"; - break; - case 0x05: - str = "截获状态"; - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(47, 1, new QStandardItem(str)); - // 最高温 - dou = (data.at(60) + data.at(61) * 256) * 0.1; - str = QString::number(dou, 'f', 1) + "℃"; - m_tableModel->setItem(48, 1, new QStandardItem(str)); - // - } } bool GDDCStateInfo::checkdata(QByteArray buffer, int length, int type) { - if (length != 64) { - return false; - } - if ((buffer.at(0) != '\xFC') || (buffer.at(1) != '\x2C') || - buffer.at(63) != '\xF0') { - return false; - } - if (type == 1) { - // 亦或校验 - // for(int i = 2;i<62;++i) - // { - // buffer.at(i)^buffer.at(i+1); - // } - } else if (type == 2) { - // 和校验 - } + if (length != 64) { + return false; + } + if ((buffer.at(0) != '\xFC') || (buffer.at(1) != '\x2C') || + buffer.at(63) != '\xF0') { + return false; + } + if (type == 1) { + // 亦或校验 + // for(int i = 2;i<62;++i) + // { + // buffer.at(i)^buffer.at(i+1); + // } + } else if (type == 2) { + // 和校验 + } - return true; + return true; } diff --git a/Src/ModelCamera/modelcameradlg.cpp b/Src/ModelCamera/modelcameradlg.cpp index 68b27c3..2524c1f 100644 --- a/Src/ModelCamera/modelcameradlg.cpp +++ b/Src/ModelCamera/modelcameradlg.cpp @@ -5,8 +5,8 @@ ModelCameraDlg::ModelCameraDlg(QWidget *parent) : QDialog(parent), ui(new Ui::ModelCameraDlg) { ui->setupUi(this); - ui->videoIPLineEdit->setText(QStringLiteral( - "rtsp://192.168.55.65:554/live/track0")); // rtsp://192.168.5.74:8554/LIVE + ui->videoIPLineEdit->setText( + QStringLiteral("rtsp://192.168.5.74:8554/LIVE")); ui->pushStreamIPEdit->setText( QStringLiteral("rtmp://182.92.130.23/app/stream99")); ui->cameraVideoWidget->setVedioSaveFileDirPath("./3DCameraVideo"); diff --git a/mainwindow.cpp b/mainwindow.cpp index 7a74723..4cc58ab 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -368,11 +368,23 @@ void MainWindow::changeBtnColor(int num) { * @brief 初始化UAVID与推流APPName的映射关系 */ void MainWindow::initUAVIDMap() { + // 内蒙 g_mapAppName[5] = "nmyj"; g_mapAppName[7] = "nmyj"; + + // 江苏 for (int i = 8; i < 13; ++i) { g_mapAppName[i] = "jsyj"; } + // 河南 + g_mapAppName[13] = "hnyj"; + for (int i = 15; i < 23; ++i) { + g_mapAppName[i] = "hnyj"; + } + g_mapAppName[25] = "hnyj"; + g_mapAppName[26] = "hnyj"; + + // 测试 g_mapAppName[99] = "testyj"; }