36 lines
983 B
C
36 lines
983 B
C
|
#pragma once
|
||
|
#include <string>
|
||
|
#include <memory>
|
||
|
#include <thread>
|
||
|
#include <functional>
|
||
|
|
||
|
class IRegsAccess;
|
||
|
|
||
|
class UsbDevice;
|
||
|
class INotify;
|
||
|
class ITransmit;
|
||
|
class IReceive;
|
||
|
|
||
|
class UsbService
|
||
|
{
|
||
|
public:
|
||
|
UsbService(std::shared_ptr<IRegsAccess> fgparegs, std::shared_ptr<IRegsAccess> motorregs, std::shared_ptr<IRegsAccess> scannerregs = nullptr);
|
||
|
virtual ~UsbService();
|
||
|
|
||
|
|
||
|
std::shared_ptr<ITransmit> transmiter();
|
||
|
std::shared_ptr<INotify> notify();
|
||
|
std::shared_ptr<IReceive> receiver();
|
||
|
void set_onconnect_call(std::function<void(bool)> usbhotplugcall);
|
||
|
void set_scannerregs(std::shared_ptr<IRegsAccess> scannerregs);
|
||
|
|
||
|
private:
|
||
|
std::shared_ptr<UsbDevice> usb;
|
||
|
std::shared_ptr<IRegsAccess> fgparegs;
|
||
|
std::shared_ptr<IRegsAccess> motorregs;
|
||
|
std::shared_ptr<IRegsAccess> devregs;
|
||
|
std::shared_ptr<ITransmit> transmit;
|
||
|
std::shared_ptr<INotify> noti;
|
||
|
std::shared_ptr<IReceive> receiv;
|
||
|
std::function<void(bool)> m_usbconnect;
|
||
|
};
|