mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
opt.: battery status
This commit is contained in:
@@ -586,7 +586,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 686;
|
CURRENT_PROJECT_VERSION = 688;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
||||||
@@ -596,7 +596,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.686;
|
MARKETING_VERSION = 1.0.688;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
@@ -720,7 +720,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 686;
|
CURRENT_PROJECT_VERSION = 688;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
||||||
@@ -730,7 +730,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.686;
|
MARKETING_VERSION = 1.0.688;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
@@ -748,7 +748,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 686;
|
CURRENT_PROJECT_VERSION = 688;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
||||||
@@ -758,7 +758,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.686;
|
MARKETING_VERSION = 1.0.688;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
@@ -779,7 +779,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 686;
|
CURRENT_PROJECT_VERSION = 688;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@@ -792,7 +792,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.686;
|
MARKETING_VERSION = 1.0.688;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
||||||
@@ -818,7 +818,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 686;
|
CURRENT_PROJECT_VERSION = 688;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@@ -831,7 +831,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.686;
|
MARKETING_VERSION = 1.0.688;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
@@ -854,7 +854,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 686;
|
CURRENT_PROJECT_VERSION = 688;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@@ -867,7 +867,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.686;
|
MARKETING_VERSION = 1.0.688;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
@@ -890,7 +890,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 686;
|
CURRENT_PROJECT_VERSION = 688;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -902,7 +902,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.686;
|
MARKETING_VERSION = 1.0.688;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
||||||
@@ -931,7 +931,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 686;
|
CURRENT_PROJECT_VERSION = 688;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -943,7 +943,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.686;
|
MARKETING_VERSION = 1.0.688;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
||||||
PRODUCT_NAME = ServerBox;
|
PRODUCT_NAME = ServerBox;
|
||||||
@@ -969,7 +969,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 686;
|
CURRENT_PROJECT_VERSION = 688;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -981,7 +981,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.686;
|
MARKETING_VERSION = 1.0.688;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
||||||
PRODUCT_NAME = ServerBox;
|
PRODUCT_NAME = ServerBox;
|
||||||
|
|||||||
@@ -14,4 +14,24 @@ extension ListX<T> on List<T> {
|
|||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
T? get firstOrNull => isEmpty ? null : first;
|
||||||
|
|
||||||
|
T? get lastOrNull => isEmpty ? null : last;
|
||||||
|
|
||||||
|
T? firstWhereOrNull(bool Function(T element) test) {
|
||||||
|
try {
|
||||||
|
return firstWhere(test);
|
||||||
|
} catch (_) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
T? lastWhereOrNull(bool Function(T element) test) {
|
||||||
|
try {
|
||||||
|
return lastWhere(test);
|
||||||
|
} catch (_) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ const _statusCmds = [
|
|||||||
'cat /sys/class/thermal/thermal_zone*/temp',
|
'cat /sys/class/thermal/thermal_zone*/temp',
|
||||||
'hostname',
|
'hostname',
|
||||||
'cat /proc/diskstats',
|
'cat /proc/diskstats',
|
||||||
'cat /sys/class/power_supply/*/uevent',
|
'for f in /sys/class/power_supply/*/uevent; do cat "\$f"; echo; done',
|
||||||
'nvidia-smi -q -x',
|
'nvidia-smi -q -x',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -17,14 +17,14 @@ class Battery {
|
|||||||
final BatteryStatus status;
|
final BatteryStatus status;
|
||||||
final String? name;
|
final String? name;
|
||||||
final int? cycle;
|
final int? cycle;
|
||||||
final int? powerNow;
|
final String? tech;
|
||||||
|
|
||||||
const Battery({
|
const Battery({
|
||||||
required this.status,
|
required this.status,
|
||||||
this.percent,
|
this.percent,
|
||||||
this.name,
|
this.name,
|
||||||
this.cycle,
|
this.cycle,
|
||||||
this.powerNow,
|
this.tech,
|
||||||
});
|
});
|
||||||
|
|
||||||
factory Battery.fromRaw(String raw) {
|
factory Battery.fromRaw(String raw) {
|
||||||
@@ -38,16 +38,25 @@ class Battery {
|
|||||||
|
|
||||||
final capacity = map['POWER_SUPPLY_CAPACITY']; // 30%
|
final capacity = map['POWER_SUPPLY_CAPACITY']; // 30%
|
||||||
final cycle = map['POWER_SUPPLY_CYCLE_COUNT']; // 30
|
final cycle = map['POWER_SUPPLY_CYCLE_COUNT']; // 30
|
||||||
final powerNow = map['POWER_SUPPLY_POWER_NOW']; // 30W
|
|
||||||
|
var name = map['POWER_SUPPLY_MODEL_NAME'];
|
||||||
|
name ??= map['POWER_SUPPLY_NAME'];
|
||||||
|
|
||||||
return Battery(
|
return Battery(
|
||||||
percent: capacity == null ? null : int.tryParse(capacity),
|
percent: capacity == null ? null : int.tryParse(capacity),
|
||||||
status: BatteryStatus.parse(map['POWER_SUPPLY_STATUS']),
|
status: BatteryStatus.parse(map['POWER_SUPPLY_STATUS']),
|
||||||
name: map['POWER_SUPPLY_MODEL_NAME'],
|
name: name,
|
||||||
cycle: cycle == null ? null : int.tryParse(cycle),
|
cycle: cycle == null ? null : int.tryParse(cycle),
|
||||||
powerNow: powerNow == null ? null : int.tryParse(powerNow),
|
tech: map['POWER_SUPPLY_TECHNOLOGY'],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return 'Battery{$percent, $status, $name, $cycle}';
|
||||||
|
}
|
||||||
|
|
||||||
|
bool get isLiPoly => tech == 'Li-poly';
|
||||||
}
|
}
|
||||||
|
|
||||||
enum BatteryStatus {
|
enum BatteryStatus {
|
||||||
@@ -72,14 +81,16 @@ enum BatteryStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
abstract final class Batteries {
|
abstract final class Batteries {
|
||||||
static List<Battery> parse(String raw) {
|
static List<Battery> parse(String raw, [bool onlyLiPoly = false]) {
|
||||||
final lines = raw.split('\n');
|
final lines = raw.split('\n');
|
||||||
final batteries = <Battery>[];
|
final batteries = <Battery>[];
|
||||||
final oneBatLines = <String>[];
|
final oneBatLines = <String>[];
|
||||||
for (final line in lines) {
|
for (final line in lines) {
|
||||||
if (line.isEmpty) {
|
if (line.isEmpty) {
|
||||||
try {
|
try {
|
||||||
batteries.add(Battery.fromRaw(oneBatLines.join('\n')));
|
final bat = Battery.fromRaw(oneBatLines.join('\n'));
|
||||||
|
if (onlyLiPoly && !bat.isLiPoly) continue;
|
||||||
|
batteries.add(bat);
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
Loggers.parse.warning(e, s);
|
Loggers.parse.warning(e, s);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,12 +24,10 @@ class ServerStatusUpdateReq {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<ServerStatus> getStatus(ServerStatusUpdateReq req) async {
|
Future<ServerStatus> getStatus(ServerStatusUpdateReq req) async {
|
||||||
switch (req.system) {
|
return switch (req.system) {
|
||||||
case SystemType.linux:
|
SystemType.linux => _getLinuxStatus(req),
|
||||||
return _getLinuxStatus(req);
|
SystemType.bsd => _getBsdStatus(req),
|
||||||
case SystemType.bsd:
|
};
|
||||||
return _getBsdStatus(req);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wrap each operation with a try-catch, so that if one operation fails,
|
// Wrap each operation with a try-catch, so that if one operation fails,
|
||||||
@@ -130,7 +128,9 @@ Future<ServerStatus> _getLinuxStatus(ServerStatusUpdateReq req) async {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
final battery = StatusCmdType.battery.find(segments);
|
final battery = StatusCmdType.battery.find(segments);
|
||||||
final batteries = Batteries.parse(battery);
|
|
||||||
|
/// Only collect li-poly batteries
|
||||||
|
final batteries = Batteries.parse(battery, true);
|
||||||
req.ss.batteries.clear();
|
req.ss.batteries.clear();
|
||||||
if (batteries.isNotEmpty) {
|
if (batteries.isNotEmpty) {
|
||||||
req.ss.batteries.addAll(batteries);
|
req.ss.batteries.addAll(batteries);
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
class BuildData {
|
class BuildData {
|
||||||
static const String name = "ServerBox";
|
static const String name = "ServerBox";
|
||||||
static const int build = 686;
|
static const int build = 688;
|
||||||
static const String engine = "3.16.4";
|
static const String engine = "3.16.4";
|
||||||
static const String buildAt = "2023-12-20 17:26:32";
|
static const String buildAt = "2023-12-21 16:19:00";
|
||||||
static const int modifications = 2;
|
static const int modifications = 6;
|
||||||
static const int script = 33;
|
static const int script = 33;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -463,7 +463,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
|
|||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
disk.dev,
|
disk.dev,
|
||||||
style: UIs.text12Bold,
|
style: UIs.text12,
|
||||||
textScaler: _textFactor,
|
textScaler: _textFactor,
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
@@ -485,7 +485,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
|
|||||||
backgroundColor: DynamicColors.progress.resolve(context),
|
backgroundColor: DynamicColors.progress.resolve(context),
|
||||||
color: primaryColor,
|
color: primaryColor,
|
||||||
),
|
),
|
||||||
Text('${disk.usedPercent}%', style: UIs.text13Grey)
|
Text('${disk.usedPercent}%', style: UIs.text12Grey)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@@ -560,7 +560,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
|
|||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
device,
|
device,
|
||||||
style: UIs.text12Bold,
|
style: UIs.text12,
|
||||||
textScaler: _textFactor,
|
textScaler: _textFactor,
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.fade,
|
overflow: TextOverflow.fade,
|
||||||
@@ -642,7 +642,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
|
|||||||
children: [
|
children: [
|
||||||
Text('${battery.name}', style: UIs.text15),
|
Text('${battery.name}', style: UIs.text15),
|
||||||
Text(
|
Text(
|
||||||
'${battery.status.name} - ${battery.cycle} - ${battery.powerNow}',
|
'${battery.status.name} - ${battery.cycle}',
|
||||||
style: UIs.text13Grey,
|
style: UIs.text13Grey,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
215
test/battery_test.dart
Normal file
215
test/battery_test.dart
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:toolbox/data/model/server/battery.dart';
|
||||||
|
|
||||||
|
const _raw = '''
|
||||||
|
POWER_SUPPLY_NAME=battery
|
||||||
|
POWER_SUPPLY_INPUT_SUSPEND=0
|
||||||
|
POWER_SUPPLY_BATTERY_INPUT_SUSPEND=0
|
||||||
|
POWER_SUPPLY_STATUS=Discharging
|
||||||
|
POWER_SUPPLY_HEALTH=Good
|
||||||
|
POWER_SUPPLY_PRESENT=1
|
||||||
|
POWER_SUPPLY_CHARGE_TYPE=N/A
|
||||||
|
POWER_SUPPLY_CAPACITY=73
|
||||||
|
POWER_SUPPLY_CHARGER_TEMP_MAX=800
|
||||||
|
POWER_SUPPLY_INPUT_CURRENT_LIMITED=0
|
||||||
|
POWER_SUPPLY_VOLTAGE_NOW=4002675
|
||||||
|
POWER_SUPPLY_VOLTAGE_MAX=4480000
|
||||||
|
POWER_SUPPLY_VOLTAGE_QNOVO=-22
|
||||||
|
POWER_SUPPLY_CURRENT_NOW=157714
|
||||||
|
POWER_SUPPLY_CURRENT_QNOVO=-22
|
||||||
|
POWER_SUPPLY_CONSTANT_CHARGE_CURRENT_MAX=6000000
|
||||||
|
POWER_SUPPLY_CONSTANT_CHARGE_CURRENT=4600000
|
||||||
|
POWER_SUPPLY_CHARGE_TERM_CURRENT=-220
|
||||||
|
POWER_SUPPLY_TEMP=235
|
||||||
|
POWER_SUPPLY_TECHNOLOGY=Li-poly
|
||||||
|
POWER_SUPPLY_STEP_CHARGING_ENABLED=0
|
||||||
|
POWER_SUPPLY_SW_JEITA_ENABLED=1
|
||||||
|
POWER_SUPPLY_CHARGE_DONE=0
|
||||||
|
POWER_SUPPLY_PARALLEL_DISABLE=0
|
||||||
|
POWER_SUPPLY_SET_SHIP_MODE=0
|
||||||
|
POWER_SUPPLY_DIE_HEALTH=Unknown
|
||||||
|
POWER_SUPPLY_DC_THERMAL_LEVELS=0
|
||||||
|
POWER_SUPPLY_RERUN_AICL=0
|
||||||
|
POWER_SUPPLY_DP_DM=0
|
||||||
|
POWER_SUPPLY_CHARGE_CONTROL_LIMIT_MAX=16
|
||||||
|
POWER_SUPPLY_CHARGE_CONTROL_LIMIT=0
|
||||||
|
POWER_SUPPLY_CHARGE_COUNTER=2033341
|
||||||
|
POWER_SUPPLY_CYCLE_COUNT=1
|
||||||
|
POWER_SUPPLY_RECHARGE_SOC=99
|
||||||
|
POWER_SUPPLY_RECHARGE_VBAT=-22
|
||||||
|
POWER_SUPPLY_NIGHT_CHARGING=0
|
||||||
|
POWER_SUPPLY_CHARGE_FULL=3022000
|
||||||
|
POWER_SUPPLY_FORCE_RECHARGE=0
|
||||||
|
POWER_SUPPLY_CHARGE_FULL_DESIGN=4700000
|
||||||
|
POWER_SUPPLY_FCC_STEPPER_ENABLE=0
|
||||||
|
POWER_SUPPLY_BATTERY_CHARGING_ENABLED=1
|
||||||
|
POWER_SUPPLY_DP_DM_BQ=0
|
||||||
|
POWER_SUPPLY_TYPE_RECHECK=0
|
||||||
|
POWER_SUPPLY_WARM_FAKE_CHARGING=0
|
||||||
|
POWER_SUPPLY_STEP_VFLOAT_INDEX=0
|
||||||
|
POWER_SUPPLY_CAPACITY_LEVEL=Normal
|
||||||
|
|
||||||
|
POWER_SUPPLY_NAME=bms
|
||||||
|
POWER_SUPPLY_AUTHENTIC=1
|
||||||
|
POWER_SUPPLY_ROMID=9f,e8,41,99,10,f0,04,42
|
||||||
|
POWER_SUPPLY_DS_STATUS=00,00,08,03,02,00,ff,e8
|
||||||
|
POWER_SUPPLY_PAGE0_DATA=53,42,4d,34,51,30,33,32,00,3e,b0,46,4d,44,31,31
|
||||||
|
POWER_SUPPLY_CHIP_OK=1
|
||||||
|
POWER_SUPPLY_CAPACITY=73
|
||||||
|
POWER_SUPPLY_REAL_CAPACITY=73
|
||||||
|
POWER_SUPPLY_SHUTDOWN_DELAY=0
|
||||||
|
POWER_SUPPLY_CAPACITY_RAW=7340
|
||||||
|
POWER_SUPPLY_SOC_DECIMAL=40
|
||||||
|
POWER_SUPPLY_SOC_DECIMAL_RATE=30
|
||||||
|
POWER_SUPPLY_CC_SOC=6318
|
||||||
|
POWER_SUPPLY_TEMP=235
|
||||||
|
POWER_SUPPLY_VOLTAGE_NOW=4002675
|
||||||
|
POWER_SUPPLY_VOLTAGE_OCV=4039556
|
||||||
|
POWER_SUPPLY_VOLTAGE_AVG=3989287
|
||||||
|
POWER_SUPPLY_CURRENT_NOW=157714
|
||||||
|
POWER_SUPPLY_CURRENT_AVG=329915
|
||||||
|
POWER_SUPPLY_RESISTANCE_ID=100700
|
||||||
|
POWER_SUPPLY_RESISTANCE=186278
|
||||||
|
POWER_SUPPLY_ESR_ACTUAL=-22
|
||||||
|
POWER_SUPPLY_ESR_NOMINAL=-22
|
||||||
|
POWER_SUPPLY_BATTERY_TYPE=j11sun_4700mah
|
||||||
|
POWER_SUPPLY_CHARGE_FULL_DESIGN=4700000
|
||||||
|
POWER_SUPPLY_VOLTAGE_MAX_DESIGN=4450000
|
||||||
|
POWER_SUPPLY_CHARGE_NOW_RAW=2974065
|
||||||
|
POWER_SUPPLY_CHARGE_NOW=0
|
||||||
|
POWER_SUPPLY_CHARGE_FULL=3022000
|
||||||
|
POWER_SUPPLY_CHARGE_COUNTER=2033341
|
||||||
|
POWER_SUPPLY_CHARGE_COUNTER_SHADOW=2033435
|
||||||
|
POWER_SUPPLY_CYCLE_COUNT=1
|
||||||
|
POWER_SUPPLY_CYCLE_COUNTS=15 335 526 552 493 398 287 141
|
||||||
|
POWER_SUPPLY_SOC_REPORTING_READY=1
|
||||||
|
POWER_SUPPLY_CLEAR_SOH=0
|
||||||
|
POWER_SUPPLY_SOH=50
|
||||||
|
POWER_SUPPLY_DEBUG_BATTERY=0
|
||||||
|
POWER_SUPPLY_CONSTANT_CHARGE_VOLTAGE=4439948
|
||||||
|
POWER_SUPPLY_TIME_TO_FULL_AVG=-1
|
||||||
|
POWER_SUPPLY_TIME_TO_EMPTY_AVG=18366
|
||||||
|
POWER_SUPPLY_CC_STEP=0
|
||||||
|
POWER_SUPPLY_CC_STEP_SEL=0
|
||||||
|
POWER_SUPPLY_BATT_AGE_LEVEL=-22
|
||||||
|
POWER_SUPPLY_POWER_NOW=26828590
|
||||||
|
POWER_SUPPLY_POWER_AVG=16967163
|
||||||
|
POWER_SUPPLY_SCALE_MODE_EN=0
|
||||||
|
POWER_SUPPLY_CALIBRATE=-22
|
||||||
|
POWER_SUPPLY_FASTCHARGE_MODE=0
|
||||||
|
POWER_SUPPLY_FFC_TERMINATION_CURRENT=-800
|
||||||
|
POWER_SUPPLY_SYS_TERMINATION_CURRENT=-300
|
||||||
|
POWER_SUPPLY_FFC_SYS_TERMINATION_CURRENT=-900
|
||||||
|
POWER_SUPPLY_VBATT_FULL_VOL=4440
|
||||||
|
POWER_SUPPLY_FCC_VBATT_FULL_VOL=4490
|
||||||
|
POWER_SUPPLY_KI_COEFF_CURRENT=3900
|
||||||
|
|
||||||
|
POWER_SUPPLY_NAME=bq2597x-standalone
|
||||||
|
POWER_SUPPLY_PRESENT=0
|
||||||
|
POWER_SUPPLY_CHARGING_ENABLED=0
|
||||||
|
POWER_SUPPLY_STATUS=Unknown
|
||||||
|
POWER_SUPPLY_TI_BATTERY_PRESENT=1
|
||||||
|
POWER_SUPPLY_TI_VBUS_PRESENT=0
|
||||||
|
POWER_SUPPLY_TI_BATTERY_VOLTAGE=4004
|
||||||
|
POWER_SUPPLY_TI_BATTERY_CURRENT=0
|
||||||
|
POWER_SUPPLY_TI_BATTERY_TEMPERATURE=0
|
||||||
|
POWER_SUPPLY_TI_BUS_VOLTAGE=0
|
||||||
|
POWER_SUPPLY_TI_BUS_CURRENT=0
|
||||||
|
POWER_SUPPLY_TI_BUS_TEMPERATURE=0
|
||||||
|
POWER_SUPPLY_TI_DIE_TEMPERATURE=0
|
||||||
|
POWER_SUPPLY_TI_ALARM_STATUS=0
|
||||||
|
POWER_SUPPLY_TI_FAULT_STATUS=0
|
||||||
|
POWER_SUPPLY_TI_REG_STATUS=0
|
||||||
|
POWER_SUPPLY_TI_SET_BUS_PROTECTION_FOR_QC3=0
|
||||||
|
POWER_SUPPLY_MODEL_NAME=bq2597x-standalone
|
||||||
|
|
||||||
|
POWER_SUPPLY_NAME=dc
|
||||||
|
POWER_SUPPLY_INPUT_SUSPEND=0
|
||||||
|
POWER_SUPPLY_PRESENT=0
|
||||||
|
POWER_SUPPLY_ONLINE=0
|
||||||
|
POWER_SUPPLY_CURRENT_MAX=100000
|
||||||
|
POWER_SUPPLY_VOLTAGE_MAX=12000000
|
||||||
|
POWER_SUPPLY_REAL_TYPE=Wireless
|
||||||
|
POWER_SUPPLY_DC_RESET=0
|
||||||
|
POWER_SUPPLY_AICL_DONE=0
|
||||||
|
|
||||||
|
POWER_SUPPLY_NAME=main
|
||||||
|
POWER_SUPPLY_VOLTAGE_MAX=4450000
|
||||||
|
POWER_SUPPLY_CONSTANT_CHARGE_CURRENT_MAX=4600000
|
||||||
|
POWER_SUPPLY_TYPE=Main
|
||||||
|
POWER_SUPPLY_INPUT_CURRENT_SETTLED=0
|
||||||
|
POWER_SUPPLY_INPUT_VOLTAGE_SETTLED=5000000
|
||||||
|
POWER_SUPPLY_FCC_DELTA=0
|
||||||
|
POWER_SUPPLY_CURRENT_MAX=0
|
||||||
|
POWER_SUPPLY_FLASH_ACTIVE=0
|
||||||
|
POWER_SUPPLY_FLASH_TRIGGER=0
|
||||||
|
POWER_SUPPLY_TOGGLE_STAT=0
|
||||||
|
POWER_SUPPLY_MAIN_FCC_MAX=-22
|
||||||
|
POWER_SUPPLY_IRQ_STATUS=0
|
||||||
|
POWER_SUPPLY_FORCE_MAIN_FCC=4600000
|
||||||
|
POWER_SUPPLY_FORCE_MAIN_ICL=100000
|
||||||
|
POWER_SUPPLY_COMP_CLAMP_LEVEL=0
|
||||||
|
POWER_SUPPLY_HEALTH=Unknown
|
||||||
|
POWER_SUPPLY_TEMP_HOT=0
|
||||||
|
|
||||||
|
POWER_SUPPLY_NAME=pc_port
|
||||||
|
POWER_SUPPLY_TYPE=USB
|
||||||
|
POWER_SUPPLY_ONLINE=0
|
||||||
|
POWER_SUPPLY_VOLTAGE_MAX=5000000
|
||||||
|
POWER_SUPPLY_CURRENT_MAX=0
|
||||||
|
|
||||||
|
POWER_SUPPLY_NAME=usb
|
||||||
|
POWER_SUPPLY_PRESENT=0
|
||||||
|
POWER_SUPPLY_ONLINE=0
|
||||||
|
POWER_SUPPLY_VOLTAGE_NOW=0
|
||||||
|
POWER_SUPPLY_PD_CURRENT_MAX=-22
|
||||||
|
POWER_SUPPLY_CURRENT_MAX=0
|
||||||
|
POWER_SUPPLY_TYPE=USB_PD
|
||||||
|
POWER_SUPPLY_TYPEC_MODE=Nothing attached
|
||||||
|
POWER_SUPPLY_TYPEC_POWER_ROLE=dual power role
|
||||||
|
POWER_SUPPLY_TYPEC_CC_ORIENTATION=0
|
||||||
|
POWER_SUPPLY_PD_ACTIVE=0
|
||||||
|
POWER_SUPPLY_INPUT_CURRENT_SETTLED=0
|
||||||
|
POWER_SUPPLY_INPUT_CURRENT_NOW=0
|
||||||
|
POWER_SUPPLY_BOOST_CURRENT=0
|
||||||
|
POWER_SUPPLY_PE_START=0
|
||||||
|
POWER_SUPPLY_CTM_CURRENT_MAX=-22
|
||||||
|
POWER_SUPPLY_HW_CURRENT_MAX=0
|
||||||
|
POWER_SUPPLY_REAL_TYPE=Unknown
|
||||||
|
POWER_SUPPLY_HVDCP3_TYPE=0
|
||||||
|
POWER_SUPPLY_QUICK_CHARGE_TYPE=0
|
||||||
|
POWER_SUPPLY_PD_VOLTAGE_MAX=5000000
|
||||||
|
POWER_SUPPLY_PD_VOLTAGE_MIN=5000000
|
||||||
|
POWER_SUPPLY_CONNECTOR_TYPE=0
|
||||||
|
POWER_SUPPLY_CONNECTOR_HEALTH=Cool
|
||||||
|
POWER_SUPPLY_CONNECTOR_TEMP=293
|
||||||
|
POWER_SUPPLY_VBUS_DISABLE=0
|
||||||
|
POWER_SUPPLY_VOLTAGE_MAX=5000000
|
||||||
|
POWER_SUPPLY_VOLTAGE_MAX_DESIGN=5000000
|
||||||
|
POWER_SUPPLY_VOLTAGE_MAX_LIMIT=5000000
|
||||||
|
POWER_SUPPLY_SMB_EN_MODE=0
|
||||||
|
POWER_SUPPLY_SMB_EN_REASON=0
|
||||||
|
POWER_SUPPLY_ADAPTER_CC_MODE=0
|
||||||
|
POWER_SUPPLY_SCOPE=Unknown
|
||||||
|
POWER_SUPPLY_MOISTURE_DETECTED=0
|
||||||
|
POWER_SUPPLY_HVDCP_OPTI_ALLOWED=1
|
||||||
|
POWER_SUPPLY_QC_OPTI_DISABLE=0
|
||||||
|
POWER_SUPPLY_VOLTAGE_VPH=3995694
|
||||||
|
POWER_SUPPLY_THERM_ICL_LIMIT=-22
|
||||||
|
POWER_SUPPLY_FASTCHARGE_MODE=0
|
||||||
|
POWER_SUPPLY_PD_AUTHENTICATION=0
|
||||||
|
POWER_SUPPLY_SKIN_HEALTH=Unknown
|
||||||
|
POWER_SUPPLY_APSD_RERUN=0
|
||||||
|
POWER_SUPPLY_APSD_TIMEOUT=0
|
||||||
|
POWER_SUPPLY_APDO_MAX=0
|
||||||
|
POWER_SUPPLY_CHARGER_STATUS=0
|
||||||
|
POWER_SUPPLY_INPUT_VOLTAGE_SETTLED=0
|
||||||
|
POWER_SUPPLY_MOISTURE_DETECTION_ENABLED=0
|
||||||
|
''';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
test('parse battery', () {
|
||||||
|
final result = Batteries.parse(_raw);
|
||||||
|
expect(result.length, 7);
|
||||||
|
});
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user