Files
pilot/pilot-v2/target/doc/rumqttc/mqttbytes/index.html
Gilles Soulier c5381b7112 Pilot v2: Core implementation + battery telemetry
Major updates:
- Complete Rust rewrite (pilot-v2/) with working MQTT client
- Fixed MQTT event loop deadlock (background task pattern)
- Battery telemetry for Linux (auto-detected via /sys/class/power_supply)
- Home Assistant auto-discovery for all sensors and switches
- Comprehensive documentation (AVANCEMENT.md, CLAUDE.md, roadmap)
- Docker test environment with Mosquitto broker
- Helper scripts for development and testing

Features working:
 MQTT connectivity with LWT
 YAML configuration with validation
 Telemetry: CPU, memory, IP, battery (Linux)
 Commands: shutdown, reboot, sleep, screen (dry-run tested)
 HA discovery and integration
 Allowlist and cooldown protection

Ready for testing on real hardware.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 06:23:00 +01:00

8 lines
6.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="mqttbytes"><title>rumqttc::mqttbytes - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="rumqttc" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0 (ded5c06cf 2025-12-08)" data-channel="1.92.0" data-search-js="search-d69d8955.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module mqttbytes</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../rumqttc/index.html">rumqttc</a><span class="version">0.24.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module mqttbytes</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#mqttbytes" title="mqttbytes">mqttbytes</a></li></ul><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate rumqttc</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">rumqttc</a></div><h1>Module <span>mqttbytes</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/rumqttc/mqttbytes/mod.rs.html#1-336">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><h2 id="mqttbytes"><a class="doc-anchor" href="#mqttbytes">§</a>mqttbytes</h2>
<p>This module contains the low level struct definitions required to assemble and disassemble MQTT 3.1.1 packets in rumqttc.
The <a href="https://docs.rs/bytes"><code>bytes</code></a> crate is used internally.</p>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="v4/index.html" title="mod rumqttc::mqttbytes::v4">v4</a></dt></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.FixedHeader.html" title="struct rumqttc::mqttbytes::FixedHeader">Fixed<wbr>Header</a></dt><dd>Packet type from a byte</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.Error.html" title="enum rumqttc::mqttbytes::Error">Error</a></dt><dd>Error during serialization and deserialization</dd><dt><a class="enum" href="enum.PacketType.html" title="enum rumqttc::mqttbytes::PacketType">Packet<wbr>Type</a></dt><dd>MQTT packet type</dd><dt><a class="enum" href="enum.Protocol.html" title="enum rumqttc::mqttbytes::Protocol">Protocol</a></dt><dd>Protocol type</dd><dt><a class="enum" href="enum.QoS.html" title="enum rumqttc::mqttbytes::QoS">QoS</a></dt><dd>Quality of service</dd></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.check.html" title="fn rumqttc::mqttbytes::check">check</a></dt><dd>Checks if the stream has enough bytes to frame a packet and returns fixed header
only if a packet can be framed with existing bytes in the <code>stream</code>.
The passed stream doesnt modify parent streams cursor. If this function
returned an error, next <code>check</code> on the same parent stream is forced start
with cursor at 0 again (Iter is owned. Only Iters cursor is changed internally)</dd><dt><a class="fn" href="fn.has_wildcards.html" title="fn rumqttc::mqttbytes::has_wildcards">has_<wbr>wildcards</a></dt><dd>Checks if a topic or topic filter has wildcards</dd><dt><a class="fn" href="fn.matches.html" title="fn rumqttc::mqttbytes::matches">matches</a></dt><dd>Checks if topic matches a filter. topic and filter validation isnt done here.</dd><dt><a class="fn" href="fn.qos.html" title="fn rumqttc::mqttbytes::qos">qos</a></dt><dd>Maps a number to QoS</dd><dt><a class="fn" href="fn.valid_filter.html" title="fn rumqttc::mqttbytes::valid_filter">valid_<wbr>filter</a></dt><dd>Checks if the filter is valid</dd><dt><a class="fn" href="fn.valid_topic.html" title="fn rumqttc::mqttbytes::valid_topic">valid_<wbr>topic</a></dt><dd>Checks if a topic is valid</dd></dl></section></div></main></body></html>