Files
Radio/module/F/function/data_source.cpp
T
2026-06-16 13:38:08 +08:00

254 lines
9.1 KiB
C++

#include "../MainWindow.h"
#include "a2_信号侦察.h"
#include "a3_信号处理.h"
#include "a4_信号生成.h"
#include "a5_信号对消.h"
#include "function.export.h"
#include "a6_存储列表.h"
Data_source data_source;
void Data_source::set_root(MainWindow* root) { m_root = root; }
Data_source::Data_source() {}
// 1
::() {
mainLayout = new QHBoxLayout(this);
mainLayout->setMargin(0);
mainLayout->addLayout(createV(), 3);
auto fw = new FunctionWidget();
auto = create_input("中心频率", "MHZ");
auto = create_input("带宽", "MHZ");
auto = create_input("采样率", "MHZ");
auto layout = new QVBoxLayout;
layout->setSpacing(0);
layout->addLayout();
layout->addSpacing(10);
layout->addLayout();
layout->addSpacing(10);
layout->addLayout();
fw->init("预处理参数", "展示设备宽采效果", layout);
mainLayout->addWidget(fw, 1);
}
QVBoxLayout* ::createV() {
QVBoxLayout* ret;
ret = new QVBoxLayout();
m_频谱图 = new T_采集预处理_频谱图;
m_频谱图->init();
ret->addWidget(m_频谱图);
m_瀑布图 = new T_采集预处理_瀑布图;
m_瀑布图->init();
ret->addWidget(m_瀑布图);
return ret;
}
void ::paintEvent(QPaintEvent* event) {
// QPainter painter(this);
// painter.fillRect(event->rect(), Qt::white);
QWidget::paintEvent(event);
}
// 2
QVBoxLayout* ::createV() {
auto ret = new QVBoxLayout;
m_频谱图 = new T_信号侦察_频谱图();
m_频谱图->init();
ret->addWidget(m_频谱图, 1);
QStringList headers = {"子带通道", "频点", "出联状态", "锁定状态", "出联时间", "出联时长", "符号率", "频值", "EbNo", "误码率", "电平", "帧定时"};
TreeModel* model = new TreeModel(headers);
QStringList parentData = {"父节点1", "数据2", "数据3"};
model->addNode(parentData);
QModelIndex parentIndex = model->index(0, 0);
QStringList childData = {"子节点1", "数据2", "数据3"};
model->addNode(childData, parentIndex);
treeView = new TreeView;
treeView->setModel(model);
TreeDelegate* delegate = new TreeDelegate;
treeView->setItemDelegate(delegate);
treeView->expandAll();
ret->addWidget(treeView, 1);
return ret;
}
::() {
mainLayout = new QHBoxLayout(this);
mainLayout->setMargin(0);mainLayout->setMargin(0);
mainLayout->addLayout(createV(), 3);
auto fw = new FunctionWidget();
auto layout = new QVBoxLayout;
layout->setSpacing(0);
fw->init("侦察参数", "展示参数信息", layout);
layout->addLayout(create_check_box("载波通道", {"221", "222"}));
layout->addLayout(create_input("中心频率", "MHz"));
layout->addLayout(create_input("带宽", "KHz"));
layout->addLayout(create_input("采样率", "KHz"));
layout->addLayout(create_check_box("调制方式", {"221", "222"}));
layout->addLayout(create_input("符号率", "KBd"));
layout->addLayout(create_check_box("译码方式", {"TPC"}));
mainLayout->addWidget(fw, 1);
}
void ::paintEvent(QPaintEvent* event) {
QPainter painter(this);
//painter.fillRect(event->rect(), Qt::yellow);
painter.end();
QWidget::paintEvent(event);
}
// 3
::() {
mainLayout = new QHBoxLayout(this);
mainLayout->setMargin(0);
mainLayout->addLayout(createV(), 3);
auto fw = new FunctionWidget();
auto layout = new QVBoxLayout;
layout->setSpacing(0);
layout->addLayout(create_check_box("工作模式", {"信号侦察"}));
layout->addLayout(create_check_box("工作模式", {"信号侦察"}));
fw->init("处理参数", "对用户或载波解调译码分析", layout);
mainLayout->addWidget(fw, 1);
}
void ::paintEvent(QPaintEvent* event) {
QPainter painter(this);
//painter.fillRect(event->rect(), Qt::green);
painter.end();
QWidget::paintEvent(event);
}
QVBoxLayout* ::createV() {
QVBoxLayout* ret;
ret = new QVBoxLayout();
ret->addWidget(new QWidget, 1);
QStringList headers = {"子带通道", "频点", "出联状态", "锁定状态", "出联时间", "出联时长", "符号率", "频值", "EbNo", "误码率", "电平", "帧定时"};
TreeModel* model = new TreeModel(headers);
QStringList parentData = {"父节点1", "数据2", "数据3"};
model->addNode(parentData);
QModelIndex parentIndex = model->index(0, 0);
QStringList childData = {"子节点1", "数据2", "数据3"};
model->addNode(childData, parentIndex);
treeView = new TreeView;
treeView->setModel(model);
TreeDelegate* delegate = new TreeDelegate;
treeView->setItemDelegate(delegate);
treeView->expandAll();
ret->addWidget(treeView, 1);
return ret;
}
// 4
::() {
mainLayout = new QHBoxLayout(this);
mainLayout->setMargin(0);
mainLayout->addLayout(createV(), 3);
auto fw = new FunctionWidget();
auto layout = new QVBoxLayout;
layout->setSpacing(0);
layout->addLayout(create_check_box("发射模式", {"多载波合路"}));
layout->addLayout(create_check_box("数据源", {"本地样本"}));
layout->addLayout(create_check_box("切入点", {"HDLC封装"}));
layout->addLayout(create_check_box("信道编码", {"VIT"}));
// TODO 80比特帧封装
// TODO 符号映射
layout->addLayout(create_check_box("调制类型", {"BPSK"}));
layout->addLayout(create_input("发射时刻", {""}));
// TODO 发射样本
fw->init("生成参数", "支持", layout);
mainLayout->addWidget(fw, 1);
}
// 4
void ::paintEvent(QPaintEvent* event) {
QPainter painter(this);
//painter.fillRect(event->rect(), Qt::red);
painter.end();
QWidget::paintEvent(event);
}
QVBoxLayout* ::createV() {
auto ret = new QVBoxLayout;
m_频谱图 = new T_信号生成_频谱图();
m_频谱图->init();
ret->addWidget(m_频谱图, 1);
QStringList headers = {"载波通道", "数据源"};
TreeModel* model = new TreeModel(headers);
QStringList parentData = {"父节点1", "数据2", "数据3"};
model->addNode(parentData);
QModelIndex parentIndex = model->index(0, 0);
QStringList childData = {"子节点1", "数据2", "数据3"};
model->addNode(childData, parentIndex);
treeView = new TreeView;
treeView->setModel(model);
TreeDelegate* delegate = new TreeDelegate;
treeView->setItemDelegate(delegate);
treeView->expandAll();
ret->addWidget(treeView, 1);
return ret;
}
// 5
::() {
mainLayout = new QHBoxLayout(this);
mainLayout->setMargin(0);
mainLayout->addLayout(createV(), 3);
auto fw = new FunctionWidget();
auto layout = new QVBoxLayout;
layout->setSpacing(0);
layout->addLayout(create_check_box("时差", {"10ms", "20ms"}));
layout->addLayout(create_check_box("频差", {"100Hz"}));
layout->addLayout(create_check_box("搜索范围", {"30ms"}));
fw->init("对消参数", "对40M内发射信号对消", layout);
mainLayout->addWidget(fw, 1);
}
void ::paintEvent(QPaintEvent* event) {
QPainter painter(this);
//painter.fillRect(event->rect(), Qt::blue);
painter.end();
QWidget::paintEvent(event);
}
QVBoxLayout* ::createV() {
auto ret = new QVBoxLayout;
m_频谱图 = new T_信号对消_频谱图();
m_频谱图->init();
ret->addWidget(m_频谱图, 1);
QStringList headers = {"子带通道", "频点", "出联状态", "锁定状态", "出联时间", "出联时长", "符号率", "频值", "EbNo", "误码率", "电平", "帧定时"};
TreeModel* model = new TreeModel(headers);
QStringList parentData = {"父节点1", "数据2", "数据3"};
model->addNode(parentData);
QModelIndex parentIndex = model->index(0, 0);
QStringList childData = {"子节点1", "数据2", "数据3"};
model->addNode(childData, parentIndex);
treeView = new TreeView;
treeView->setModel(model);
TreeDelegate* delegate = new TreeDelegate;
treeView->setItemDelegate(delegate);
treeView->expandAll();
ret->addWidget(treeView, 1);
return ret;
}
// 6
::() {
mainLayout = new QHBoxLayout(this);
mainLayout->setMargin(0);
mainLayout->addLayout(createV(), 3);
auto fw = new FunctionWidget();
auto layout = new QVBoxLayout;
layout->setSpacing(0);
layout->addLayout(create_check_box("工作模式", {"信号侦察"}));
layout->addLayout(create_check_box("工作模式", {"信号侦察"}));
fw->init("处理参数", "对用户或载波解调译码分析", layout);
mainLayout->addWidget(fw, 1);
}
void ::paintEvent(QPaintEvent* event) {
QPainter painter(this);
//painter.fillRect(event->rect(), Qt::gray);
painter.end();
QWidget::paintEvent(event);
}
QVBoxLayout* ::createV() {
auto ret = new QVBoxLayout;
m_table = new CustomTableView(this);
auto* model = new CustomModel(this);
auto* delegate = new CustomTableDelegate(this);
m_table->setModel(model);
m_table->setItemDelegate(delegate);
ret->addWidget(m_table);
return ret;
}