SDDC_Driver
Loading...
Searching...
No Matches
FX3handler.h
1#ifndef FX3HANDLER_H
2#define FX3HANDLER_H
3
4#include "../../config.h"
5
6#define VENDOR_ID (0x04B4)
7#define STREAMER_ID (0x00F1)
8#define BOOTLOADER_ID (0x00F3)
9
10#include "../../FX3Class.h"
11#include "usb_device.h"
12#include "../../dsp/ringbuffer.h"
13
14using namespace std;
15
16class fx3handler : public fx3class
17{
18public:
19 fx3handler();
20 virtual ~fx3handler(void);
21 bool Open(SDDC::DeviceItem) override;
22 bool Control(FX3Command command, uint8_t data) override;
23 bool Control(FX3Command command, uint32_t data) override;
24 bool Control(FX3Command command, uint64_t data) override;
25 bool SetArgument(uint16_t index, uint16_t value) override;
26 bool GetHardwareInfo(uint32_t* data) override;
27 bool ReadDebugTrace(uint8_t* pdata, uint8_t len) override;
28 void StartStream(ringbuffer<int16_t>& input) override;
29 void StopStream() override;
30 size_t GetDeviceListLength() override;
31 vector<SDDC::DeviceItem> GetDeviceList() override;
32
33private:
34 bool Close(void);
35
36 static void PacketRead(uint32_t data_size, uint8_t *data, void *context);
37
38 std::vector<USBDeviceInfo> usb_device_infos;
39 USBDevice dev;
40 ringbuffer<int16_t> *inputbuffer;
41 bool streamRunning = false;
42 std::thread poll_thread;
43};
44
45
46#endif // FX3HANDLER_H
Definition usb_device.h:47
Definition FX3Class.h:24
Definition FX3handler.h:17
Definition ringbuffer.h:18
Definition types_cpp.h:9