define masks for tiny components

This commit is contained in:
Nicu Hodos 2022-10-28 08:47:27 +02:00
parent 4ec9b50b1c
commit 5284ce9b41

View File

@ -1,19 +1,25 @@
#pragma once
#define ID(value) (value & 0x1F)
#define VCC(value) ((value & 0x1FFF) << 5)
#define TEMP(value) (((unsigned long)value & 0x3FF) << 18)
#define HUMIDITY(value) (((unsigned long)value & 0x3FF) << 18)
#define VALUE(value) (((unsigned long)value & 0x3FF) << 18)
#define STATE(value) ((value & 0x1) << 27)
#define TYPE(value) (((unsigned long)value & 0xF) << 28)
#define MASK_ID 0x1F
#define MASK_VCC 0x1FFF
#define MASK_VALUE 0x3FF
#define MASK_STATE 0x1
#define MASK_TYPE 0xF
#define GET_TYPE(value) (((unsigned long)value >> 28) & 0xF)
#define GET_STATE(value) ((value >> 27) & 0x1)
#define GET_TEMP(value) (((unsigned long)value >> 18) & 0x3FF)
#define GET_HUMIDITY(value) (((unsigned long)value >> 18) & 0x3FF)
#define GET_VALUE(value) (((unsigned long)value >> 18) & 0x3FF)
#define GET_VCC(value) (((unsigned long)value >> 5) & 0x1FFF)
#define ID(value) (value & 0x1F)
#define VCC(value) ((value & MASK_VCC) << 5)
#define TEMP(value) (((unsigned long)value & MASK_VALUE) << 18)
#define HUMIDITY(value) (((unsigned long)value & MASK_VALUE) << 18)
#define VALUE(value) (((unsigned long)value & MASK_VALUE) << 18)
#define STATE(value) ((value & MASK_STATE) << 27)
#define TYPE(value) (((unsigned long)value & MASK_TYPE) << 28)
#define GET_TYPE(value) (((unsigned long)value >> 28) & MASK_TYPE)
#define GET_STATE(value) ((value >> 27) & MASK_STATE)
#define GET_TEMP(value) (((unsigned long)value >> 18) & MASK_VALUE)
#define GET_HUMIDITY(value) (((unsigned long)value >> 18) & MASK_VALUE)
#define GET_VALUE(value) (((unsigned long)value >> 18) & MASK_VALUE)
#define GET_VCC(value) (((unsigned long)value >> 5) & MASK_VCC)
enum SensorType : unsigned short {
GENERIC = 4,