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.

55 lines
972 B

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