id: f2f94a6b08574000b7b7f5cfee0d8109
parent_id: dc49fbd31ae94590870462f7e1819d0a
item_type: 1
item_id: 6c0dcb2a567348fd9796f50c790082e4
item_updated_time: 1780551329943
title_diff: "[]"
body_diff: "[{\"diffs\":[[0,\".37231/\\\n\"],[1,\"- Source code: `<AC>/apps/python/Telemetry_Tool_plugin/Telemetry_Tool_plugin.py`\\\n\"],[0,\"- Config\"]],\"start1\":3577,\"start2\":3577,\"length1\":16,\"length2\":97},{\"diffs\":[[0,\"()` loop\"],[1,\"\\\n   - **Optional** — if bind fails, show as \\\"not available\\\" and continue\"],[0,\"\\\n\\\n3. **P\"]],\"start1\":8419,\"start2\":8419,\"length1\":16,\"length2\":88},{\"diffs\":[[0,\"etry v0.\"],[-1,\"2\"],[1,\"3\"],[0,\".0 — Mul\"]],\"start1\":9165,\"start2\":9165,\"length1\":17,\"length2\":17},{\"diffs\":[[0,\"entation\"],[1,\" by Kunos/Stefano Casillo\"],[0,\".\\\n\\\n### 5\"]],\"start1\":11055,\"start2\":11055,\"length1\":16,\"length2\":41},{\"diffs\":[[0,\"6-06-03)\"],[1,\" — FIXED in v0.3.0\"],[0,\"\\\n\\\n**Bug \"]],\"start1\":15797,\"start2\":15797,\"length1\":16,\"length2\":34},{\"diffs\":[[0,\"ode only sen\"],[-1,\"ds\"],[1,\"t\"],[0,\" HANDSHAKE (\"]],\"start1\":16037,\"start2\":16037,\"length1\":26,\"length2\":25},{\"diffs\":[[0,\"), never sen\"],[-1,\"ds\"],[1,\"t\"],[0,\" SUBSCRIBE_U\"]],\"start1\":16069,\"start2\":16069,\"length1\":26,\"length2\":25},{\"diffs\":[[0,\" respond\"],[-1,\"s\"],[1,\"ed\"],[0,\" once pe\"]],\"start1\":16113,\"start2\":16113,\"length1\":17,\"length2\":18},{\"diffs\":[[0,\"er start\"],[-1,\"s\"],[1,\"ed\"],[0,\" continu\"]],\"start1\":16150,\"start2\":16150,\"length1\":17,\"length2\":18},{\"diffs\":[[0,\"*Fix\"],[-1,\"**: I\"],[1,\" (i\"],[0,\"mplement\"],[-1,\" p\"],[1,\"ed in v0.3.0)**: P\"],[0,\"rope\"]],\"start1\":16321,\"start2\":16321,\"length1\":23,\"length2\":37},{\"diffs\":[[0,\"to port 9996\"],[1,\" — 12 bytes\"],[0,\"\\\n2. Receive \"]],\"start1\":16410,\"start2\":16410,\"length1\":24,\"length2\":35},{\"diffs\":[[0,\"response (parse \"],[1,\"UTF-16LE \"],[0,\"car/driver/track\"]],\"start1\":16454,\"start2\":16454,\"length1\":32,\"length2\":41},{\"diffs\":[[0,\"ack info\"],[1,\", validate identifier=4242\"],[0,\")\\\n3. Sen\"]],\"start1\":16492,\"start2\":16492,\"length1\":16,\"length2\":42},{\"diffs\":[[0,\"to port 9996\"],[1,\" — 12 bytes\"],[0,\"\\\n4. Receive \"]],\"start1\":16567,\"start2\":16567,\"length1\":24,\"length2\":35},{\"diffs\":[[0,\" structs\"],[1,\" at ~20 Hz\\\n5. Periodic keepalive: re-send SUBSCRIBE_UPDATE every 10 seconds\"],[0,\"\\\n\\\n---\\\n\\\n#\"]],\"start1\":16622,\"start2\":16622,\"length1\":16,\"length2\":91},{\"diffs\":[[0,\"(False)`\"],[1,\" in Telemetry_Tool_plugin.py\"],[0,\":\\\n\\\n| Off\"]],\"start1\":17636,\"start2\":17636,\"length1\":16,\"length2\":44},{\"diffs\":[[0,\"### Repo\"],[-1,\" 1\"],[0,\": `rusty\"]],\"start1\":21148,\"start2\":21148,\"length1\":18,\"length2\":16},{\"diffs\":[[0,\"ake \"],[-1,\"rewrite needed\"],[1,\"implemented in v0.3.0\"],[0,\"** |\"]],\"start1\":21476,\"start2\":21476,\"length1\":22,\"length2\":29},{\"diffs\":[[0,\"— IM\"],[-1,\"MEDIATE\"],[1,\"PLEMENTED IN v0.3.0\"],[0,\"\\\n  -\"]],\"start1\":23155,\"start2\":23155,\"length1\":15,\"length2\":27},{\"diffs\":[[0,\"DONE\"],[-1,\" but 9996 needs rewrite\"],[0,\"**\\\n \"]],\"start1\":23228,\"start2\":23228,\"length1\":31,\"length2\":8},{\"diffs\":[[0,\"us\\\n  - [\"],[-1,\" \"],[1,\"x\"],[0,\"] **Rewr\"]],\"start1\":23426,\"start2\":23426,\"length1\":17,\"length2\":17},{\"diffs\":[[0,\"dler** —\"],[-1,\" implement\"],[0,\" 3-phase\"]],\"start1\":23460,\"start2\":23460,\"length1\":26,\"length2\":16},{\"diffs\":[[0,\"ake \"],[-1,\"from Google Doc\"],[1,\"implemented\"],[0,\"\\\n  - [\"],[-1,\" \"],[1,\"x\"],[0,\"] Ph\"]],\"start1\":23483,\"start2\":23483,\"length1\":30,\"length2\":26},{\"diffs\":[[0,\" :9996\\\n  - [\"],[-1,\" \"],[1,\"x\"],[0,\"] Phase 2: R\"]],\"start1\":23559,\"start2\":23559,\"length1\":25,\"length2\":25},{\"diffs\":[[0,\"ds\\\n  - [\"],[-1,\" \"],[1,\"x\"],[0,\"] Phase \"]],\"start1\":23639,\"start2\":23639,\"length1\":17,\"length2\":17},{\"diffs\":[[0,\"96\\\n  - [\"],[-1,\" \"],[1,\"x\"],[0,\"] Receiv\"]],\"start1\":23713,\"start2\":23713,\"length1\":17,\"length2\":17},{\"diffs\":[[0,\" - [\"],[-1,\" ] Configurable via env vars or config file\"],[1,\"x] Periodic keepalive: re-send SUBSCRIBE_UPDATE every 10s\\\n  - [x] Remove port 5005 (Lua plugin) — **DONE, abandoned**\\\n  - [x] Make port 10101 (Telemetry Tool) optional — **DONE, shows as \\\"not available\\\" if bind fails**\\\n  - [ ] Configurable via env vars or config file\\\n  - [ ] Verify KSUDP streaming works with live AC session\"],[0,\"\\\n\\\n- \"]],\"start1\":23771,\"start2\":23771,\"length1\":51,\"length2\":333},{\"diffs\":[[0,\" dump)\\\n  - [\"],[-1,\" \"],[1,\"x\"],[0,\"] Make Telem\"]],\"start1\":24690,\"start2\":24690,\"length1\":25,\"length2\":25},{\"diffs\":[[0,\"ry (\"],[-1,\"enabled only if port 10101 is reachable\"],[1,\"v0.3.0\"],[0,\")\\\n\\\n-\"]],\"start1\":24755,\"start2\":24755,\"length1\":47,\"length2\":14},{\"diffs\":[[0,\"rotocol \"],[1,\"by Kunos \"],[0,\"|\\\n| Tele\"]],\"start1\":26046,\"start2\":26046,\"length1\":16,\"length2\":25},{\"diffs\":[[0,\"or AC |\\\n\"],[1,\"| Telemetry Tool Plugin Source | `<AC>/apps/python/Telemetry_Tool_plugin/Telemetry_Tool_plugin.py` | Packet structure defined in `getBytesForTelemetry()` |\\\n\"],[0,\"| Custom\"]],\"start1\":26190,\"start2\":26190,\"length1\":16,\"length2\":172},{\"diffs\":[[0,\"ORKING ✅\"],[1,\" (OPTIONAL)\"],[0,\"\\\n- Confi\"]],\"start1\":28035,\"start2\":28035,\"length1\":16,\"length2\":27},{\"diffs\":[[0,\"* — \"],[-1,\"make\"],[1,\"if\"],[0,\" rus\"]],\"start1\":28361,\"start2\":28361,\"length1\":12,\"length2\":10},{\"diffs\":[[0,\"try \"],[-1,\"listen only if port is reachable\\\n\\\n### Port 5005 (AC Lua Plugin) — ABANDONED ❌\\\n- CSP lacks compiled LuaSocket C core (`socket/core.dll` / `socket.core.so`)\\\n- `require(\\\"socket\\\")` → `socket.lua` → `require(\\\"socket.core\\\")` → FAILS\\\n- No workaround — CSP has no raw UDP socket API\\\n- Repo `ac-telemetry-plugin` should be archived\"],[1,\"can't bind :10101, it shows as \\\"not available\\\" and continues\\\n\\\n### Port 5005 (AC Lua Plugin) — REMOVED in v0.3.0\\\n- Feed completely removed from rusty-telemetry\\\n- CSP lacks compiled LuaSocket C core (`socket/core.dll` / `socket.core.so`)\"],[0,\"\\\n- I\"]],\"start1\":28380,\"start2\":28380,\"length1\":330,\"length2\":243},{\"diffs\":[[0,\"g\\\n- \"],[1,\"**\"],[0,\"Fix\"],[-1,\": implement proper 3-phase protocol (see Section 5)\"],[1,\"ed in v0.3.0**: proper 12-byte 3-phase handshake\"],[0,\"\\\n\\\n**\"]],\"start1\":30250,\"start2\":30250,\"length1\":62,\"length2\":61},{\"diffs\":[[0,\"ed, \"],[-1,\"use Python plugins if more data needed\"],[1,\"removed from rusty-telemetry v0.3.0\"],[0,\"\\\n\\\n##\"]],\"start1\":30658,\"start2\":30658,\"length1\":46,\"length2\":43},{\"diffs\":[[0,\"101 \"],[-1,\"only\\\n3. For\"],[1,\"(optional, won't fail if AC isn't ready)\\\n3.\"],[0,\" KSU\"]],\"start1\":30838,\"start2\":30838,\"length1\":19,\"length2\":51},{\"diffs\":[[0,\"9996\"],[-1,\"\\\n4. Make Telemetry Tool feed optional (only listen if port 10101 is reachable)\\\n\\\n---\\\n\\\n*Last updated: 2026-06-03 21:12 — Dual-source architecture,\"],[1,\" automatically\\\n4. Telemetry Tool: if plugin is installed and configured, data appears on :10101\\\n\\\n---\\\n\\\n*Last updated: 2026-06-04 — v0.3.0:\"],[0,\" KSU\"]],\"start1\":30949,\"start2\":30949,\"length1\":152,\"length2\":145},{\"diffs\":[[0,\"ndshake \"],[-1,\"docu\"],[1,\"imple\"],[0,\"mented, \"]],\"start1\":31107,\"start2\":31107,\"length1\":20,\"length2\":21},{\"diffs\":[[0,\"gin \"],[-1,\"abandoned*\\\n*Port 10101 confirmed working (6.3 MB). Port 9996 needs 3-phase handshake fix. Port 5005 abandoned (CSP lacks socket.core).*\\\n*Next: implement KSUDP 3-phase handshake in rusty-telemetry, parse Telemetry Tool\"],[1,\"removed, Telemetry Tool made optional*\\\n*Next: verify KSUDP streaming with live AC session, implement\"],[0,\" binary \"],[-1,\"data\"],[1,\"parsers\"],[0,\"*\"]],\"start1\":31135,\"start2\":31135,\"length1\":234,\"length2\":120}]"
metadata_diff: {"new":{},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2026-06-04T05:37:58.918Z
created_time: 2026-06-04T05:37:58.918Z
type_: 13