#include "oscwidget.h" #include "ui_oscwidget.h" #include "OscData.h" OscWidget::OscWidget(QWidget *parent) : QWidget(parent), ui(new Ui::OscWidget) { ui->setupUi(this); m_logger = spdlog::get("OSC"); if(m_logger == nullptr) { SPDLOG_ERROR("获取 OSC logger 失败"); return; } /* 自定义大小 */ // setFixedSize(1920, 1080); /* 设置眼图窗口 */ m_eyeMap = new EyeMap(ui->widget_display); /* 添加下拉框的选项 */ ui->comboBox_time->addItem("0.05us"); ui->comboBox_time->addItem("0.1us"); ui->comboBox_time->addItem("0.2us"); ui->comboBox_time->addItem("0.5us"); ui->comboBox_time->addItem("1us"); ui->comboBox_time->addItem("2us"); ui->comboBox_time->addItem("5us"); ui->comboBox_time->addItem("10us"); ui->comboBox_time->addItem("20us"); m_mapTime.insert("0.05us", 50); m_mapTime.insert("0.1us", 100); m_mapTime.insert("0.2us", 200); m_mapTime.insert("0.5us", 500); m_mapTime.insert("1us", 1000); m_mapTime.insert("2us", 2000); m_mapTime.insert("5us", 5000); m_mapTime.insert("10us", 10000); m_mapTime.insert("20us", 20000); SPDLOG_LOGGER_INFO(m_logger, "EyeMap 初始化成功"); OscData.initOsc(); if(OscData.openOSC()) { SPDLOG_LOGGER_INFO(m_logger, "打开示波器成功"); } else { SPDLOG_LOGGER_ERROR(m_logger, "打开示波器失败"); return; } /* 获取零电压值 */ OscData.printZeroVoltage(OscChannel::CH_A); OscData.printZeroVoltage(OscChannel::CH_B); /* 获取电压校准系数 */ OscData.printVoltageCalibration(OscChannel::CH_A); OscData.printVoltageCalibration(OscChannel::CH_B); /* 设置示波器参数 */ // OscData.setExternalTrigger(false); // OscData.setTriggerPosition(0, 0); /* 在中间位置触发 */ OscData.setSampleRate(OscSampleRate::SR_100MHZ); OscData.setChannelARange(OscChannelRange::CR_5V); // OscData.setChannelATrigger(true); // OscData.setChannelCoupling(OscChannel::CH_A, OscChannelCoupling::DC); // OscData.setChannelCoupling(OscChannel::CH_B, OscChannelCoupling::DC); // OscData.setTriggerMode(OscTriggerMode::TM_RISE); // OscData.setTriggerLevel(150); // OscData.setTriggerSensitivity(OscTriggerSensitivity::TS_HIGH); // OscData.startCapture(); } OscWidget::~OscWidget() { if(OscData.isOpen()) { OscData.closeOSC(); } delete ui; } void OscWidget::on_pBtn_startCap_clicked() { SPDLOG_LOGGER_INFO(m_logger, "开始采集数据"); OscParams.oneGridTime = m_mapTime[ui->comboBox_time->currentText()]; OscData.startCapture(); } void OscWidget::on_pBtn_resetCap_clicked() { SPDLOG_LOGGER_INFO(m_logger, "重新采集数据"); OscData.stopCapture(); g_eyeMapMatrix.initEyeMapData(ui->widget_display->width(), ui->widget_display->height()); g_eyeDataMatrix.initEyeData(); update(); OscParams.oneGridTime = m_mapTime[ui->comboBox_time->currentText()]; OscData.startCapture(); } void OscWidget::on_pBtn_stopCap_clicked() { SPDLOG_LOGGER_INFO(m_logger, "停止采集"); OscData.stopCapture(); update(); }