feat: Add Packet Log Screen for BLE packet logging and exporting

- Implemented PacketLogScreen to display and filter BLE packet logs.
- Added functionality to export logs as CSV and text files.
- Introduced clipboard copy feature for hex data.
- Implemented clear logs functionality with confirmation dialog.
- Enhanced MeshCoreBleService to log TX and RX packets with descriptions.
- Added BufferReader methods for reading unsigned and signed 16-bit integers (big-endian).
- Updated CayenneLppParser to read values as big-endian.
- Created MessageStorageService for persisting messages to local storage.
- Enhanced map markers to display telemetry data including voltage, humidity, and pressure.
This commit is contained in:
Janez T
2025-10-14 15:27:18 +02:00
parent ccec842672
commit 59de627289
20 changed files with 4960 additions and 153 deletions

View File

@@ -23,11 +23,19 @@ class MeshCoreSarApp extends StatefulWidget {
class _MeshCoreSarAppState extends State<MeshCoreSarApp> {
AppThemeMode _themeMode = AppThemeMode.system;
bool _isInitialized = false;
@override
void initState() {
super.initState();
_loadThemePreference();
_initializeApp();
}
Future<void> _initializeApp() async {
await _loadThemePreference();
setState(() {
_isInitialized = true;
});
}
Future<void> _loadThemePreference() async {
@@ -46,12 +54,29 @@ class _MeshCoreSarAppState extends State<MeshCoreSarApp> {
@override
Widget build(BuildContext context) {
if (!_isInitialized) {
return const MaterialApp(
home: Scaffold(
body: Center(
child: CircularProgressIndicator(),
),
),
);
}
return MultiProvider(
providers: [
// Core providers
ChangeNotifierProvider(create: (_) => ConnectionProvider()),
ChangeNotifierProvider(create: (_) => ContactsProvider()),
ChangeNotifierProvider(create: (_) => MessagesProvider()),
ChangeNotifierProvider(
create: (_) {
final provider = MessagesProvider();
// Initialize messages provider asynchronously
provider.initialize();
return provider;
},
),
ChangeNotifierProvider(create: (_) => MapProvider()),
// Tile cache service