#pragma once
#include <string>
#include <array>
#include <ctime>

extern "C" void RTC_Alarm_IRQHandler(void);

namespace RTClock
{
	enum AlarmNames
	{
		alarmA = 0,
		alarmB,
	};
	
typedef std::array<char, 38> CPFTimestamp;
	
	void initRTC(void);
	CPFTimestamp getDateTimeStamp(void);
	CPFTimestamp getDateTimeStampFast(void);
	tm getDateTimeStruct();
	bool setAlarm(AlarmNames alarmNum, time_t alarmTime);
	void clearAlarm(AlarmNames alarmNum);
	void synchToGPS(std::string gpsTime, std::string gpsDate);
	std::string getMonthText(uint8_t monthNum);
}