oscwidget.cpp 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include "oscwidget.h"
  2. #include "ui_oscwidget.h"
  3. #include "OscData.h"
  4. OscWidget::OscWidget(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::OscWidget)
  7. {
  8. ui->setupUi(this);
  9. m_logger = spdlog::get("OSC");
  10. if(m_logger == nullptr)
  11. {
  12. SPDLOG_ERROR("获取 OSC logger 失败");
  13. return;
  14. }
  15. /* 自定义大小 */
  16. // setFixedSize(1920, 1080);
  17. /* 设置眼图窗口 */
  18. m_eyeMap = new EyeMap(ui->widget_display);
  19. SPDLOG_LOGGER_INFO(m_logger, "EyeMap 初始化成功");
  20. OscData.initOsc();
  21. if(OscData.openOSC())
  22. {
  23. SPDLOG_LOGGER_INFO(m_logger, "打开示波器成功");
  24. } else {
  25. SPDLOG_LOGGER_ERROR(m_logger, "打开示波器失败");
  26. return;
  27. }
  28. /* 获取零电压值 */
  29. OscData.printZeroVoltage(OscChannel::CH_A);
  30. OscData.printZeroVoltage(OscChannel::CH_B);
  31. /* 获取电压校准系数 */
  32. OscData.printVoltageCalibration(OscChannel::CH_A);
  33. OscData.printVoltageCalibration(OscChannel::CH_B);
  34. /* 设置示波器参数 */
  35. // OscData.setExternalTrigger(false);
  36. // OscData.setTriggerPosition(0, 0); /* 在中间位置触发 */
  37. OscData.setSampleRate(OscSampleRate::SR_100MHZ);
  38. OscData.setChannelARange(OscChannelRange::CR_5V);
  39. // OscData.setChannelATrigger(true);
  40. // OscData.setChannelCoupling(OscChannel::CH_A, OscChannelCoupling::DC);
  41. // OscData.setChannelCoupling(OscChannel::CH_B, OscChannelCoupling::DC);
  42. // OscData.setTriggerMode(OscTriggerMode::TM_RISE);
  43. // OscData.setTriggerLevel(150);
  44. // OscData.setTriggerSensitivity(OscTriggerSensitivity::TS_HIGH);
  45. // OscData.startCapture();
  46. }
  47. OscWidget::~OscWidget()
  48. {
  49. if(OscData.isOpen())
  50. {
  51. OscData.closeOSC();
  52. }
  53. delete ui;
  54. }
  55. void OscWidget::on_pBtn_capOne_clicked()
  56. {
  57. SPDLOG_LOGGER_INFO(m_logger, "采集一次数据");
  58. // OscData.threadCaptureData();
  59. // OscData.threadProcessData();
  60. // OscData.threadAddColorBySample();
  61. update();
  62. }
  63. void OscWidget::on_pBtn_startCap_clicked()
  64. {
  65. SPDLOG_LOGGER_INFO(m_logger, "开始采集数据");
  66. OscParams.oneGridTime = 200; /* 每格时间0.2us */
  67. OscData.startCapture();
  68. }