mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
chore: README
This commit is contained in:
@@ -74,7 +74,7 @@ Platform | Support | Sign
|
|||||||
- Due to Chinese government policy and the [BEIAN](https://github.com/lollipopkit/flutter_server_box/discussions/180) issue. iOS app is now free. Please download it from other regions of AppStore.
|
- Due to Chinese government policy and the [BEIAN](https://github.com/lollipopkit/flutter_server_box/discussions/180) issue. iOS app is now free. Please download it from other regions of AppStore.
|
||||||
- Security:
|
- Security:
|
||||||
- To prevent injection attacks and etc., please don't download from untrusted sources.
|
- To prevent injection attacks and etc., please don't download from untrusted sources.
|
||||||
- Since `Linux / Windows` is signed with flutter default certificate, it is recommended to **build it yourself**.
|
- Since `Linux / Windows` is signed with flutter default certificate, it is recommended to [build it yourself](https://github.com/lollipopkit/flutter_server_box/wiki#compile-yourself).
|
||||||
|
|
||||||
|
|
||||||
## 🆘 Help
|
## 🆘 Help
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
- 由于中国政策原因,且**目前**无法完成[备案](https://github.com/lollipopkit/flutter_server_box/discussions/180)。iOS 端现已转为免费,请移步 AppStore 其他区下载。
|
- 由于中国政策原因,且**目前**无法完成[备案](https://github.com/lollipopkit/flutter_server_box/discussions/180)。iOS 端现已转为免费,请移步 AppStore 其他区下载。
|
||||||
- 关于安全:
|
- 关于安全:
|
||||||
- 为了防止注入攻击等因素,请勿从不可信来源下载。
|
- 为了防止注入攻击等因素,请勿从不可信来源下载。
|
||||||
- 由于 `Linux / Windows` 使用了默认签名,因此建议**自行构建**。
|
- 由于 `Linux / Windows` 使用了默认签名,因此建议[自行构建](https://github.com/lollipopkit/flutter_server_box/wiki/%E4%B8%BB%E9%A1%B5#%E8%87%AA%E7%BC%96%E8%AF%91)。
|
||||||
|
|
||||||
|
|
||||||
## 🆘 帮助
|
## 🆘 帮助
|
||||||
|
|||||||
@@ -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 = 667;
|
CURRENT_PROJECT_VERSION = 672;
|
||||||
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.667;
|
MARKETING_VERSION = 1.0.672;
|
||||||
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 = 667;
|
CURRENT_PROJECT_VERSION = 672;
|
||||||
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.667;
|
MARKETING_VERSION = 1.0.672;
|
||||||
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 = 667;
|
CURRENT_PROJECT_VERSION = 672;
|
||||||
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.667;
|
MARKETING_VERSION = 1.0.672;
|
||||||
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 = 667;
|
CURRENT_PROJECT_VERSION = 672;
|
||||||
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.667;
|
MARKETING_VERSION = 1.0.672;
|
||||||
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 = 667;
|
CURRENT_PROJECT_VERSION = 672;
|
||||||
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.667;
|
MARKETING_VERSION = 1.0.672;
|
||||||
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 = 667;
|
CURRENT_PROJECT_VERSION = 672;
|
||||||
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.667;
|
MARKETING_VERSION = 1.0.672;
|
||||||
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 = 667;
|
CURRENT_PROJECT_VERSION = 672;
|
||||||
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.667;
|
MARKETING_VERSION = 1.0.672;
|
||||||
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 = 667;
|
CURRENT_PROJECT_VERSION = 672;
|
||||||
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.667;
|
MARKETING_VERSION = 1.0.672;
|
||||||
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 = 667;
|
CURRENT_PROJECT_VERSION = 672;
|
||||||
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.667;
|
MARKETING_VERSION = 1.0.672;
|
||||||
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;
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ import 'package:xml/xml.dart';
|
|||||||
/// ]
|
/// ]
|
||||||
///
|
///
|
||||||
|
|
||||||
class NvdiaSmi {
|
class NvidiaSmi {
|
||||||
static List<NvdiaSmiItem> fromXml(String raw) {
|
static List<NvidiaSmiItem> fromXml(String raw) {
|
||||||
final xmlData = XmlDocument.parse(raw);
|
final xmlData = XmlDocument.parse(raw);
|
||||||
final gpus = xmlData.findAllElements('gpu');
|
final gpus = xmlData.findAllElements('gpu');
|
||||||
final result = List<NvdiaSmiItem?>.generate(gpus.length, (index) {
|
final result = List<NvidiaSmiItem?>.generate(gpus.length, (index) {
|
||||||
final gpu = gpus.elementAt(index);
|
final gpu = gpus.elementAt(index);
|
||||||
final name = gpu.findElements('product_name').firstOrNull?.innerText;
|
final name = gpu.findElements('product_name').firstOrNull?.innerText;
|
||||||
final temp = gpu
|
final temp = gpu
|
||||||
@@ -47,7 +47,7 @@ class NvdiaSmi {
|
|||||||
.firstOrNull
|
.firstOrNull
|
||||||
?.findElements('process_info');
|
?.findElements('process_info');
|
||||||
final memoryProcesses =
|
final memoryProcesses =
|
||||||
List<NvdiaSmiMemProcess?>.generate(processes?.length ?? 0, (index) {
|
List<NvidiaSmiMemProcess?>.generate(processes?.length ?? 0, (index) {
|
||||||
final process = processes?.elementAt(index);
|
final process = processes?.elementAt(index);
|
||||||
final pid = process?.findElements('pid').firstOrNull?.innerText;
|
final pid = process?.findElements('pid').firstOrNull?.innerText;
|
||||||
final name =
|
final name =
|
||||||
@@ -55,7 +55,7 @@ class NvdiaSmi {
|
|||||||
final memory =
|
final memory =
|
||||||
process?.findElements('used_memory').firstOrNull?.innerText;
|
process?.findElements('used_memory').firstOrNull?.innerText;
|
||||||
if (pid != null && name != null && memory != null) {
|
if (pid != null && name != null && memory != null) {
|
||||||
return NvdiaSmiMemProcess(
|
return NvidiaSmiMemProcess(
|
||||||
int.parse(pid),
|
int.parse(pid),
|
||||||
name,
|
name,
|
||||||
int.parse(
|
int.parse(
|
||||||
@@ -78,13 +78,13 @@ class NvdiaSmi {
|
|||||||
powerDraw != null &&
|
powerDraw != null &&
|
||||||
powerLimit != null &&
|
powerLimit != null &&
|
||||||
memory != null) {
|
memory != null) {
|
||||||
return NvdiaSmiItem(
|
return NvidiaSmiItem(
|
||||||
name: name,
|
name: name,
|
||||||
uuid: gpu.findElements('uuid').firstOrNull?.innerText ?? '',
|
uuid: gpu.findElements('uuid').firstOrNull?.innerText ?? '',
|
||||||
temp: int.parse(temp.split(' ').firstOrNull ?? '0'),
|
temp: int.parse(temp.split(' ').firstOrNull ?? '0'),
|
||||||
percent: int.parse(percent?.split(' ').firstOrNull ?? '0'),
|
percent: int.parse(percent?.split(' ').firstOrNull ?? '0'),
|
||||||
power: '$powerDraw / $powerLimit',
|
power: '$powerDraw / $powerLimit',
|
||||||
memory: NvdiaSmiMem(
|
memory: NvidiaSmiMem(
|
||||||
int.parse(memoryTotal?.split(' ').firstOrNull ?? '0'),
|
int.parse(memoryTotal?.split(' ').firstOrNull ?? '0'),
|
||||||
int.parse(memoryUsed?.split(' ').firstOrNull ?? '0'),
|
int.parse(memoryUsed?.split(' ').firstOrNull ?? '0'),
|
||||||
'MiB',
|
'MiB',
|
||||||
@@ -100,16 +100,16 @@ class NvdiaSmi {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class NvdiaSmiItem {
|
class NvidiaSmiItem {
|
||||||
final String uuid;
|
final String uuid;
|
||||||
final String name;
|
final String name;
|
||||||
final int temp;
|
final int temp;
|
||||||
final String power;
|
final String power;
|
||||||
final NvdiaSmiMem memory;
|
final NvidiaSmiMem memory;
|
||||||
final int percent;
|
final int percent;
|
||||||
final int fanSpeed;
|
final int fanSpeed;
|
||||||
|
|
||||||
const NvdiaSmiItem({
|
const NvidiaSmiItem({
|
||||||
required this.uuid,
|
required this.uuid,
|
||||||
required this.name,
|
required this.name,
|
||||||
required this.temp,
|
required this.temp,
|
||||||
@@ -125,13 +125,13 @@ class NvdiaSmiItem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class NvdiaSmiMem {
|
class NvidiaSmiMem {
|
||||||
final int total;
|
final int total;
|
||||||
final int used;
|
final int used;
|
||||||
final String unit;
|
final String unit;
|
||||||
final List<NvdiaSmiMemProcess> processes;
|
final List<NvidiaSmiMemProcess> processes;
|
||||||
|
|
||||||
const NvdiaSmiMem(this.total, this.used, this.unit, this.processes);
|
const NvidiaSmiMem(this.total, this.used, this.unit, this.processes);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
@@ -139,12 +139,12 @@ class NvdiaSmiMem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class NvdiaSmiMemProcess {
|
class NvidiaSmiMemProcess {
|
||||||
final int pid;
|
final int pid;
|
||||||
final String name;
|
final String name;
|
||||||
final int memory;
|
final int memory;
|
||||||
|
|
||||||
const NvdiaSmiMemProcess(this.pid, this.name, this.memory);
|
const NvidiaSmiMemProcess(this.pid, this.name, this.memory);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class ServerStatus {
|
|||||||
SystemType system;
|
SystemType system;
|
||||||
String? err;
|
String? err;
|
||||||
DiskIO diskIO;
|
DiskIO diskIO;
|
||||||
List<NvdiaSmiItem>? nvdia;
|
List<NvidiaSmiItem>? nvdia;
|
||||||
|
|
||||||
/// Whether is connectting, parsing and etc.
|
/// Whether is connectting, parsing and etc.
|
||||||
bool _isBusy = false;
|
bool _isBusy = false;
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ Future<ServerStatus> _getLinuxStatus(ServerStatusUpdateReq req) async {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final nvdia = NvdiaSmi.fromXml(StatusCmdType.nvdia.find(segments));
|
final nvdia = NvidiaSmi.fromXml(StatusCmdType.nvdia.find(segments));
|
||||||
req.ss.nvdia = nvdia;
|
req.ss.nvdia = nvdia;
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
Loggers.parse.warning(e, s);
|
Loggers.parse.warning(e, s);
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
class BuildData {
|
class BuildData {
|
||||||
static const String name = "ServerBox";
|
static const String name = "ServerBox";
|
||||||
static const int build = 667;
|
static const int build = 672;
|
||||||
static const String engine = "3.16.2";
|
static const String engine = "3.16.2";
|
||||||
static const String buildAt = "2023-12-09 14:56:57";
|
static const String buildAt = "2023-12-11 11:40:12";
|
||||||
static const int modifications = 11;
|
static const int modifications = 3;
|
||||||
static const int script = 31;
|
static const int script = 31;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildGpuItem(NvdiaSmiItem item) {
|
Widget _buildGpuItem(NvidiaSmiItem item) {
|
||||||
final mem = item.memory;
|
final mem = item.memory;
|
||||||
final processes = mem.processes;
|
final processes = mem.processes;
|
||||||
final children = <Widget>[];
|
final children = <Widget>[];
|
||||||
@@ -378,7 +378,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildGpuProcessItem(NvdiaSmiMemProcess process) {
|
Widget _buildGpuProcessItem(NvidiaSmiMemProcess process) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(
|
title: Text(
|
||||||
process.name,
|
process.name,
|
||||||
|
|||||||
@@ -74,7 +74,9 @@ class _InputState extends State<Input> {
|
|||||||
prefix: widget.prefix,
|
prefix: widget.prefix,
|
||||||
suffixIcon: widget.obscureText
|
suffixIcon: widget.obscureText
|
||||||
? IconButton(
|
? IconButton(
|
||||||
icon: Icon(_obscureText ? Icons.visibility : Icons.visibility_off),
|
icon: Icon(
|
||||||
|
_obscureText ? Icons.visibility : Icons.visibility_off,
|
||||||
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
_obscureText = !_obscureText;
|
_obscureText = !_obscureText;
|
||||||
|
|||||||
@@ -842,7 +842,7 @@ const _raw = '''
|
|||||||
void main() {
|
void main() {
|
||||||
test('nvdia-smi', () {
|
test('nvdia-smi', () {
|
||||||
if (kDebugMode) {
|
if (kDebugMode) {
|
||||||
print(NvdiaSmi.fromXml(_raw).firstOrNull?.memory.processes);
|
print(NvidiaSmi.fromXml(_raw).firstOrNull?.memory.processes);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user