Bluenet  5.7.0
Bluenet, firmware for nRF52 smart home devices
Loading...
Searching...
No Matches
cs_GpRegRet.h
Go to the documentation of this file.
1/*
2 * Author: Crownstone Team
3 * Copyright: Crownstone (https://crownstone.rocks)
4 * Date: Apr 15, 2020
5 * License: LGPLv3+, Apache License 2.0, and/or MIT (triple-licensed)
6 */
7
8#pragma once
9
10#include <cs_GpRegRetConfig.h>
11
12#include <cstdint>
13
21class GpRegRet {
22public:
24 FLAG_BROWNOUT = CS_GPREGRET_FLAG_BROWNOUT,
25 FLAG_DFU = CS_GPREGRET_FLAG_DFU_RESET,
26 FLAG_STORAGE_RECOVERED = CS_GPREGRET_FLAG_STORAGE_RECOVERED
27 };
28
29 enum GpRegRetId { GPREGRET = 0, GPREGRET2 = 1 };
30
36 static uint32_t getValue(GpRegRetId registerId = GpRegRetId::GPREGRET);
37
41 static void clearAll();
42
46 static void clearCounter();
47
51 static uint32_t getCounter();
52
56 static void setCounter(uint32_t value);
57
61 static void clearFlags();
62
66 static void setFlag(GpRegRetFlag flag);
67
71 static void clearFlag(GpRegRetFlag flag);
72
76 static bool isFlagSet(GpRegRetFlag flag);
77
78private:
79 static void printRegRet();
80};
Class to write and read the GPREGRET.
Definition: cs_GpRegRet.h:21
static void clearCounter()
Clear counter.
static void setCounter(uint32_t value)
Set counter to a given value.
static void setFlag(GpRegRetFlag flag)
Set a flag.
static void clearFlag(GpRegRetFlag flag)
Clear a flag.
static void clearFlags()
Clear all flags.
static void clearAll()
Clear all GPREGRET bits.
GpRegRetFlag
Definition: cs_GpRegRet.h:23
@ FLAG_BROWNOUT
Definition: cs_GpRegRet.h:24
@ FLAG_DFU
Definition: cs_GpRegRet.h:25
@ FLAG_STORAGE_RECOVERED
Definition: cs_GpRegRet.h:26
static bool isFlagSet(GpRegRetFlag flag)
Returns true when flag is set.
static uint32_t getCounter()
Get the current counter value.
GpRegRetId
Definition: cs_GpRegRet.h:29
@ GPREGRET
Definition: cs_GpRegRet.h:29
@ GPREGRET2
Definition: cs_GpRegRet.h:29
static void printRegRet()
static uint32_t getValue(GpRegRetId registerId=GpRegRetId::GPREGRET)
Get the GPREGRET value.