diff --git a/lib/pages/analytics/modules/energy_management/widgets/power_clamp_phases_data_widget.dart b/lib/pages/analytics/modules/energy_management/widgets/power_clamp_phases_data_widget.dart index 1cb20aac..dc0aa050 100644 --- a/lib/pages/analytics/modules/energy_management/widgets/power_clamp_phases_data_widget.dart +++ b/lib/pages/analytics/modules/energy_management/widgets/power_clamp_phases_data_widget.dart @@ -125,7 +125,48 @@ class PowerClampPhasesDataWidget extends StatelessWidget { (e) => e.code == code, orElse: () => DataPoint(value: '--'), ); + final value = element?.value; + if (code.contains('Current')) { + return _formatCurrentValue(value?.toString()); + } + if (code.contains('PowerFactor')) { + return _formatPowerFactor(value?.toString()); + } + if (code.contains('Voltage')) { + return _formatVoltage(value?.toString()); + } + return value?.toString() ?? '--'; + } - return element?.value.toString() ?? '--'; + String _formatCurrentValue(String? value) { + if (value == null) return '--'; + String str = value; + if (str.isEmpty || str == '--') return '--'; + str = str.replaceAll(RegExp(r'[^0-9]'), ''); + if (str.isEmpty) return '--'; + if (str.length == 1) return '${str[0]}.0'; + return '${str[0]}.${str.substring(1)}'; + } + + String _formatPowerFactor(String? value) { + if (value == null) return '--'; + String str = value; + if (str.isEmpty || str == '--') return '--'; + str = str.replaceAll(RegExp(r'[^0-9]'), ''); + if (str.isEmpty) return '--'; + final intValue = int.tryParse(str); + if (intValue == null) return '--'; + final doubleValue = intValue / 100; + return doubleValue.toStringAsFixed(2); + } + + String _formatVoltage(String? value) { + if (value == null) return '--'; + String str = value; + if (str.isEmpty || str == '--') return '--'; + str = str.replaceAll(RegExp(r'[^0-9]'), ''); + if (str.isEmpty) return '--'; + if (str.length == 1) return '0.${str[0]}'; + return '${str.substring(0, str.length - 1)}.${str.substring(str.length - 1)}'; } }