콘텐츠로 이동

팬 제어

플러그인은 SignalRGB의 냉각 시스템에 팬 속도 제어 및 온도 보고를 노출할 수 있습니다. 활성화되면 사용자는 SignalRGB에서 직접 팬 곡선을 설정하고, RPM을 모니터링하며, 온도 수치를 확인할 수 있습니다.

팬 제어를 지원하는 플러그인의 일반적인 패턴은 다음과 같습니다:

  1. SupportsFanControl()을 내보내어 true를 반환하면 SignalRGB에 이 장치에 제어 가능한 팬이 있음을 알립니다.
  2. 장치별 명령 또는 RPM 폴링을 통해 연결된 팬을 감지합니다.
  3. Initialize()에서 감지된 각 팬에 대해 device.createFanControl()을 호출합니다.
  4. Render()의 각 프레임에서: 장치에서 현재 RPM을 읽어 device.setRPM()으로 보고하고, device.getFanLevel()에서 원하는 속도를 읽어 장치에 적용합니다.

팬 레벨 함수를 호출하기 전에 항상 device.fanControlDisabled()를 확인하십시오. 사용자에게 SignalRGB Pro가 없거나 수동으로 비활성화한 경우 팬 제어를 사용할 수 없을 수 있습니다.


이 장치가 팬 제어를 지원함을 선언하기 위해 플러그인에서 내보냅니다. SignalRGB는 초기화 중에 이를 호출하여 장치에 냉각 UI를 표시할지 결정합니다.

export function SupportsFanControl() { return true; }

이 내보내기가 없거나 false를 반환하면 팬 제어 API에는 여전히 접근할 수 있지만 장치에 냉각 UI가 나타나지 않습니다.


팬 제어를 현재 사용할 수 없으면 true를 반환합니다 — 사용자에게 SignalRGB Pro가 없거나 냉각 시스템을 수동으로 비활성화한 경우.

device.getFanLevel() 또는 device.getNormalizedFanLevel()을 호출하기 전에 항상 이것을 확인하십시오.

반환값유형설명
Disabledboolean냉각 API를 사용할 수 없으면 true
if (device.fanControlDisabled()) {
return;
}

주어진 ID로 팬 컨트롤러를 생성합니다. Initialize()에서 장치가 노출하는 각 팬에 대해 이것을 호출하십시오. 주어진 ID의 컨트롤러가 이미 존재하면 호출이 무시됩니다.

매개변수유형설명예시
FanIdstring이 팬 컨트롤러의 고유 식별자"Fan1"
device.createFanControl("Fan1");
device.createFanControl("Fan2");

주어진 ID의 팬 컨트롤러를 제거합니다. 팬이 더 이상 감지되지 않거나 장치가 연결 해제되면 사용하십시오.

매개변수유형설명예시
FanIdstring제거할 팬 컨트롤러의 ID"Fan1"

사용자의 현재 팬 곡선 설정에서 파생된 주어진 팬 컨트롤러의 원하는 팬 속도를 백분율(0–100)로 반환합니다.

매개변수유형설명예시
FanIdstring팬 컨트롤러 ID"Fan1"
반환값유형설명예시
FanSpeedint원하는 속도, 0–10042
let speed = device.getFanLevel("Fan1"); // e.g. 42 (meaning 42%)

원하는 팬 속도를 정규화된 부동 소수점(0.0–1.0)으로 반환합니다. 장치가 백분율 대신 분수 듀티 사이클을 기대할 때 유용합니다.

매개변수유형설명예시
FanIdstring팬 컨트롤러 ID"Fan1"
반환값유형설명예시
FanSpeedfloat원하는 속도, 0.0–1.00.42
let speed = device.getNormalizedFanLevel("Fan1"); // e.g. 0.42

팬 컨트롤러의 현재 측정 RPM을 보고합니다. 이 값은 냉각 UI 및 시스템 모니터링 그래프에 표시됩니다.

매개변수유형설명예시
FanIdstring팬 컨트롤러 ID"Fan1"
RPMint현재 팬 속도(RPM)1337
let rpm = ReadRPMFromDevice("Fan1");
device.setRPM("Fan1", rpm);

플러그인은 SignalRGB의 냉각 시스템에 온도 수치도 노출할 수 있습니다. 이 값은 시스템 모니터링에 나타나며 팬 곡선의 입력 소스로 사용할 수 있습니다.

주어진 ID로 온도 센서를 생성합니다. Initialize()에서 장치가 노출하는 각 온도 소스에 대해 이것을 호출하십시오.

매개변수유형설명예시
SensorIdstring이 센서의 고유 식별자"Coolant Temp"
device.createTemperatureSensor("Coolant Temp");

주어진 ID의 온도 센서를 제거합니다.

매개변수유형설명예시
SensorIdstring제거할 센서의 ID"Coolant Temp"

device.SetTemperature(sensorId, temperature)

섹션 제목: “device.SetTemperature(sensorId, temperature)”

주어진 센서의 현재 온도를 보고합니다. 장치에서 값을 읽은 후 매 프레임마다 이것을 호출하십시오.

매개변수유형설명예시
SensorIdstring센서 ID"Coolant Temp"
Temperaturefloat현재 온도(섭씨)34.5
let temp = ReadTemperatureFromDevice();
device.SetTemperature("Coolant Temp", temp);

export function SupportsFanControl() { return true; }
export function Initialize() {
device.createFanControl("Fan1");
device.createFanControl("Fan2");
device.createTemperatureSensor("Coolant Temp");
}
export function Render() {
// Report current RPM — required every frame or speed will hardlock
device.setRPM("Fan1", ReadRPM(1));
device.setRPM("Fan2", ReadRPM(2));
// Report current temperature
device.SetTemperature("Coolant Temp", ReadTemp());
// Apply desired speed to hardware
if (!device.fanControlDisabled()) {
SetDeviceFanSpeed(1, device.getFanLevel("Fan1"));
SetDeviceFanSpeed(2, device.getFanLevel("Fan2"));
}
}
export function Shutdown() {
device.removeFanControl("Fan1");
device.removeFanControl("Fan2");
device.removeTemperatureSensor("Coolant Temp");
}