Skip to content

Commit eb4d444

Browse files
BlackDizelAlexandr MotorinAlexandrradomir9720
authored
chore: redesign motor page (#78)
* chore: migrate to new motor block packets format --------- Co-authored-by: Alexandr Motorin <[email protected]> Co-authored-by: Alexandr <[email protected]> Co-authored-by: Radomir Epur <[email protected]>
1 parent d4013cb commit eb4d444

37 files changed

+1264
-571
lines changed

lib/app/overlay.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ class _OverlayGeneralStatisticsState extends State<OverlayGeneralStatistics> {
120120
text: TextSpan(
121121
children: [
122122
TextSpan(
123-
text: '${value.speed.value}',
123+
text:
124+
'${value.mergedSpeed.value}',
124125
style: kSpeedTextStyle.copyWith(
125126
color:
126127
context.colors.textAccent,
@@ -144,7 +145,7 @@ class _OverlayGeneralStatisticsState extends State<OverlayGeneralStatistics> {
144145
Column(
145146
children: [
146147
Text(
147-
value.gear.when(
148+
value.mergedGear.when(
148149
reverse: () =>
149150
context.l10n.reverseGearShort,
150151
neutral: () =>

lib/app/scopes/screens/motor_screen_wrapper.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class MotorScreenWrapper extends StatelessWidget implements AutoRouteWrapper {
2525
.subscribeTo(MotorDataCubit.kDefaultSubscribeParameters);
2626
return MotorDataCubit(
2727
dataSource: context.read(),
28+
motorsCount: context.read<HardwareCount>().motors,
2829
);
2930
},
3031
),

lib/data/services/data_source/demo_data_source.dart

Lines changed: 75 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ import 'package:pixel_app_flutter/data/services/data_source/mixins/package_strea
88
import 'package:pixel_app_flutter/data/services/data_source/mixins/parse_bytes_package_mixin.dart';
99
import 'package:pixel_app_flutter/data/services/data_source/mixins/send_packages_mixin.dart';
1010
import 'package:pixel_app_flutter/domain/data_source/data_source.dart';
11-
import 'package:pixel_app_flutter/domain/data_source/models/package/outgoing/authorizartion.dart';
1211
import 'package:pixel_app_flutter/domain/data_source/models/package/outgoing/outgoing_data_source_packages.dart';
13-
import 'package:pixel_app_flutter/domain/data_source/models/package_data/implementations/battery_percent.dart';
1412
import 'package:pixel_app_flutter/domain/data_source/models/package_data/package_data.dart';
1513
import 'package:re_seedwork/re_seedwork.dart';
1614

@@ -286,30 +284,81 @@ class DemoDataSource extends DataSource
286284
@visibleForTesting
287285
List<MainEcuMockResponse> get mockedResponses => [
288286
MainEcuMockResponseUpdateCallbackWrapper(
289-
ids: {const DataSourceParameterId.motorSpeed()},
287+
ids: {
288+
const DataSourceParameterId.motorSpeed1(),
289+
const DataSourceParameterId.motorSpeed2(),
290+
const DataSourceParameterId.motorSpeed3(),
291+
const DataSourceParameterId.motorSpeed4(),
292+
},
290293
convertible: TwoUint16WithStatusBody(
291294
status: _getRandomStatus,
292295
first: Random().nextInt(1001),
293296
second: Random().nextInt(1001),
294297
),
295298
),
296299
MainEcuMockResponseWrapper(
297-
ids: {const DataSourceParameterId.motorVoltage()},
300+
ids: {
301+
const DataSourceParameterId.motorVoltage1(),
302+
const DataSourceParameterId.motorVoltage2(),
303+
const DataSourceParameterId.motorVoltage3(),
304+
const DataSourceParameterId.motorVoltage4(),
305+
const DataSourceParameterId.rpm1(),
306+
const DataSourceParameterId.rpm2(),
307+
const DataSourceParameterId.rpm3(),
308+
const DataSourceParameterId.rpm4(),
309+
},
298310
respondCallback: (id, version, _, [__]) => _sendTwoUint16Callback(
299311
id,
300312
version,
301313
),
302314
),
303315
MainEcuMockResponseWrapper(
304316
ids: {
305-
const DataSourceParameterId.motorCurrent(),
306-
const DataSourceParameterId.motorPower(),
317+
const DataSourceParameterId.motorCurrent1(),
318+
const DataSourceParameterId.motorCurrent2(),
319+
const DataSourceParameterId.motorCurrent3(),
320+
const DataSourceParameterId.motorCurrent4(),
321+
const DataSourceParameterId.motorPower1(),
322+
const DataSourceParameterId.motorPower2(),
323+
const DataSourceParameterId.motorPower3(),
324+
const DataSourceParameterId.motorPower4(),
325+
const DataSourceParameterId.motorTemperature1(),
326+
const DataSourceParameterId.motorTemperature2(),
327+
const DataSourceParameterId.motorTemperature3(),
328+
const DataSourceParameterId.motorTemperature4(),
329+
const DataSourceParameterId.controllerTemperature1(),
330+
const DataSourceParameterId.controllerTemperature2(),
331+
const DataSourceParameterId.controllerTemperature3(),
332+
const DataSourceParameterId.controllerTemperature4(),
307333
},
308334
respondCallback: (id, version, _, [__]) => _sendTwoInt16Callback(
309335
id,
310336
version,
311337
),
312338
),
339+
MainEcuMockResponseWrapper(
340+
ids: {
341+
const DataSourceParameterId.gearAndRoll1(),
342+
const DataSourceParameterId.gearAndRoll2(),
343+
const DataSourceParameterId.gearAndRoll3(),
344+
const DataSourceParameterId.gearAndRoll4(),
345+
},
346+
respondCallback: (id, version, manager, [package]) {
347+
final randomGear =
348+
MotorGear.values[Random().nextInt(MotorGear.values.length)];
349+
final randomRoll = MotorRollDirection
350+
.values[Random().nextInt(MotorRollDirection.values.length)];
351+
return manager.updateCallback(
352+
id,
353+
MotorGearAndRoll(
354+
gear: randomGear,
355+
rollDirection: randomRoll,
356+
status: _getRandomStatus,
357+
),
358+
version,
359+
);
360+
},
361+
),
313362
MainEcuMockResponseWrapper(
314363
ids: {
315364
const DataSourceParameterId.temperature1(),
@@ -404,6 +453,19 @@ class DemoDataSource extends DataSource
404453
version,
405454
),
406455
),
456+
MainEcuMockResponseWrapper(
457+
ids: {const DataSourceParameterId.odometer()},
458+
respondCallback: (id, version, manager, [package]) {
459+
return manager.updateCallback(
460+
id,
461+
Uint32WithStatusBody(
462+
status: _getRandomStatus,
463+
value: Random().nextInt(0xFFFFFFFF),
464+
),
465+
version,
466+
);
467+
},
468+
),
407469
MainEcuMockResponseUpdateCallbackWrapper(
408470
ids: {
409471
const DataSourceParameterId.maxTemperature1(),
@@ -615,18 +677,18 @@ class DemoDataSource extends DataSource
615677
bool get randomBool => Random().nextBool();
616678

617679
int get randomUint8 => Random().nextInt(0xFF);
680+
618681
int get randomUint16 => Random().nextInt(0xFFFF);
682+
619683
int get randomInt16 => Random().nextInt(0x8000).randomSign;
620684

621685
double get randomDoubleUint16 => Random().nextDouble() * 0xFFFF;
622-
double get randomDoubleUint32 => Random().nextDouble() * 0xFFFFFFFF;
623686

624687
Result<SendPackageError, void> _updateValueCallback(
625688
DataSourceParameterId parameterId,
626689
BytesConvertible convertible,
627-
DataSourceProtocolVersion version, [
628-
DataSourceOutgoingPackage? package,
629-
]) {
690+
DataSourceProtocolVersion version,
691+
) {
630692
final requestType = version.when(
631693
subscription: () => 0x95, //'10010101'
632694
periodicRequests: () => 0x81, //'10000001'
@@ -677,9 +739,8 @@ final class MainEcuMockManager {
677739
final Result<SendPackageError, void> Function(
678740
DataSourceParameterId parameterId,
679741
BytesConvertible convertible,
680-
DataSourceProtocolVersion version, [
681-
DataSourceOutgoingPackage? package,
682-
]) updateCallback;
742+
DataSourceProtocolVersion version,
743+
) updateCallback;
683744

684745
bool checkAvailableForSubscription(DataSourceParameterId id) {
685746
return mockedResponses.any(
@@ -798,6 +859,6 @@ final class MainEcuMockResponseUpdateCallbackWrapper
798859
MainEcuMockManager manager, [
799860
DataSourceOutgoingPackage? package,
800861
]) {
801-
return manager.updateCallback(id, convertible, version, package);
862+
return manager.updateCallback(id, convertible, version);
802863
}
803864
}

lib/domain/data_source/blocs/data_source_authorization_cubit.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
44
import 'package:freezed_annotation/freezed_annotation.dart';
55
import 'package:pixel_app_flutter/domain/data_source/data_source.dart';
66
import 'package:pixel_app_flutter/domain/data_source/models/package/incoming/incoming_data_source_packages.dart';
7-
import 'package:pixel_app_flutter/domain/data_source/models/package/outgoing/authorizartion.dart';
7+
import 'package:pixel_app_flutter/domain/data_source/models/package/outgoing/outgoing_data_source_packages.dart';
88
import 'package:pixel_app_flutter/domain/data_source/models/package_data/package_data.dart';
99

1010
part 'data_source_authorization_cubit.freezed.dart';

0 commit comments

Comments
 (0)