eyemap.cpp 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include "eyemap.h"
  2. #include "ui_eyemap.h"
  3. #include <QApplication>
  4. #include <QPainter>
  5. EyeMap::EyeMap(QWidget *parent) :
  6. QWidget(parent),
  7. ui(new Ui::EyeMap)
  8. {
  9. ui->setupUi(this);
  10. m_logger = spdlog::get("OSC");
  11. if(m_logger == nullptr)
  12. {
  13. SPDLOG_ERROR("获取 OSC logger 失败");
  14. return;
  15. }
  16. /* 自定义大小 */
  17. setFixedSize(1600, 900);
  18. SPDLOG_LOGGER_INFO(m_logger, "EyeMap 初始化成功");
  19. OscData.initOsc();
  20. if(OscData.openOSC())
  21. {
  22. SPDLOG_LOGGER_INFO(m_logger, "打开示波器成功");
  23. } else {
  24. SPDLOG_LOGGER_ERROR(m_logger, "打开示波器失败");
  25. return;
  26. }
  27. /* 获取零电压值 */
  28. OscData.getZeroVoltage();
  29. OscData.printZeroVoltage(OscChannel::CH_A);
  30. OscData.printZeroVoltage(OscChannel::CH_B);
  31. /* 获取电压校准系数 */
  32. OscData.getVoltageCalibration();
  33. OscData.printVoltageCalibration(OscChannel::CH_A);
  34. OscData.printVoltageCalibration(OscChannel::CH_B);
  35. /* 设置示波器参数 */
  36. OscData.setExternalTrigger(false);
  37. OscData.setTriggerPosition(0, 0); /* 在中间位置触发 */
  38. OscData.setSampleRate(OscSampleRate::SR_100MHZ);
  39. OscData.setChannelARange(OscChannelRange::CR_8V);
  40. OscData.setChannelATrigger(true);
  41. OscData.setChannelCoupling(OscChannel::CH_A, OscChannelCoupling::DC);
  42. OscData.setChannelCoupling(OscChannel::CH_B, OscChannelCoupling::DC);
  43. OscData.setTriggerMode(OscTriggerMode::TM_RISE);
  44. OscData.setTriggerLevel(128);
  45. OscData.setTriggerSensitivity(OscTriggerSensitivity::TS_LOW);
  46. OscData.startCapture();
  47. }
  48. EyeMap::~EyeMap()
  49. {
  50. if(OscData.isOpen())
  51. {
  52. OscData.closeOSC();
  53. }
  54. delete ui;
  55. }
  56. /**
  57. * @brief 绘制图形
  58. *
  59. * @param event
  60. */
  61. void EyeMap::paintEvent(QPaintEvent *event)
  62. {
  63. QPainter painter(this);
  64. /* 绘制背景 */
  65. painter.setRenderHint(QPainter::Antialiasing, true);
  66. painter.setPen(QPen(Qt::blue, 1, Qt::SolidLine));
  67. painter.setBrush(QBrush(Qt::black, Qt::SolidPattern));
  68. painter.drawRect(0, 0, 1600, 900);
  69. /* 绘制刻度 */
  70. /* 绘制网格 */
  71. /* 绘制眼图 */
  72. }