5#include <ArduinoLowPower.h>
12#include "Hardware/Loom_Hypnos/SDManager.h"
13#include "Loom_Manager.h"
16using InterruptCallbackFunction = void (*)();
60enum HypnosInterruptType{
74 void measure()
override {};
76 void initialize()
override {};
78 void power_up()
override {};
79 void power_down()
override {};
82 void package()
override;
85 volatile bool shouldPowerUp =
true;
95 Loom_Hypnos(
Manager& man, HYPNOS_VERSION version, TIME_ZONE zone,
bool use_custom_time =
false,
bool useSD =
true);
111 void enable(
bool enable33 =
true,
bool emable5 =
true);
135 bool registerInterrupt(InterruptCallbackFunction isrFunc =
nullptr,
int interruptPin = 12, HypnosInterruptType interruptType = SLEEP,
int triggerState = LOW);
159 void sleep(
bool waitForSerial =
false);
207 bool isRTCInitialized() {
return RTC_initialized; };
222 bool RTC_initialized =
false;
224 bool custom_time =
false;
230 std::map<int, std::tuple<InterruptCallbackFunction, int, HypnosInterruptType>> pinToInterrupt;
233 void initializeRTC();
235 void createTimezoneMap();
236 std::map<const char*, TIME_ZONE> timezoneMap;
238 DateTime get_utc_time();
241 void dateTime_toString(DateTime time,
char array[21]);
249 void post_sleep(
bool waitForSerial);
Definition: Loom_Hypnos.h:70
const char * getDefaultFilename()
Definition: Loom_Hypnos.h:194
void setInterruptDuration(const TimeSpan duration)
Definition: Loom_Hypnos.cpp:346
SDManager * getSDManager()
Definition: Loom_Hypnos.h:199
void getTimeZoneFromSD(const char *fileName)
Definition: Loom_Hypnos.cpp:459
bool registerInterrupt(InterruptCallbackFunction isrFunc=nullptr, int interruptPin=12, HypnosInterruptType interruptType=SLEEP, int triggerState=LOW)
Definition: Loom_Hypnos.cpp:101
void wakeup()
Definition: Loom_Hypnos.cpp:169
void enable(bool enable33=true, bool emable5=true)
Definition: Loom_Hypnos.cpp:55
DateTime getCurrentTime()
Definition: Loom_Hypnos.cpp:246
void set_custom_time()
Definition: Loom_Hypnos.cpp:265
void disable()
Definition: Loom_Hypnos.cpp:80
char * readFile(const char *fileName)
Definition: Loom_Hypnos.h:189
TimeSpan getSleepIntervalFromSD(const char *fileName)
Definition: Loom_Hypnos.cpp:432
bool reattachRTCInterrupt(int interruptPin=12)
Definition: Loom_Hypnos.cpp:143
bool logToSD()
Definition: Loom_Hypnos.cpp:514
~Loom_Hypnos()
Definition: Loom_Hypnos.cpp:29
void setLogName(const char *name)
Definition: Loom_Hypnos.h:204
void sleep(bool waitForSerial=false)
Definition: Loom_Hypnos.cpp:368
Definition: Loom_Manager.h:18
Definition: SDManager.h:15
void setLogName(const char *name)
Definition: SDManager.h:107
char * readFile(const char *fileName)
Definition: SDManager.cpp:283
const char * getDefaultFilename()
Definition: SDManager.h:73