Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F120622614
hriboard.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Jul 5, 16:36
Size
2 KB
Mime Type
text/x-c++
Expires
Mon, Jul 7, 16:36 (2 d)
Engine
blob
Format
Raw Data
Handle
27209694
Attached To
R2671 HHRI-software
hriboard.h
View Options
#ifndef HRIBOARD_H
#define HRIBOARD_H
#include <QObject>
#include <QList>
#include <QSerialPort>
#include "../Firmware/src/definitions.h"
typedef comm_VarType VarType;
typedef comm_VarAccess VarAccess;
class SyncVar
{
public:
SyncVar() = default;
SyncVar(quint8 index, QString name, VarAccess access, int size);
virtual ~SyncVar();
void setValue(QByteArray const &newValue);
QByteArray getValue() const;
quint8 getIndex() const;
QString getName() const;
int getSize() const;
virtual double toDouble() const = 0;
virtual QString toString() const = 0;
protected:
QByteArray value;
private:
const quint8 index;
const QString name;
const VarAccess access;
const int size;
};
template<typename T>
class SyncVarT : public SyncVar
{
public:
SyncVarT(quint8 index, QString name, VarAccess access, int size) :
SyncVar(index, name, access, size)
{
}
double toDouble() const
{
return (double)*(T*)value.data();
}
QString toString() const
{
return QString::number(*(T*)value.data());
}
};
SyncVar* makeSyncVar(int index, QString name, VarType type, VarAccess access,
int size);
class HriBoard : public QObject
{
Q_OBJECT
public:
HriBoard();
~HriBoard();
void openLink(QString comPortName);
void setStreamedVars(QList<SyncVar const*> varsToStream);
void setVar(SyncVar const* var, QByteArray value);
//void getVar(SyncVar const* var);
static QStringList getComPorts();
public slots:
void onReceivedData();
signals:
void syncVarsListReceived(QList<SyncVar const*>);
void syncVarsUpdated();
protected:
void sendPacket(quint8 messageType, QByteArray dataBytes = QByteArray());
private:
QSerialPort serial;
QList<SyncVar*> syncVars;
QList<SyncVar*> streamedVars;
QByteArray rxBuffer;
int rxCurrentMessageType, rxBytesCount;
quint8 firstHalfByte;
quint8 rxDataBytesBuffer[1024];
int streamID;
int streamPacketSize;
};
#endif
Event Timeline
Log In to Comment