##// END OF EJS Templates
Working Snapshot
Working Snapshot

File last commit:

r0:2d12462f4460 default
r1:ca5cf5cd2804 Working Snapshot default
Show More
stardundeespw_usb.h
71 lines | 1.7 KiB | text/x-c | CLexer
First init /!\ outdated spwplugin!
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