feat: new shifter types and better gear ratio editor

This commit is contained in:
2026-02-23 11:45:25 +01:00
parent dcb1e6596e
commit 575ccaae42
4 changed files with 551 additions and 106 deletions

View File

@ -112,6 +112,7 @@ enum TrainerConnectionState {
idle,
connecting,
pairing,
connected,
discoveringFtms,
ftmsReady,
error,
@ -131,6 +132,8 @@ class TrainerStatus {
return 'Connecting';
case TrainerConnectionState.pairing:
return 'Pairing';
case TrainerConnectionState.connected:
return 'Connected';
case TrainerConnectionState.discoveringFtms:
return 'Discovering FTMS';
case TrainerConnectionState.ftmsReady:
@ -148,9 +151,11 @@ class TrainerStatus {
case 2:
return const TrainerStatus(state: TrainerConnectionState.pairing);
case 3:
return const TrainerStatus(state: TrainerConnectionState.connected);
case 4:
return const TrainerStatus(
state: TrainerConnectionState.discoveringFtms);
case 4:
case 5:
return const TrainerStatus(state: TrainerConnectionState.ftmsReady);
default:
return const TrainerStatus(state: TrainerConnectionState.idle);
@ -160,7 +165,7 @@ class TrainerStatus {
if (raw is List && raw.isNotEmpty) {
final variant = raw.first;
final value = raw.length > 1 ? raw[1] : null;
if (variant is int && variant == 5) {
if (variant is int && (variant == 5 || variant == 6)) {
return TrainerStatus(
state: TrainerConnectionState.error,
errorCode: value is int ? value : null,
@ -173,7 +178,7 @@ class TrainerStatus {
if (entry != null) {
final key = entry.key;
final value = entry.value;
if ((key is int && key == 5) ||
if ((key is int && (key == 5 || key == 6)) ||
(key is String && key.toLowerCase().contains('error'))) {
return TrainerStatus(
state: TrainerConnectionState.error,
@ -191,6 +196,9 @@ class TrainerStatus {
if (normalized.contains('pairing')) {
return const TrainerStatus(state: TrainerConnectionState.pairing);
}
if (normalized.contains('connected')) {
return const TrainerStatus(state: TrainerConnectionState.connected);
}
if (normalized.contains('discover')) {
return const TrainerStatus(
state: TrainerConnectionState.discoveringFtms);