+ flags1 = decode_pair(buf + 21);
+ flags2 = decode_pair(buf + 23);
+
+ if (flags2 & FLAGS2_RPM_MASK) {
+ analog->meaning->mq = SR_MQ_FREQUENCY;
+ analog->meaning->unit = SR_UNIT_REVOLUTIONS_PER_MINUTE;
+ } else if (flags2 & FLAGS2_COUNT_MASK) {
+ analog->meaning->mq = SR_MQ_COUNT;
+ analog->meaning->unit = SR_UNIT_UNITLESS;
+ }
+
+ if (flags1 & FLAGS1_HOLD_MASK)
+ analog->meaning->mqflags |= SR_MQFLAG_HOLD;
+ if (flags2 & FLAGS2_MIN_MASK)
+ analog->meaning->mqflags |= SR_MQFLAG_MIN;
+ if (flags2 & FLAGS2_MAX_MASK)
+ analog->meaning->mqflags |= SR_MQFLAG_MAX;
+ if (flags2 & FLAGS2_AVG_MASK)
+ analog->meaning->mqflags |= SR_MQFLAG_AVG;
+