~aleteoryx/muditaos

ref: 0e8b4c848e3f87f3bbb1f64ef7460cf56017b87f muditaos/module-bsp/bsp/rtc/rtc.hpp -rw-r--r-- 1.1 KiB
0e8b4c84 — Lefucjusz [BH-2108] Fix misaligned charging symbol 3 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include <FreeRTOS.h>
#include <queue.h>
#include <ctime>
#include <cstdint>

namespace bsp::rtc
{
	enum class IrqNotification
    {
        AlarmOccurred = 0x01
    };

	enum class ErrorCode
	{
		OK,
		Error
	};

	// RTC functions are using FreeRTOS functions, RTC should be initialized after scheduler starts.

	ErrorCode init(xQueueHandle qHandle);
	ErrorCode enableAlarmIrq();
	ErrorCode disableAlarmIrq();
	ErrorCode maskAlarmIrq();
	ErrorCode unmaskAlarmIrq();
	ErrorCode enableLpSrtc();
	ErrorCode setDateTimeFromTimestamp(time_t timestamp);
	ErrorCode setDateTime(struct tm* time);
	ErrorCode getCurrentDateTime(struct tm* datetime);
	ErrorCode getCurrentTimestamp(time_t* timestamp);
	ErrorCode setAlarmOnDate(struct tm* datetime);
	ErrorCode setAlarmOnTimestamp(std::uint32_t secs);
	ErrorCode setAlarmInSecondsFromNow(std::uint32_t secs);
	ErrorCode getAlarmTimestamp(std::uint32_t* secs);
	ErrorCode setMinuteAlarm(time_t timestamp);
	void printCurrentDataTime();
}