mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
new: prefer temperature device (#285)
This commit is contained in:
@@ -2,6 +2,7 @@ import 'dart:convert';
|
||||
|
||||
import 'package:toolbox/core/extension/listx.dart';
|
||||
import 'package:toolbox/data/res/logger.dart';
|
||||
import 'package:toolbox/data/res/store.dart';
|
||||
|
||||
final class SensorAdaptor {
|
||||
final String raw;
|
||||
@@ -101,6 +102,22 @@ final class SensorItem {
|
||||
return items;
|
||||
}
|
||||
|
||||
static double? findPreferTempVal(List<SensorItem> items) {
|
||||
if (items.isEmpty) {
|
||||
return null;
|
||||
}
|
||||
final preferTemperatureDevs = Stores.setting.preferTemperatureDevs.fetch();
|
||||
if (preferTemperatureDevs.isNotEmpty) {
|
||||
for (final key in preferTemperatureDevs) {
|
||||
final item = items.firstWhereOrNull((e) => e.device == key);
|
||||
if (item != null) {
|
||||
return item.props.values.firstOrNull?.current;
|
||||
}
|
||||
}
|
||||
}
|
||||
return items.first.props.values.firstOrNull?.current;
|
||||
}
|
||||
|
||||
static const sensorsRaw = '''
|
||||
{
|
||||
"coretemp-isa-0000":{
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import 'package:toolbox/data/res/store.dart';
|
||||
|
||||
class Temperatures {
|
||||
final Map<String, double> _map = {};
|
||||
|
||||
@@ -35,8 +37,16 @@ class Temperatures {
|
||||
if (_map.isEmpty) {
|
||||
return null;
|
||||
}
|
||||
for (final key in _map.keys) {
|
||||
if (cpuTempReg.hasMatch(key)) {
|
||||
final preferTemperatureDevs = Stores.setting.preferTemperatureDevs.fetch();
|
||||
if (preferTemperatureDevs.isNotEmpty) {
|
||||
for (final key in preferTemperatureDevs) {
|
||||
if (_map.containsKey(key)) {
|
||||
return _map[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final key in _cpuTemp) {
|
||||
if (_map.containsKey(key)) {
|
||||
return _map[key];
|
||||
}
|
||||
}
|
||||
@@ -45,5 +55,5 @@ class Temperatures {
|
||||
}
|
||||
|
||||
/// soc: mobile phone
|
||||
/// cpu_thermal / x86_pkg_temp: x86
|
||||
final cpuTempReg = RegExp(r'(x86_pkg_temp|cpu_thermal|soc)');
|
||||
/// cpu_thermal / x86_pkg_temp / coretemp / zenpower: x86
|
||||
const _cpuTemp = ['x86_pkg_temp', 'coretemp', 'zenpower', 'cpu_thermal', 'soc'];
|
||||
|
||||
@@ -239,6 +239,13 @@ class SettingStore extends PersistentStore {
|
||||
/// Auto refresh container status
|
||||
late final contaienrAutoRefresh = property('contaienrAutoRefresh', true);
|
||||
|
||||
/// eg:
|
||||
/// Available devices: ['iwlwifi','x86pkg_temp']
|
||||
/// Prefer list: ['x86pkg_temp','example']
|
||||
/// Result: use x86pkg_temp's temperature as the temperature
|
||||
late final preferTemperatureDevs =
|
||||
listProperty('preferTemperatureDevs', <String>[]);
|
||||
|
||||
// Never show these settings for users
|
||||
//
|
||||
// ------BEGIN------
|
||||
|
||||
Reference in New Issue
Block a user