Bluenet  5.7.0
Bluenet, firmware for nRF52 smart home devices
Loading...
Searching...
No Matches
cs_PresenceDescription.h
Go to the documentation of this file.
1/*
2 * Author: Crownstone Team
3 * Copyright: Crownstone (https://crownstone.rocks)
4 * Date: Oct 23, 2019
5 * License: LGPLv3+, Apache License 2.0, and/or MIT (triple-licensed)
6 */
7
8#pragma once
9
10#include <logging/cs_Logger.h>
11#include <test/cs_TestAccess.h>
12#include <util/cs_Utils.h>
13
14#include <cstdint>
15
16#define LOGPresenceDescriptionDebug LOGvv
17
25
26private:
27 uint64_t _bitmask;
28
29public:
30 PresenceStateDescription(uint64_t bitmask = 0) : _bitmask(bitmask) {}
31
32 // operator uint64_t() const { return _bitmask; }
33
34 friend bool operator==(const PresenceStateDescription& lhs, const PresenceStateDescription& rhs) {
35 return lhs._bitmask == rhs._bitmask;
36 }
37
38 void setLocation(uint8_t locationId) {
39 // TODO: is this if even needed?
40 if (locationId < sizeof(_bitmask) * 8) {
41 CsUtils::setBit(_bitmask, locationId);
42 }
43 }
44
45 uint64_t getBitmask() { return _bitmask; }
46
47 void print() {
48 [[maybe_unused]] uint32_t bitmasks[2] = {
49 static_cast<uint32_t>(_bitmask >> 0), static_cast<uint32_t>(_bitmask >> 32)};
50 LOGPresenceDescriptionDebug("PresenceDesc(0x%04x 0x%04x)", bitmasks[1], bitmasks[0]);
51 }
52};
Class that holds the presence of a profile.
Definition: cs_PresenceDescription.h:23
friend bool operator==(const PresenceStateDescription &lhs, const PresenceStateDescription &rhs)
Definition: cs_PresenceDescription.h:34
void setLocation(uint8_t locationId)
Definition: cs_PresenceDescription.h:38
PresenceStateDescription(uint64_t bitmask=0)
Definition: cs_PresenceDescription.h:30
uint64_t _bitmask
Definition: cs_PresenceDescription.h:27
void print()
Definition: cs_PresenceDescription.h:47
uint64_t getBitmask()
Definition: cs_PresenceDescription.h:45
Definition: cs_TestAccess.h:11
#define LOGPresenceDescriptionDebug
Definition: cs_PresenceDescription.h:16
bool setBit(T &value, uint8_t bit)
Definition: cs_Utils.h:91