Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion lib/app/scopes/flows/selected_data_source_scope.dart
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,14 @@ class SelectedDataSourceScope extends AutoRouter {
create: (context) => OutgoingPackagesCubit(
dataSource: context.read(),
developerToolsParametersStorage: context.read(),
),
)..subscribeTo(
context
.read<DeveloperToolsParametersStorage>()
.data
.subscriptionParameterIds
.map(DataSourceParameterId.fromInt)
.toSet(),
),
),

BlocProvider(
Expand Down
2 changes: 1 addition & 1 deletion lib/app/scopes/screens/charging_screen_wrapper.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class ChargingScreenWrapper extends StatelessWidget
create: (context) {
context
.read<OutgoingPackagesCubit>()
.subscribeTo(BatteryDataCubit.kDefaultSubscribeParameters);
.subscribeTo(BatteryDataCubit.kAllParameterIds);
return BatteryDataCubit(
dataSource: context.read(),
hardwareCount: context.read<HardwareCount>(),
Expand Down
99 changes: 18 additions & 81 deletions lib/domain/data_source/blocs/battery_data_cubit.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
import 'dart:async';

import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:meta/meta.dart';
import 'package:pixel_app_flutter/domain/app/app.dart';
import 'package:pixel_app_flutter/domain/data_source/data_source.dart';
import 'package:pixel_app_flutter/domain/data_source/models/package/incoming/incoming_data_source_packages.dart';
import 'package:pixel_app_flutter/domain/data_source/models/package/outgoing/outgoing_data_source_packages.dart';
import 'package:pixel_app_flutter/domain/data_source/models/package_data/package_data.dart';
import 'package:re_seedwork/re_seedwork.dart';

Expand Down Expand Up @@ -112,10 +109,6 @@ class BatteryDataCubit extends Cubit<BatteryDataState>
BatteryDataCubit({
required this.dataSource,
required HardwareCount hardwareCount,
this.temperatureUpdateDuration = kDefaultTemperatureUpdateDuration,
this.voltageUpdateDuration = kDefaultVoltageUpdateDuration,
this.temperatureParametersId = kDefaultTemperatureParameterIds,
this.voltageParametersId = kDefaultVoltageParameterIds,
}) : super(
BatteryDataState.initial(
batteriesCount: hardwareCount.batteries,
Expand Down Expand Up @@ -211,6 +204,9 @@ class BatteryDataCubit extends Cubit<BatteryDataState>
});
}

@protected
final DataSource dataSource;

static Set<DataSourceParameterId> kDefaultSubscribeParameters = {
const DataSourceParameterId.highCurrent1(),
const DataSourceParameterId.highCurrent2(),
Expand All @@ -220,80 +216,21 @@ class BatteryDataCubit extends Cubit<BatteryDataState>
const DataSourceParameterId.maxTemperature2(),
};

static const kDefaultTemperatureUpdateDuration = Duration(seconds: 3);
static const kDefaultVoltageUpdateDuration = Duration(seconds: 3);

@protected
final DataSource dataSource;

@protected
final Duration temperatureUpdateDuration;

@protected
final Duration voltageUpdateDuration;

@protected
final List<DataSourceParameterId> temperatureParametersId;

@protected
final List<DataSourceParameterId> voltageParametersId;

@visibleForTesting
static const kDefaultVoltageParameterIds = [
DataSourceParameterId.lowVoltageMinMaxDelta1(),
DataSourceParameterId.lowVoltageMinMaxDelta2(),
DataSourceParameterId.lowVoltage1(),
DataSourceParameterId.lowVoltage2(),
];

@visibleForTesting
static const kDefaultTemperatureParameterIds = [
DataSourceParameterId.temperature1(),
DataSourceParameterId.temperature2(),
];

@visibleForTesting
Timer? temperatureTimer;

@visibleForTesting
Timer? voltageTimer;

void startUpdatingTemperature() {
cancelUpdatingTemperature();
_sendValueRequestPackages(temperatureParametersId);
temperatureTimer = Timer.periodic(temperatureUpdateDuration, (timer) {
_sendValueRequestPackages(temperatureParametersId);
});
}

void startUpdatingVoltage() {
cancelUpdatingVoltage();
_sendValueRequestPackages(voltageParametersId);
voltageTimer = Timer.periodic(voltageUpdateDuration, (timer) {
_sendValueRequestPackages(voltageParametersId);
});
}

void cancelUpdatingTemperature() {
temperatureTimer?.cancel();
temperatureTimer = null;
}

void cancelUpdatingVoltage() {
voltageTimer?.cancel();
voltageTimer = null;
}
static Set<DataSourceParameterId> kDefaultVoltageParameterIds = {
const DataSourceParameterId.lowVoltageMinMaxDelta1(),
const DataSourceParameterId.lowVoltageMinMaxDelta2(),
const DataSourceParameterId.lowVoltage1(),
const DataSourceParameterId.lowVoltage2(),
};

void _sendValueRequestPackages(List<DataSourceParameterId> ids) {
for (final id in ids) {
final package = OutgoingValueRequestPackage(parameterId: id);
dataSource.sendPackage(package);
}
}
static Set<DataSourceParameterId> kDefaultTemperatureParameterIds = {
const DataSourceParameterId.temperature1(),
const DataSourceParameterId.temperature2(),
};

@override
Future<void> close() {
cancelUpdatingTemperature();
return super.close();
}
static Set<DataSourceParameterId> kAllParameterIds = {
...kDefaultSubscribeParameters,
...kDefaultTemperatureParameterIds,
...kDefaultVoltageParameterIds,
};
}
5 changes: 1 addition & 4 deletions lib/domain/data_source/blocs/outgoing_packages_cubit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,7 @@ class OutgoingPackagesCubit extends Cubit<DeveloperToolsParameters>
OutgoingPackagesCubit({
required this.dataSource,
required this.developerToolsParametersStorage,
}) : subscribeToParameterIdList = developerToolsParametersStorage
.data.subscriptionParameterIds
.map(DataSourceParameterId.fromInt)
.toSet(),
}) : subscribeToParameterIdList = {},
super(
developerToolsParametersStorage.read().when(
error: (e) => developerToolsParametersStorage.defaultValue,
Expand Down
8 changes: 2 additions & 6 deletions lib/domain/data_source/models/developer_tools_parameters.dart
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class DeveloperToolsParameters {
),
requestsPeriodInMillis: map['requestsPeriodInMillis'] as int,
subscriptionParameterIds:
(map['subscriptionParameterIds'] as Set).cast<int>(),
(map['subscriptionParameterIds'] as List).cast<int>().toSet(),
enableRandomErrorGenerationForDemoDataSource:
map['enableRandomErrorGenerationForDemoDataSource'] as bool,
enableHandshakeResponse: map['enableHandshakeResponse'] as bool,
Expand All @@ -60,11 +60,7 @@ class DeveloperToolsParameters {
requestsPeriodInMillis = 800,
enableHandshakeResponse = true,
handshakeResponseTimeoutInMillis = 0,
subscriptionParameterIds = const {
// 125, //speed
// 174, // voltage
// 239, // current
};
subscriptionParameterIds = const {};

final DataSourceProtocolVersion protocolVersion;

Expand Down
58 changes: 2 additions & 56 deletions lib/l10n/arb/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -143,66 +143,12 @@
},
"chargingGeneralTabTitle": "General",
"chargingTemperatureTabTitle": "Temperature",
"chargingTemperatureNTabTitle": "Temperature {number} battery",
"@chargingTemperatureNTabTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"chargingVoltageTabTitle": "Voltage",
"chargingVoltageNTabTitle": "Voltage {number} battery",
"@chargingVoltageNTabTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"totalVoltageTileTitle": "Total voltage",
"totalVoltageNTileTitle": "Total voltage {number} battery",
"@totalVoltageNTileTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"powerNTileTitle": "Consumption/charging power {number} battery",
"@powerNTileTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"batteryPercentNTileTitle": "Battery level {number}",
"@batteryPercentNTileTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"powerGeneralTileTitle": "Consumption/charging power",
"batteryPercentTileTitle": "Battery level",
"totalCurrentTileTitle": "Total discharge/charge current",
"totalCurrentNTileTitle": "Total discharge/charge current {number} battery",
"@totalCurrentNTileTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"maximumRegisteredTemperatureTileTitle": "Maximum temperature",
"maximumRegisteredTemperatureNTileTitle": "Maximum temperature {number} battery",
"@maximumRegisteredTemperatureNTileTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"voltageValue": "{value} V",
"@voltageValue": {
"placeholders": {
Expand Down
60 changes: 3 additions & 57 deletions lib/l10n/arb/app_ru.arb
Original file line number Diff line number Diff line change
Expand Up @@ -143,66 +143,12 @@
},
"chargingGeneralTabTitle": "Основное",
"chargingTemperatureTabTitle": "Температура",
"chargingTemperatureNTabTitle": "Температура {number} батарея",
"@chargingTemperatureNTabTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"chargingVoltageTabTitle": "Напряжение",
"chargingVoltageNTabTitle": "Напряжение {number} батарея",
"@chargingVoltageNTabTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"totalVoltageTileTitle": "Общее напряжение",
"totalVoltageNTileTitle": "Общее напряжение {number} батарея",
"@totalVoltageNTileTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"powerNTileTitle": "Мощность потребления/зарядки {number} батарея",
"@powerNTileTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"batteryPercentNTileTitle": "Уровень заряда батареи {number}",
"@batteryPercentNTileTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"powerTileTitle": "Мощность потребления/зарядки",
"batteryPercentTileTitle": "Уровень заряда батареи",
"totalCurrentTileTitle": "Общий ток разряда/заряда",
"totalCurrentNTileTitle": "Общий ток разряда/заряда {number} батарея",
"@totalCurrentNTileTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"maximumRegisteredTemperatureTileTitle": "Максимальная температура",
"maximumRegisteredTemperatureNTileTitle": "Максимальная температура {number} батарея",
"@maximumRegisteredTemperatureNTileTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"voltageValue": "{value} В",
"@voltageValue": {
"placeholders": {
Expand Down Expand Up @@ -308,7 +254,7 @@
"voltMeasurementUnit": "В",
"currentTileTitle": "Ток",
"amperMeasurementUnit": "А",
"powerTileTitle": "Мощность(потребляемая/отдаваемая)",
"powerGeneralTileTitle": "Мощность(потребляемая/отдаваемая)",
"motorsTemperatureTileTitle": "Температура моторов",
"celsiusMeasurementUnit": "°C",
"controllersTemperatureTileTitle": "Температура контроллеров",
Expand Down
Loading
Loading