İçeriğe geç

Fan Kontrolü

Eklentiler, SignalRGB’nin Soğutma sistemine fan hızı kontrolü ve sıcaklık raporlaması sunabilir. Etkinleştirildiğinde kullanıcılar fan eğrilerini ayarlayabilir, RPM değerini izleyebilir ve sıcaklık okumalarını doğrudan SignalRGB’de görüntüleyebilir.

Fan kontrolünü destekleyen bir eklenti için genel kalıp şöyledir:

  1. SignalRGB’ye bu cihazın kontrol edilebilir fanlara sahip olduğunu bildirmek için true döndüren SupportsFanControl() fonksiyonunu dışa aktarın.
  2. Hangi fanların bağlı olduğunu tespit edin (cihaza özgü komutlar veya RPM sorgulama ile).
  3. Initialize() içinde tespit edilen her fan için device.createFanControl() çağrısı yapın.
  4. Render() içinde her karede: cihazdan mevcut RPM değerini okuyun ve device.setRPM() ile raporlayın, ardından device.getFanLevel() ile istenen hızı okuyun ve cihaza uygulayın.

Herhangi bir fan düzeyi fonksiyonu çağırmadan önce her zaman device.fanControlDisabled() kontrolü yapın. Fan kontrolü, kullanıcının SignalRGB Pro’ya sahip olmaması veya kullanıcının manuel olarak devre dışı bırakması nedeniyle kullanılamıyor olabilir.


Bu cihazın fan kontrolünü desteklediğini bildirmek için eklentiden dışa aktarılır. SignalRGB, cihaz için Soğutma kullanıcı arayüzünü gösterip göstermeyeceğine karar vermek üzere başlatma sırasında bunu çağırır.

export function SupportsFanControl() { return true; }

Bu dışa aktarım yoksa veya false döndürüyorsa fan kontrol API’si hâlâ erişilebilirdir, ancak cihaz için Soğutma kullanıcı arayüzü görünmez.


Fan kontrolü şu anda kullanılamıyorsa true döndürür — ya kullanıcının SignalRGB Pro’su olmadığı için ya da kullanıcı Soğutma sistemini manuel olarak devre dışı bıraktığı için.

device.getFanLevel() veya device.getNormalizedFanLevel() çağırmadan önce her zaman bunu kontrol edin.

DöndürülenTürAçıklama
DisabledbooleanSoğutma API’si kullanılamıyorsa true
if (device.fanControlDisabled()) {
return;
}

Verilen kimlikle bir fan kontrolörü oluşturur. Cihazın sunduğu her fan için Initialize() içinde bunu çağırın. Verilen kimliğe sahip bir kontrolör zaten mevcutsa çağrı yok sayılır.

ParametreTürAçıklamaÖrnek
FanIdstringBu fan kontrolörü için benzersiz tanımlayıcı"Fan1"
device.createFanControl("Fan1");
device.createFanControl("Fan2");

Verilen kimliğe sahip fan kontrolörünü kaldırır. Bir fan artık tespit edilemiyorsa veya cihaz bağlantısı kesiliyorsa bunu kullanın.

ParametreTürAçıklamaÖrnek
FanIdstringKaldırılacak fan kontrolörünün kimliği"Fan1"

Verilen fan kontrolörü için, kullanıcının mevcut fan eğrisi ayarlarından elde edilen istenen fan hızını yüzde olarak (0–100) döndürür.

ParametreTürAçıklamaÖrnek
FanIdstringFan kontrolörü kimliği"Fan1"
DöndürülenTürAçıklamaÖrnek
FanSpeedintİstenen hız, 0–10042
let speed = device.getFanLevel("Fan1"); // örn. 42 (%42 anlamında)

İstenen fan hızını normalleştirilmiş float olarak (0.0–1.0) döndürür. Cihaz yüzde yerine kesirli bir çalışma döngüsü beklediğinde kullanışlıdır.

ParametreTürAçıklamaÖrnek
FanIdstringFan kontrolörü kimliği"Fan1"
DöndürülenTürAçıklamaÖrnek
FanSpeedfloatİstenen hız, 0.0–1.00.42
let speed = device.getNormalizedFanLevel("Fan1"); // örn. 0.42

Bir fan kontrolörü için ölçülen mevcut RPM değerini raporlar. Bu değer Soğutma kullanıcı arayüzünde ve sistem izleme grafiklerinde görüntülenir.

ParametreTürAçıklamaÖrnek
FanIdstringFan kontrolörü kimliği"Fan1"
RPMintRPM cinsinden mevcut fan hızı1337
let rpm = ReadRPMFromDevice("Fan1");
device.setRPM("Fan1", rpm);

Eklentiler aynı zamanda SignalRGB’nin Soğutma sistemine sıcaklık okumalarını da sunabilir. Bu değerler sistem izlemede görünür ve fan eğrileri için giriş kaynağı olarak kullanılabilir.

Verilen kimlikle bir sıcaklık sensörü oluşturur. Cihazın sunduğu her sıcaklık kaynağı için Initialize() içinde bunu çağırın.

ParametreTürAçıklamaÖrnek
SensorIdstringBu sensör için benzersiz tanımlayıcı"Coolant Temp"
device.createTemperatureSensor("Coolant Temp");

Verilen kimliğe sahip sıcaklık sensörünü kaldırır.

ParametreTürAçıklamaÖrnek
SensorIdstringKaldırılacak sensörün kimliği"Coolant Temp"

device.SetTemperature(sensorId, temperature)

Section titled “device.SetTemperature(sensorId, temperature)”

Verilen sensör için mevcut sıcaklığı raporlar. Cihazdan değer okunduktan sonra her karede bunu çağırın.

ParametreTürAçıklamaÖrnek
SensorIdstringSensör kimliği"Coolant Temp"
TemperaturefloatSantigrat derece cinsinden mevcut sıcaklık34.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() {
// Mevcut RPM değerini raporla — her karede gereklidir, yoksa hız sabitlenir
device.setRPM("Fan1", ReadRPM(1));
device.setRPM("Fan2", ReadRPM(2));
// Mevcut sıcaklığı raporla
device.SetTemperature("Coolant Temp", ReadTemp());
// İstenen hızı donanıma uygula
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");
}