mirror of
https://github.com/SyncrowIOT/web.git
synced 2026-10-25 15:17:56 +00:00
Integrated realtime data.
This commit is contained in:
@@ -6,10 +6,12 @@ import 'package:syncrow_web/pages/analytics/modules/analytics/widgets/analytics_
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/energy_consumption_by_phases/energy_consumption_by_phases_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/energy_consumption_per_device/energy_consumption_per_device_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/power_clamp_info/power_clamp_info_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/total_energy_consumption/total_energy_consumption_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/services/energy_consumption_by_phases/fake_energy_consumption_by_phases_service.dart';
|
||||
import 'package:syncrow_web/pages/analytics/services/energy_consumption_per_device/fake_energy_consumption_per_device_service.dart';
|
||||
import 'package:syncrow_web/pages/analytics/services/power_clamp_info/remote_power_clamp_info_service.dart';
|
||||
import 'package:syncrow_web/pages/analytics/services/realtime_device_service/firebase_realtime_device_service.dart';
|
||||
import 'package:syncrow_web/pages/analytics/services/total_energy_consumption/fake_total_energy_consumption_service.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/shared/navigate_home_grid_view.dart';
|
||||
import 'package:syncrow_web/services/api/http_service.dart';
|
||||
@@ -46,6 +48,11 @@ class AnalyticsPage extends StatelessWidget {
|
||||
RemotePowerClampInfoService(HTTPService()),
|
||||
),
|
||||
),
|
||||
BlocProvider(
|
||||
create: (context) => RealtimeDeviceChangesBloc(
|
||||
FirebaseRealtimeDeviceService(),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: const AnalyticsPageForm(),
|
||||
);
|
||||
|
||||
+9
-1
@@ -43,5 +43,13 @@ class PowerClampInfoBloc extends Bloc<PowerClampInfoEvent, PowerClampInfoState>
|
||||
void _onUpdatePowerClampStatusEvent(
|
||||
UpdatePowerClampStatusEvent event,
|
||||
Emitter<PowerClampInfoState> emit,
|
||||
) async {}
|
||||
) async {
|
||||
final currentModel = state.powerClampModel;
|
||||
if (currentModel == null) return;
|
||||
|
||||
final updatedStatus = PowerStatus.fromStatusList(event.statusList);
|
||||
final updatedModel = currentModel.copyWith(statusPower: updatedStatus);
|
||||
|
||||
emit(state.copyWith(powerClampModel: updatedModel));
|
||||
}
|
||||
}
|
||||
|
||||
+6
-2
@@ -25,8 +25,12 @@ class RealtimeDeviceChangesBloc
|
||||
onData: (data) {
|
||||
final currentState = state;
|
||||
emit(
|
||||
state.copyWith(
|
||||
deviceStatusList: [...currentState.deviceStatusList, data],
|
||||
state.copyWith(
|
||||
deviceStatusList: [
|
||||
...currentState.deviceStatusList.where((device) =>
|
||||
!data.any((newDevice) => newDevice.code == device.code)),
|
||||
...data,
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
|
||||
+7
@@ -3,6 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/energy_consumption_by_phases/energy_consumption_by_phases_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/energy_consumption_per_device/energy_consumption_per_device_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/power_clamp_info/power_clamp_info_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/total_energy_consumption/total_energy_consumption_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/energy_consumption_per_device_chart_box.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/power_clamp_energy_data_widget.dart';
|
||||
@@ -28,6 +29,12 @@ class _AnalyticsEnergyManagementViewState
|
||||
_loadTotalEnergyConsumption();
|
||||
_loadEnergyConsumptionPerDevice();
|
||||
_loadPowerClampInfo();
|
||||
|
||||
context.read<RealtimeDeviceChangesBloc>().add(
|
||||
const RealtimeDeviceChangesStarted(
|
||||
'cb71d6ad-6e29-4eaa-ae3e-1a0d1c5f60fa',
|
||||
),
|
||||
);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
|
||||
+5
-3
@@ -19,9 +19,11 @@ class PowerClampEnergyDataWidget extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return BlocListener<RealtimeDeviceChangesBloc, RealtimeDeviceChangesState>(
|
||||
listener: (context, state) {
|
||||
context.read<PowerClampInfoBloc>().add(
|
||||
UpdatePowerClampStatusEvent(state.deviceStatusList),
|
||||
);
|
||||
if (state.status != RealtimeDeviceChangesStatus.loaded) {
|
||||
context.read<PowerClampInfoBloc>().add(
|
||||
UpdatePowerClampStatusEvent(state.deviceStatusList),
|
||||
);
|
||||
}
|
||||
},
|
||||
child: BlocBuilder<PowerClampInfoBloc, PowerClampInfoState>(
|
||||
builder: (context, state) {
|
||||
|
||||
Reference in New Issue
Block a user