stardundeespw_usb.h
71 lines
| 1.7 KiB
| text/x-c
|
CLexer
/ spwplugin / stardundeespw_usb.h
r0 | #ifndef STARDUNDEESPW_USB_H | |||
#define STARDUNDEESPW_USB_H | ||||
#include <QObject> | ||||
#include <spw_usb_api.h> | ||||
#include <spw_config_library.h> | ||||
#include <socexplorerplugin.h> | ||||
#include <abstractspwbridge.h> | ||||
#include <QThread> | ||||
#include <QMutex> | ||||
#include <QSemaphore> | ||||
class RMAP_Answer | ||||
{ | ||||
public: | ||||
RMAP_Answer(int ID,char* data,int len) | ||||
{ | ||||
transactionID = ID; | ||||
this->data = data; | ||||
this->len = len; | ||||
} | ||||
int transactionID; | ||||
char* data; | ||||
int len; | ||||
}; | ||||
class stardundeeSPW_USB_Manager: public QThread | ||||
{ | ||||
Q_OBJECT | ||||
public: | ||||
explicit stardundeeSPW_USB_Manager(socexplorerplugin *parent = 0); | ||||
~stardundeeSPW_USB_Manager(); | ||||
void run(); | ||||
bool connectBridge(); | ||||
bool disconnectBridge(); | ||||
int getRMAPtransactionID(); | ||||
int getRMAPanswer(int transactionID,char** buffer); | ||||
bool sendPacket(char* packet,int size); | ||||
private: | ||||
QMutex* handleMutex,*RMAP_AnswersMtx,*RMAP_pending_transaction_IDsMtx; | ||||
QSemaphore* RMAP_AnswersSem; | ||||
void pushRmapPacket(char* packet,int len); | ||||
star_device_handle hDevice; | ||||
socexplorerplugin* plugin; | ||||
bool connected; | ||||
char* SPWPacketBuff; | ||||
QList<RMAP_Answer*> RMAP_Answers; | ||||
QList<int> RMAP_pending_transaction_IDs; | ||||
}; | ||||
class stardundeeSPW_USB : public abstractSpwBridge | ||||
{ | ||||
Q_OBJECT | ||||
public: | ||||
explicit stardundeeSPW_USB(socexplorerplugin *parent = 0); | ||||
signals: | ||||
public slots: | ||||
bool connectBridge(); | ||||
bool disconnectBridge(); | ||||
int pushRMAPPacket(char* packet,int size); | ||||
unsigned int Write(unsigned int *Value,unsigned int count, unsigned int address=0); | ||||
unsigned int Read(unsigned int *Value,unsigned int count, unsigned int address=0); | ||||
private: | ||||
stardundeeSPW_USB_Manager* manager; | ||||
}; | ||||
#endif // STARDUNDEESPW_USB_H | ||||