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

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