110 Commits

Author SHA1 Message Date
69bc3fc829 docs: update 2025-09-25 22:47:28 +02:00
eaeb9bbea8 config: more frequent cluster_listen 2025-09-25 22:07:22 +02:00
096cf12704 feat: measure latency 2025-09-25 21:54:25 +02:00
356ec3d381 feat: simplify udp listen 2025-09-25 20:44:31 +02:00
51bd7bd909 feat: introduce udp state machine 2025-09-24 21:23:00 +02:00
921eec3848 docs: update 2025-09-24 21:12:22 +02:00
921e2c7152 feat(cluster): move member info sync to UDP heartbeat; remove HTTP polling
Broadcast CLUSTER_HEARTBEAT every 5s; peers reply with CLUSTER_NODE_INFO containing resources and labels. Update memberList from received node info and set status/lastSeen; keep UDP discovery responses.

Disable HTTP-based updateAllMembersInfoTaskCallback loop to reduce network and memory overhead.

Add protocol constants HEARTBEAT_MSG and NODE_INFO_MSG; increase UDP buffer to 512 bytes.

Set default heartbeat_interval_ms to 5000 ms.

Fix sdkVersion JSON fallback by converting to const char* before assigning to String.
2025-09-23 22:11:49 +02:00
c11652c123 feat: optimize neopattern example 2025-09-20 22:05:52 +02:00
51d4d4bc94 feat: remove hostname from labels 2025-09-20 15:04:11 +02:00
e95eb09a11 feat: introduce new param type numberRange 2025-09-19 21:49:59 +02:00
4727405be1 feat: rewrite NeoPattern example 2025-09-19 21:02:26 +02:00
93f09c3bb4 feat: unified monitoring service 2025-09-16 20:09:48 +02:00
83d87159fc Merge pull request 'feature/relay-example-ui' (#6) from feature/relay-example-ui into main
Reviewed-on: #6
2025-09-16 18:14:58 +02:00
f7f5918509 fix: builds 2025-09-16 18:14:41 +02:00
95a7e3167e fix: revert low mem treshold 2025-09-16 17:06:14 +02:00
702eec5a13 feat: releay ui example, simplify logging 2025-09-16 15:32:49 +02:00
2d85f560bb feat: serve static files, relay example 2025-09-16 12:12:27 +02:00
0b63efece0 Merge pull request 'feat: logging service' (#5) from feature/logging into main
Reviewed-on: #5
2025-09-16 10:11:27 +02:00
8a2988cb50 feat: logging service 2025-09-16 10:10:23 +02:00
6a30dc0dc1 Merge pull request 'feature/web' (#4) from feature/web into main
Reviewed-on: #4
2025-09-16 08:29:04 +02:00
5229848600 chore: cleanup 2025-09-16 08:28:28 +02:00
adde7a3676 docs: add FS and FileService info 2025-09-16 08:27:05 +02:00
dd0c7cca78 fix: ldscript in all envs 2025-09-16 08:20:45 +02:00
d160630f1d fix: partition layout 2025-09-16 08:10:22 +02:00
98fdc3e1ae WIP: service and broken partitions 2025-09-15 20:33:15 +02:00
089f938796 Merge pull request 'feat: implement Spore framework class as main orchestration layer' (#3) from feature/spore into main
Reviewed-on: #3
2025-09-14 12:24:24 +02:00
4d808938ee fix: update remaining build filters for NeoPixel and NeoPattern environments
- Update build_src_filter for esp01_1m_neopixel, d1_mini_neopixel environments
- Update build_src_filter for esp01_1m_neopattern, d1_mini_neopattern environments
- All environments now compile successfully with new folder structure
2025-09-13 21:42:46 +02:00
554c6ff38d refactor: reorganize project structure with modern C++ namespace organization
- Restructure include/ and src/ directories with logical grouping
- Move core components to spore/core/ (NodeContext, NetworkManager, TaskManager, ClusterManager, ApiServer)
- Move services to spore/services/ (NodeService, NetworkService, ClusterService, TaskService)
- Move types to spore/types/ (NodeInfo, ApiTypes, Config)
- Move internal components to spore/internal/ (Globals)
- Update all #include statements to use new namespace paths
- Update platformio.ini build filters for all environments
- Update all example files to use new include paths
- Maintain backward compatibility for public API
- Improve code organization, maintainability, and scalability

This reorganization follows modern C++ project structure patterns and provides
clear separation between public API, internal implementation, and utilities.
All examples compile successfully with the new structure.
2025-09-13 21:30:07 +02:00
bf17684dc6 feat: implement Spore framework class as main orchestration layer
- Add Spore class as unified interface for all core framework functionality
- Implement setup() and begin() methods for flexible initialization pattern
- Add service registration with addService() for both raw and smart pointers
- Provide accessor methods for core components (getTaskManager, getContext, etc.)
- Automatically include core services (Node, Network, Cluster, Task)
- Update all examples to use simplified Spore framework approach
- Fix circular dependency issues in include structure
- Remove setHostname and setApiPort configuration methods
- Add comprehensive documentation and usage examples

The Spore class encapsulates all core functionality from the base example
and provides a clean, unified API for the entire framework. Examples now
use just spore.setup() -> add services -> spore.begin() -> spore.loop().
2025-09-13 21:17:54 +02:00
72b559e047 refactor: simplify endpoint and capabilities 2025-09-13 19:15:07 +02:00
12caeb0be6 feat: services (#2) 2025-09-13 13:45:24 +02:00
fe045804cb feat: set labels in NodeContext/Info 2025-08-29 20:21:11 +02:00
d3a9802ec9 feat: add labels to NodeInfo 2025-08-29 13:30:08 +02:00
f8e5a9c66f feat: add NeoPixel example 2025-08-28 21:21:04 +02:00
4b63d1011f feat: improve task handling, refactoring 2025-08-28 20:46:27 +02:00
d7e98a41fa feature/capabilities (#1)
Reviewed-on: #1
2025-08-28 11:17:24 +02:00
a9fb4252da fix: change relay example init 2025-08-28 09:54:42 +02:00
a085b3b8ee feat: create examples and corresponding build config 2025-08-28 09:18:11 +02:00
f94d201b88 fix: calc latency when fetching node infos 2025-08-24 20:41:33 +02:00
c8d21a12ad feat: use lambdas again for task registration 2025-08-22 16:16:07 +02:00
07032b56ca docs: remove wrong env vars 2025-08-22 16:11:37 +02:00
5d6a7cf468 docs: fix wrong documentation 2025-08-22 16:10:59 +02:00
f48ddcf9f7 chore: move header files to includes folder 2025-08-22 16:06:05 +02:00
17bdfeaaf0 docs: update README.md 2025-08-22 15:51:47 +02:00
30a5f8b8cb feat: task manager endpoint, updated documentation 2025-08-22 15:47:08 +02:00
d7d307e3ce feat: support D1 2025-08-22 13:13:49 +02:00
c0efba8667 feat: register tasks outside of main 2025-08-22 07:30:47 +02:00
5ccd3ec956 docs: update task manager 2025-08-21 22:34:06 +02:00
0d51816bd3 feat: bind tasks instead of passing fn ptrs when registering a task 2025-08-21 22:24:46 +02:00
f80b594d21 feat: task manager 2025-08-21 21:52:25 +02:00