Public Access
Interstellar: Gargantua with a time dilation clock (Earth today vs. Miller's planet), TARS with his settings and remarks about the house, the Endurance spinning at a solar-driven RPM while a Ranger docks, and the tesseract's bookshelf with the time in binary dust and the Message's first word in Morse on a watch. Your Name: comet Tiamat splitting over Itomori's lake, and kataware-doki, a countdown to sunset from sun.sun where two silhouettes stand on the crater rim during the twilight hour. HomeData gains sunset, sunrise and sun elevation (with an ISO time parser); wrap() and typed() move to el512_pages.h. Share Tech Mono 22 gets the full Latin set. All pages are in the renderer, checked with normal, busy and empty data. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
34 lines
1.3 KiB
C++
34 lines
1.3 KiB
C++
// Interstellar-themed animated pages for the ESPHome display: Gargantua with
|
|
// a time dilation clock, TARS and its settings, the Endurance spinning while a
|
|
// Ranger docks, and the tesseract's bookshelf with the time in dust and a
|
|
// message in Morse. Fan art: layouts, drawings and texts are original.
|
|
//
|
|
// Each function draws a whole page. Call it from a page lambda and list that
|
|
// page under animated_pages; the animation clock is the display's page_age_ms().
|
|
#pragma once
|
|
|
|
#include "el512_pages.h"
|
|
#include "esphome/components/display/display.h"
|
|
#include "esphome/core/time.h"
|
|
|
|
namespace esphome::el512 {
|
|
|
|
class EL512Display;
|
|
|
|
namespace interstellar {
|
|
|
|
struct Fonts {
|
|
display::BaseFont *title{nullptr}; // wide headers (Michroma 12)
|
|
display::BaseFont *large{nullptr}; // wide numbers (Michroma 28)
|
|
display::BaseFont *mono{nullptr}; // readouts and TARS (Share Tech Mono 14)
|
|
display::BaseFont *code{nullptr}; // larger monospace (Share Tech Mono 22)
|
|
};
|
|
|
|
void gargantua(EL512Display &it, const Fonts &f, ESPTime now);
|
|
void tars(EL512Display &it, const Fonts &f, const HomeData &d);
|
|
void endurance(EL512Display &it, const Fonts &f, const HomeData &d, ESPTime now);
|
|
void tesseract(EL512Display &it, const Fonts &f, const HomeData &d, ESPTime now);
|
|
|
|
} // namespace interstellar
|
|
} // namespace esphome::el512
|