bluetooth connectivity layer added

This commit is contained in:
Constantin Leue
2026-07-30 19:46:52 +02:00
parent 310d92f187
commit 5994aee7ad
19 changed files with 1665 additions and 15 deletions
+23 -3
View File
@@ -43,14 +43,24 @@ class DroneProfiles extends Table {
}
/// Einzeilige Einstellungstabelle (id fest 0) fuer app-weite Auswahl, die
/// einen Neustart ueberleben soll: zuletzt aktives Drohnenprofil und die
/// einen Neustart ueberleben soll: zuletzt aktives Drohnenprofil, die
/// zuletzt bearbeitete (autosaved) Mission, um sie beim naechsten Start
/// fortzusetzen (Doku 7.5: Autosave/Mission-Drafts).
/// fortzusetzen (Doku 7.5: Autosave/Mission-Drafts), sowie die
/// Verbindungseinstellungen (Doku Kommunikationsschicht Abschnitt 7).
class AppSettingsTable extends Table {
IntColumn get id => integer()();
IntColumn get activeDroneProfileId => integer().nullable()();
IntColumn get currentMissionId => integer().nullable()();
/// Gemerkte MAC-Adresse des Bluetooth-Zielgeraets (Doku Kommunikations-
/// schicht 3.2a) - entweder manuell gewaehlt oder automatisch anhand des
/// "mLRS"-Namenspraefix aufgeloest.
TextColumn get connectionDeviceAddress => text().nullable()();
/// "Beim Wechsel in Fly automatisch verbinden" (Doku 7), Standard an.
BoolColumn get connectionAutoConnect =>
boolean().withDefault(const Constant(true))();
@override
Set<Column> get primaryKey => {id};
}
@@ -62,7 +72,7 @@ class AppDatabase extends _$AppDatabase {
AppDatabase.forTesting(super.executor);
@override
int get schemaVersion => 2;
int get schemaVersion => 3;
@override
MigrationStrategy get migration => MigrationStrategy(
@@ -73,6 +83,16 @@ class AppDatabase extends _$AppDatabase {
await m.createTable(droneProfiles);
await m.createTable(appSettingsTable);
}
if (from < 3) {
await m.addColumn(
appSettingsTable,
appSettingsTable.connectionDeviceAddress,
);
await m.addColumn(
appSettingsTable,
appSettingsTable.connectionAutoConnect,
);
}
},
);