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.
 
 

54 lines
972 B

#ifndef FIELD_H
#define FIELD_H
#include <QObject>
class Field
{
private:
quint32 _value;
quint64 _valueLong;
quint32 _mask;
quint64 _maskLong;
quint8 _length;
quint8 _position;
quint32 _zeroBasedMask;
quint64 _zeroBasedMaskLong;
bool _isSigned;
bool _isUpdated;
Field(quint32 mask, bool isSigned);
Field(quint64 mask);
void findLength();
void findLengthLong();
void findPosition();
void findPositionLong();
void findZeroBasedMask();
void findZeroBasedMaskLong();
public:
static Field* fromBitPosition(quint32 bitPosition);
static Field* fromMaskSigned(quint32 mask);
static Field* fromMaskUnsigned(quint32 mask);
static Field* fromMaskUnsignedLong(quint64 maskLong);
quint32 getValue();
void setValue(quint32 value);
void setValueLong(quint64 valueLong);
bool isUpdated();
void updateValue(quint32 value);
quint32 getRegisterWriteValue();
quint64 getRegisterWriteValueLong();
};
#endif //FIELD_H