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
14class fx3handler : public fx3class
15{
16public:
17 fx3handler();
18 virtual ~fx3handler(void);
19 bool Open(SDDC::DeviceItem) override;
20 bool Control(FX3Command command, uint8_t data) override;
21 bool Control(FX3Command command, uint32_t data) override;
22 bool Control(FX3Command command, uint64_t data) override;
23 bool SetArgument(uint16_t index, uint16_t value) override;
24 bool GetHardwareInfo(uint32_t* data) override;
25 bool ReadDebugTrace(uint8_t* pdata, uint8_t len) override;
26 void StartStream(ringbuffer<int16_t>& input) override;
27 void StopStream() override;
28 size_t GetDeviceListLength() override;
29 std::vector<SDDC::DeviceItem> GetDeviceList() override;
30
31private:
32 bool Close(void);
33
34 static void PacketRead(uint32_t data_size, uint8_t *data, void *context);
35
36 std::vector<USBDeviceInfo> usb_device_infos;
37 USBDevice dev;
38 ringbuffer<int16_t> *inputbuffer;
39 bool streamRunning = false;
40 std::thread poll_thread;
41};
42
43
44#endif // FX3HANDLER_H
Definition usb_device.h:59
Definition FX3Class.h:54
Definition FX3handler.h:15
Definition ringbuffer.h:49
Definition FX3Class.h:46