1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #ifndef _OSCDATA_H_
- #define _OSCDATA_H_
- #include <QObject>
- #include "USBInterFace.h"
- #include "spdlog/spdlog.h"
- #include "GlobalInfo.h"
- class OscData : public QObject
- {
- Q_OBJECT
- const uint32_t BUFFER_SIZE = 1024 * 128; /* 缓冲区大小,OSCA02的缓冲区应该是128KB的SRAM */
- public:
- OscData();
- ~OscData();
- /* 打开示波器 */
- bool openOSC();
- /* 关闭示波器 */
- void closeOSC();
- /* 开始采集数据 */
- bool startCapture();
- /* 停止采集数据 */
- void stopCapture();
- /***** 设置示波器的功能命令 *****/
- /* 设置示波器的采样率 */
- void setSampleRate(OscSampleRate rate);
- /* 将示波器两个通道合并为一个通道 */
- void setChannelMerge(bool merge);
- /* 设置通道A输入量程 */
- void setChannelARange(unsigned char range);
- private:
- /* 采集数据,这个是子线程 */
- void threadCaptureData();
- private:
- std::shared_ptr<spdlog::logger> m_logger = nullptr;
- std::shared_ptr<USBInterface> m_usbInterface = nullptr;
- bool m_runCapture = false; /* 采集数据的线程标志 */
- bool m_isRunCapture = false; /* 采集数据的线程运行标志,这个标志位作为线程运行的标志 */
- unsigned char* m_devBuffer = nullptr; /* 设备缓冲区指针,拷贝数据用的 */
- unsigned char* m_buffer = nullptr; /* 缓冲区指针,用于存储拷贝出来的数据 */
- unsigned char m_ctrlByte0 = 0; /* 控制字节0 */
- unsigned char m_ctrlByte1 = 0; /* 控制字节1 */
- };
- #endif /* _OSCDATA_H_ */
|