Release fw 0.8.4: doc sync, System UI, BT/FM polish.

Align README, manual, and backlog to 0.8.4; add Web UI System tab for OTA/DSP uploads, serial in health header, FM seek down, and BT1035 paired list plus auto-reconnect API.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-07 09:56:44 +02:00
co-authored by Cursor
parent b9ed8a2dcd
commit 176cdd9319
28 changed files with 988 additions and 66 deletions
@@ -17,6 +17,7 @@
#include "core/BluetoothJson.hpp"
#include <expected>
#include <vector>
namespace bluetooth {
@@ -94,6 +95,34 @@ public:
*/
[[nodiscard]] std::expected<void, bt1035::Bt1035Error> disconnect();
/**
* @brief listPaired — read paired remotes from the module.
*
* @dname listPaired
* @return Device list on success, or Bt1035Error.
* @pubstate queries AT+PLIST via the driver.
*
* @author Michele Bigi
* @date 2026-07-07
*/
[[nodiscard]] std::expected<std::vector<core::Bt1035PairedDevice>,
bt1035::Bt1035Error>
listPaired();
/**
* @brief setAutoReconnect — configure power-on reconnect attempts.
*
* @dname setAutoReconnect
* @param times 0 off, 115 per Feasycom manual.
* @return Ok on success, or Bt1035Error.
* @pubstate writes AT+AUTOCONN via the driver.
*
* @author Michele Bigi
* @date 2026-07-07
*/
[[nodiscard]] std::expected<void, bt1035::Bt1035Error> setAutoReconnect(
std::uint8_t times);
private:
bt1035::Bt1035Driver& driver_;
bool pairingActive_;
@@ -28,12 +28,26 @@ BluetoothService::refreshStatus()
.booted = driver_.isBooted(),
.pairing = pairingActive_,
.a2dpState = core::Bt1035A2dpState::Standby,
.deviceName = {},
.autoReconnect = 0U,
};
if (!status.booted) {
return status;
}
if (auto name = driver_.queryDeviceName(); name) {
status.deviceName = std::move(*name);
} else {
return std::unexpected(name.error());
}
if (auto reconnect = driver_.queryAutoReconnect(); reconnect) {
status.autoReconnect = *reconnect;
} else {
return std::unexpected(reconnect.error());
}
auto a2dp = driver_.queryA2dpState();
if (!a2dp) {
return std::unexpected(a2dp.error());
@@ -65,4 +79,16 @@ std::expected<void, bt1035::Bt1035Error> BluetoothService::disconnect()
return driver_.disconnectA2dp();
}
std::expected<std::vector<core::Bt1035PairedDevice>, bt1035::Bt1035Error>
BluetoothService::listPaired()
{
return driver_.queryPairedList();
}
std::expected<void, bt1035::Bt1035Error> BluetoothService::setAutoReconnect(
std::uint8_t times)
{
return driver_.setAutoReconnect(times);
}
} // namespace bluetooth