#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); 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_capOne_clicked() { SPDLOG_LOGGER_INFO(m_logger, "采集一次数据"); // OscData.threadCaptureData(); // OscData.threadProcessData(); // OscData.threadAddColorBySample(); update(); } void OscWidget::on_pBtn_startCap_clicked() { SPDLOG_LOGGER_INFO(m_logger, "开始采集数据"); OscParams.oneGridTime = 200; /* 每格时间0.2us */ OscData.startCapture(); }