You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
631 B
39 lines
631 B
4 years ago
|
#ifndef FIELD_H
|
||
|
#define FIELD_H
|
||
|
|
||
|
#include <QObject>
|
||
|
|
||
|
class Field
|
||
|
{
|
||
|
private:
|
||
|
quint32 _value;
|
||
|
quint32 _mask;
|
||
|
quint8 _length;
|
||
|
quint8 _position;
|
||
|
quint32 _zeroBasedMask;
|
||
|
|
||
|
bool _isSigned;
|
||
|
bool _isUpdated;
|
||
|
|
||
|
Field(quint32 mask, bool isSigned);
|
||
|
|
||
|
void findLength();
|
||
|
void findPosition();
|
||
|
void findZeroBasedMask();
|
||
|
|
||
|
public:
|
||
|
static Field* fromBitPosition(quint32 bitPosition);
|
||
|
static Field* fromMaskSigned(quint32 mask);
|
||
|
static Field* fromMaskUnsigned(quint32 mask);
|
||
|
|
||
|
quint32 getValue();
|
||
|
void setValue(quint32 value);
|
||
|
|
||
|
bool isUpdated();
|
||
|
|
||
|
void updateValue(quint32 value);
|
||
|
quint32 getRegisterWriteValue();
|
||
|
};
|
||
|
|
||
|
#endif //FIELD_H
|