Files
canFD_esp32_glm-oh-my-open-/rtc_manager.h
2026-02-20 17:50:40 +00:00

51 lines
943 B
C

// rtc_manager.h - RTC Manager for DS3231
#ifndef RTC_MANAGER_H
#define RTC_MANAGER_H
#include <Arduino.h>
#include <RTClib.h>
#include <Wire.h>
#include <time.h>
#include "config.h"
#include "task_config.h"
// RTC instance
extern RTC_DS3231 rtc;
// RTC status
extern bool rtcInitialized;
// Initialize RTC
bool initRTC();
// Check if RTC is running
bool isRTCRunning();
// Set RTC time (Unix timestamp)
void setRTCTime(uint32_t unixtime);
// Get RTC time (Unix timestamp)
uint32_t getRTCTime();
// Get formatted time string
String getRTCTimeString();
// Sync time from NTP (WiFi STA mode)
bool syncTimeFromNTP();
// Time Sync Task (runs on Core 1)
void timeSyncTask(void *pvParameters);
// Get current timestamp in microseconds
uint64_t getMicrosTimestamp();
// Convert Unix time to formatted string
String unixTimeToString(uint32_t unixtime);
// Set system time from RTC
void syncSystemTimeFromRTC();
#endif // RTC_MANAGER_H