[feat](trx-core): add periodic TLE refresh from CelesTrak

Fetch fresh weather satellite TLEs from CelesTrak on startup and then
once every 24 hours. The dynamic TLE store is checked first in
tle_for_satellite(), falling back to the existing hardcoded TLEs when
the fetch has not yet completed or fails.

- Add global TLE_STORE (RwLock<HashMap<norad_id, (line1, line2)>>)
- Add parse_tle_response() to parse 3-line TLE format
- Add refresh_tles_from_celestrak() async fetch + store update
- Add spawn_tle_refresh_task() for startup + daily refresh loop
- Refactor tle_for_satellite() into norad_id lookup + store check
- Spawn refresh task in trx-server alongside wxsat decoder tasks
- Add reqwest (rustls-tls) dependency to trx-core

https://claude.ai/code/session_01RB19i93dnemDYLcfrhyhqc
Signed-off-by: Claude <noreply@anthropic.com>
This commit is contained in:
Claude
2026-03-28 11:34:44 +00:00
committed by Stan Grams
parent 929f1d3fab
commit 27117a8de5
4 changed files with 608 additions and 37 deletions
+1
View File
@@ -15,3 +15,4 @@ tracing = { workspace = true }
flate2 = { workspace = true }
uuid = { workspace = true }
sgp4 = "2"
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] }