add the option to disable output
This commit is contained in:
parent
b1c92cd561
commit
c084c42794
3
ipmi.cpp
3
ipmi.cpp
@ -128,9 +128,6 @@ ipmi_ctx_t ipmi_open_context()
|
||||
bool ipmi_set_fan_group(ipmi_ctx_t raw_ctx, uint8_t group, double speed)
|
||||
{
|
||||
char converted_speed = std::max(std::min(static_cast<char>(100), static_cast<char>(speed*100)), static_cast<char>(0));
|
||||
|
||||
std::cout<<"setting fan group "<<static_cast<int>(group)<<" to "<<speed*100<<"% ("<<static_cast<int>(converted_speed)<<")\n";
|
||||
|
||||
char command[] = {0x70, 0x66, 0x01, static_cast<char>(group), converted_speed};
|
||||
char bytesrx[IPMI_RAW_MAX_ARGS] = {0};
|
||||
int rxlen = ipmi_cmd_raw(raw_ctx, 0, 0x30, command, sizeof(command), bytesrx, IPMI_RAW_MAX_ARGS);
|
||||
|
@ -4,7 +4,7 @@ After=lm_sensors.service systemd-modules-load.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/ipmifan
|
||||
ExecStart=/usr/bin/ipmifan -q
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
16
main.cpp
16
main.cpp
@ -23,6 +23,8 @@ void sig_handler(int sig)
|
||||
running = false;
|
||||
}
|
||||
|
||||
bool quiet;
|
||||
|
||||
std::vector<Sensor> gather_sensors(std::vector<Sensor>& ipmi_sensors, ipmi_monitoring_ctx_t ctx, std::vector<const sensors_chip_name*>& lm_chips)
|
||||
{
|
||||
std::vector<Sensor> out;
|
||||
@ -119,6 +121,9 @@ int main(int argc, char **argv)
|
||||
signal(SIGHUP, sig_handler);
|
||||
signal(SIGINT, sig_handler);
|
||||
|
||||
if(argc > 1)
|
||||
quiet = true;
|
||||
|
||||
int ret = sensors_init(nullptr);
|
||||
if(ret < 0)
|
||||
{
|
||||
@ -141,9 +146,16 @@ int main(int argc, char **argv)
|
||||
while(running)
|
||||
{
|
||||
std::vector<Sensor> sensors = gather_sensors(ipmi_sensors, monitoring_ctx, lm_chips);
|
||||
for(const Sensor& sensor : sensors)
|
||||
std::cout<<"Sensor "<<sensor.chip<<':'<<sensor.name<<"\t= "<<sensor.reading<<'\n';
|
||||
std::vector<double> fanzones = get_fan_zones(sensors);
|
||||
|
||||
if(!quiet)
|
||||
{
|
||||
for(const Sensor& sensor : sensors)
|
||||
std::cout<<"Sensor "<<sensor.chip<<':'<<sensor.name<<"\t= "<<sensor.reading<<'\n';
|
||||
for(size_t i = 0; i < fanzones.size(); ++i)
|
||||
std::cout<<"setting fan group "<<i<<" to "<<fanzones[i]*100<<"%\n";
|
||||
}
|
||||
|
||||
ipmi_set_fan_group(raw_ctx, 0, fanzones[0]);
|
||||
ipmi_set_fan_group(raw_ctx, 1, fanzones[1]);
|
||||
sleep(10);
|
||||
|
Loading…
x
Reference in New Issue
Block a user