Skip to content
Snippets Groups Projects
XbeeLink.h 1.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • Franz's avatar
    Franz committed
    #ifndef _XBEELINK_H_
    #define _XBEELINK_H_
    
    #include <QObject>
    #include <QString>
    #include <qdebug.h>
    #include <qmutex.h>
    #include <qbytearray.h>
    #include <list>
    #include "XbeeLinkInterface.h"
    #include <xbee.h>
    #include "CallConv.h"
    
    class XbeeLink : public XbeeLinkInterface 
    {
    	Q_OBJECT
    
    public:
    	XbeeLink(QString portName = "", int baudRate=57600);
    	~XbeeLink();
    	
    public: // virtual functions from XbeeLinkInterface
    
    akistanov's avatar
    akistanov committed
    	QString getPortName() const;
    
    akistanov's avatar
    akistanov committed
    	int getBaudRate() const;
    
    Franz's avatar
    Franz committed
    
    public slots: // virtual functions from XbeeLinkInterface
    	bool setPortName(QString portName);
    	bool setBaudRate(int rate);
    
    oberion's avatar
    oberion committed
    	bool setRemoteAddressHigh(quint32 high);
    	bool setRemoteAddressLow(quint32 low);
    
    Franz's avatar
    Franz committed
    
    public: // virtual functions from LinkInterface
    
        int getId() const;
        QString getName() const;
        bool isConnected() const;
        bool connect();
        bool disconnect();
        qint64 bytesAvailable();
    
    Franz's avatar
    Franz committed
    
    
        // Extensive statistics for scientific purposes
        qint64 getConnectionSpeed() const;
        qint64 getCurrentOutDataRate() const;
        qint64 getCurrentInDataRate() const;
    
    
    Franz's avatar
    Franz committed
    public slots: // virtual functions from LinkInterface
    	void writeBytes(const char *bytes, qint64 length);
    
    protected slots: // virtual functions from LinkInterface
    	void readBytes();
    
    public:
    	void run(); // initiating the thread
    
    protected:
    	xbee_con *m_xbeeCon;
    	int m_id;
    	char *m_portName;
    	unsigned int m_portNameLength;
    	int m_baudRate;
    	bool m_connected;
    	QString m_name;
    
    oberion's avatar
    oberion committed
    	quint32 m_addrHigh;
    	quint32 m_addrLow;
    
    Franz's avatar
    Franz committed
    
    private:
    	bool hardwareConnect();
    	//void CALLTYPE portCallback(xbee_con *XbeeCon, xbee_pkt *XbeePkt);
    };