diff --git a/assets/icons/frequency_icon.svg b/assets/icons/frequency_icon.svg
new file mode 100644
index 00000000..d093af37
--- /dev/null
+++ b/assets/icons/frequency_icon.svg
@@ -0,0 +1,25 @@
+
diff --git a/assets/icons/power_active_icon.svg b/assets/icons/power_active_icon.svg
new file mode 100644
index 00000000..28b1412a
--- /dev/null
+++ b/assets/icons/power_active_icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/icons/speedo_meter.svg b/assets/icons/speedo_meter.svg
new file mode 100644
index 00000000..be3b5c4b
--- /dev/null
+++ b/assets/icons/speedo_meter.svg
@@ -0,0 +1,16 @@
+
diff --git a/assets/icons/volt-meter.svg b/assets/icons/volt-meter.svg
new file mode 100644
index 00000000..6691a7dd
--- /dev/null
+++ b/assets/icons/volt-meter.svg
@@ -0,0 +1,26 @@
+
diff --git a/assets/icons/volt_meter_icon.svg b/assets/icons/volt_meter_icon.svg
new file mode 100644
index 00000000..97b9037d
--- /dev/null
+++ b/assets/icons/volt_meter_icon.svg
@@ -0,0 +1,26 @@
+
diff --git a/assets/icons/voltage_icon.svg b/assets/icons/voltage_icon.svg
new file mode 100644
index 00000000..29b06678
--- /dev/null
+++ b/assets/icons/voltage_icon.svg
@@ -0,0 +1,41 @@
+
diff --git a/lib/pages/device_managment/all_devices/helper/route_controls_based_code.dart b/lib/pages/device_managment/all_devices/helper/route_controls_based_code.dart
index d4b5b21a..8edb0a1e 100644
--- a/lib/pages/device_managment/all_devices/helper/route_controls_based_code.dart
+++ b/lib/pages/device_managment/all_devices/helper/route_controls_based_code.dart
@@ -18,6 +18,8 @@ import 'package:syncrow_web/pages/device_managment/main_door_sensor/view/main_do
import 'package:syncrow_web/pages/device_managment/one_g_glass_switch/view/one_gang_glass_batch_control_view.dart';
import 'package:syncrow_web/pages/device_managment/one_gang_switch/view/wall_light_batch_control.dart';
import 'package:syncrow_web/pages/device_managment/one_gang_switch/view/wall_light_device_control.dart';
+import 'package:syncrow_web/pages/device_managment/power_clamp/view/power_clamp_batch_control_view.dart';
+import 'package:syncrow_web/pages/device_managment/power_clamp/view/smart_power_device_control.dart';
import 'package:syncrow_web/pages/device_managment/three_g_glass_switch/view/three_gang_glass_switch_batch_control_view.dart';
import 'package:syncrow_web/pages/device_managment/three_g_glass_switch/view/three_gang_glass_switch_control_view.dart';
import 'package:syncrow_web/pages/device_managment/three_gang_switch/view/living_room_batch_controls.dart';
@@ -94,6 +96,10 @@ mixin RouteControlsBasedCode {
return WaterLeakView(
deviceId: device.uuid!,
);
+ case 'PC':
+ return SmartPowerDeviceControl(
+ deviceId: device.uuid!,
+ );
default:
return const SizedBox();
}
@@ -224,6 +230,13 @@ mixin RouteControlsBasedCode {
.map((e) => e.uuid!)
.toList(),
);
+ case 'PC':
+ return PowerClampBatchControlView(
+ deviceIds: devices
+ .where((e) => (e.productType == 'PC'))
+ .map((e) => e.uuid!)
+ .toList(),
+ );
default:
return const SizedBox();
}
diff --git a/lib/pages/device_managment/power_clamp/bloc/smart_power_bloc.dart b/lib/pages/device_managment/power_clamp/bloc/smart_power_bloc.dart
new file mode 100644
index 00000000..04cb1b54
--- /dev/null
+++ b/lib/pages/device_managment/power_clamp/bloc/smart_power_bloc.dart
@@ -0,0 +1,784 @@
+import 'dart:async';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/foundation.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter_bloc/flutter_bloc.dart';
+import 'package:intl/intl.dart';
+import 'package:syncrow_web/pages/device_managment/all_devices/models/device_status.dart';
+import 'package:syncrow_web/pages/device_managment/power_clamp/bloc/smart_power_event.dart';
+import 'package:syncrow_web/pages/device_managment/power_clamp/bloc/smart_power_state.dart';
+import 'package:syncrow_web/pages/device_managment/power_clamp/models/device_event.dart';
+import 'package:syncrow_web/pages/device_managment/power_clamp/models/power_clamp_batch_model.dart';
+import 'package:syncrow_web/pages/device_managment/power_clamp/models/power_clamp_model.dart';
+import 'package:syncrow_web/pages/device_managment/power_clamp/view/power_chart.dart';
+import 'package:syncrow_web/services/devices_mang_api.dart';
+
+class SmartPowerBloc extends Bloc {
+ SmartPowerBloc({required this.deviceId}) : super(SmartPowerInitial()) {
+ on(_onFetchDeviceStatus);
+ on(_onArrowPressed);
+ on(_onFetchBatchStatus);
+ on(_onPageChanged);
+ on(_onBatchControl);
+ on(_filterRecordsByDate);
+ on(checkDayMonthYearSelected);
+ on(_onFactoryReset);
+ }
+
+ late PowerClampModel deviceStatus;
+ late PowerClampBatchModel deviceBatchStatus;
+ final String deviceId;
+ Timer? _timer;
+ List