#curve #fan #laptop #board #setting #asus #rog

rog_fan_curve

为某些华硕笔记本电脑设置风扇曲线的库和命令行界面

12个版本

0.1.11 2021年8月22日
0.1.10 2021年8月11日
0.1.9 2021年7月28日
0.1.8 2021年2月25日
0.1.3 2020年7月15日

#1229 in 硬件支持

每月42次下载

MIT/Apache

18KB
350

此crate与acpi交互需要acpi_call 内核模块。

示例

let mut curve = Curve::new();

curve.set_point(0,  30,   0);
curve.set_point(1,  40,   1);
curve.set_point(2,  50,   4);
curve.set_point(3,  60,   4);
curve.set_point(4,  70,  13);
curve.set_point(5,  80,  40);
curve.set_point(6,  90, 100);
curve.set_point(7, 100, 100);

let board = Board::from_name("GA401IV").unwrap();

curve.apply(board, Fan::Cpu)?;
curve.apply(board, Fan::Gpu)?;

风扇速度和温度

温度单位为摄氏度。

风扇速度大约是百分比风扇速度。该刻度是非线性的,超过100的值似乎会导致风扇速度略高。0值将关闭风扇。

一个温度和速度的配对表示在某个温度下的风扇速度,例如40c:10%表示当温度超过40C时,风扇将以10%的速度运行。

配置字符串格式

配置字符串遵循以下格式

<t>c:<s>%,<t>c:<s>%,<t>c:<s>%,<t>c:<s>%,<t>c:<s>%,<t>c:<s>%,<t>c:<s>%,<t>c:<s>%

其中t是温度,s是风扇速度。

曲线必须正好有8对。此格式应与atrofac使用的格式相匹配。

示例

30c:0%,40c:5%,50c:10%,60c:20%,70c:35%,80c:55%,90c:65%,100c:65%`

Serde

Curve实现了序列化和反序列化到/从配置字符串格式。

示例

Cargo.toml

rog_fan_curve = { version = "*", features = ["serde"] }
let json = "\"30c:0%,40c:5%,50c:10%,60c:20%,70c:35%,80c:55%,90c:65%,100c:75%\"";

let curve: Curve = serde_json::from_str(json)?;

let new_json = serde_json::to_string(&curve)?;
assert_eq!(json, new_json);

依赖项

~180KB