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:
- SignalRGB’ye bu cihazın kontrol edilebilir fanlara sahip olduğunu bildirmek için
truedöndürenSupportsFanControl()fonksiyonunu dışa aktarın. - Hangi fanların bağlı olduğunu tespit edin (cihaza özgü komutlar veya RPM sorgulama ile).
Initialize()içinde tespit edilen her fan içindevice.createFanControl()çağrısı yapın.Render()içinde her karede: cihazdan mevcut RPM değerini okuyun vedevice.setRPM()ile raporlayın, ardındandevice.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.
Eklenti Dışa Aktarımı
Section titled “Eklenti Dışa Aktarımı”SupportsFanControl()
Section titled “SupportsFanControl()”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örü Yöntemleri
Section titled “Fan Kontrolörü Yöntemleri”device.fanControlDisabled()
Section titled “device.fanControlDisabled()”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ülen | Tür | Açıklama |
|---|---|---|
| Disabled | boolean | Soğutma API’si kullanılamıyorsa true |
if (device.fanControlDisabled()) { return;}device.createFanControl(fanId)
Section titled “device.createFanControl(fanId)”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.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| FanId | string | Bu fan kontrolörü için benzersiz tanımlayıcı | "Fan1" |
device.createFanControl("Fan1");device.createFanControl("Fan2");device.removeFanControl(fanId)
Section titled “device.removeFanControl(fanId)”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.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| FanId | string | Kaldırılacak fan kontrolörünün kimliği | "Fan1" |
device.getFanLevel(fanId)
Section titled “device.getFanLevel(fanId)”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.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| FanId | string | Fan kontrolörü kimliği | "Fan1" |
| Döndürülen | Tür | Açıklama | Örnek |
|---|---|---|---|
| FanSpeed | int | İstenen hız, 0–100 | 42 |
let speed = device.getFanLevel("Fan1"); // örn. 42 (%42 anlamında)device.getNormalizedFanLevel(fanId)
Section titled “device.getNormalizedFanLevel(fanId)”İ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.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| FanId | string | Fan kontrolörü kimliği | "Fan1" |
| Döndürülen | Tür | Açıklama | Örnek |
|---|---|---|---|
| FanSpeed | float | İstenen hız, 0.0–1.0 | 0.42 |
let speed = device.getNormalizedFanLevel("Fan1"); // örn. 0.42device.setRPM(fanId, rpm)
Section titled “device.setRPM(fanId, rpm)”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.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| FanId | string | Fan kontrolörü kimliği | "Fan1" |
| RPM | int | RPM cinsinden mevcut fan hızı | 1337 |
let rpm = ReadRPMFromDevice("Fan1");device.setRPM("Fan1", rpm);Sıcaklık Sensörü Yöntemleri
Section titled “Sıcaklık Sensörü Yöntemleri”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.
device.createTemperatureSensor(sensorId)
Section titled “device.createTemperatureSensor(sensorId)”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.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| SensorId | string | Bu sensör için benzersiz tanımlayıcı | "Coolant Temp" |
device.createTemperatureSensor("Coolant Temp");device.removeTemperatureSensor(sensorId)
Section titled “device.removeTemperatureSensor(sensorId)”Verilen kimliğe sahip sıcaklık sensörünü kaldırır.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| SensorId | string | Kaldı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.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| SensorId | string | Sensör kimliği | "Coolant Temp" |
| Temperature | float | Santigrat derece cinsinden mevcut sıcaklık | 34.5 |
let temp = ReadTemperatureFromDevice();device.SetTemperature("Coolant Temp", temp);Tam Örnek
Section titled “Tam Örnek”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");}