mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2025-12-30 18:57:52 -05:00
72 lines
2.3 KiB
C++
72 lines
2.3 KiB
C++
/*-----------------------------------------*\
|
|
| FanController_NZXTKraken.cpp |
|
|
| |
|
|
| Generic Fan Interface for NZXT Kraken |
|
|
| |
|
|
| swilde 5/2021 |
|
|
\*-----------------------------------------*/
|
|
|
|
#include "FanController_NZXTKraken.h"
|
|
|
|
FanController_NZXTKraken::FanController_NZXTKraken(NZXTKrakenController* kraken_ptr)
|
|
{
|
|
kraken = kraken_ptr;
|
|
|
|
name = "NZXT Kraken X2";
|
|
description = "NZXT Kraken X42/X52/X62/X72";
|
|
version = kraken->GetFirmwareVersion();
|
|
location = kraken->GetLocation();
|
|
serial = kraken->GetSerialString();
|
|
|
|
kraken->UpdateStatus();
|
|
|
|
fan new_fan;
|
|
|
|
/*---------------------------------------------------------*\
|
|
| Add fan |
|
|
| X52 has a max fan RPM of 200, the X42 and X62 max is 1800 |
|
|
\*---------------------------------------------------------*/
|
|
new_fan.name = "NZXT Kraken Fan";
|
|
new_fan.speed_min = 25;
|
|
new_fan.speed_max = 100;
|
|
new_fan.speed_cmd = 100 * kraken->fan_speed / 2000;
|
|
new_fan.prev_speed_cmd = 0;
|
|
new_fan.rpm_rdg = kraken->fan_speed;
|
|
fans.push_back(new_fan);
|
|
|
|
/*---------------------------------------------------------*\
|
|
| Add pump |
|
|
\*---------------------------------------------------------*/
|
|
new_fan.name = "NZXT Kraken Pump";
|
|
new_fan.speed_min = 50;
|
|
new_fan.speed_max = 100;
|
|
new_fan.speed_cmd = 100 * kraken->pump_speed / 2800;
|
|
new_fan.prev_speed_cmd = 0;
|
|
new_fan.rpm_rdg = kraken->pump_speed;
|
|
fans.push_back(new_fan);
|
|
|
|
UpdateControl();
|
|
}
|
|
|
|
void FanController_NZXTKraken::UpdateControl()
|
|
{
|
|
if(fans[0].speed_cmd != fans[0].prev_speed_cmd)
|
|
{
|
|
kraken->SetSpeed(NZXT_KRAKEN_CHANNEL_FAN, fans[0].speed_cmd);
|
|
fans[0].prev_speed_cmd = fans[0].speed_cmd;
|
|
}
|
|
if(fans[1].speed_cmd != fans[1].prev_speed_cmd)
|
|
{
|
|
kraken->SetSpeed(NZXT_KRAKEN_CHANNEL_PUMP, fans[1].speed_cmd);
|
|
fans[1].prev_speed_cmd = fans[1].speed_cmd;
|
|
}
|
|
}
|
|
|
|
void FanController_NZXTKraken::UpdateReading()
|
|
{
|
|
kraken->UpdateStatus();
|
|
|
|
fans[0].rpm_rdg = kraken->fan_speed;
|
|
fans[1].rpm_rdg = kraken->pump_speed;
|
|
}
|