Added mining on battery setting

This commit is contained in:
SChernykh 2020-07-22 20:12:16 +02:00
parent 5bc89fdc8b
commit 299b180b28
10 changed files with 95 additions and 18 deletions

View file

@ -287,6 +287,7 @@ public:
bool active = false;
bool enabled = true;
bool reset = true;
bool battery_power = false;
Controller *controller;
Job job;
mutable std::map<Algorithm::Id, double> maxHashrate;
@ -429,13 +430,23 @@ void xmrig::Miner::setEnabled(bool enabled)
return;
}
if (d_ptr->battery_power && enabled) {
LOG_INFO(YELLOW_BOLD("Can't resume while on battery power"));
return;
}
d_ptr->enabled = enabled;
if (enabled) {
LOG_INFO(GREEN_BOLD("resumed"));
}
else {
LOG_INFO(YELLOW_BOLD("paused") ", press " MAGENTA_BG_BOLD(" r ") " to resume");
if (d_ptr->battery_power) {
LOG_INFO(YELLOW_BOLD("paused"));
}
else {
LOG_INFO(YELLOW_BOLD("paused") ", press " MAGENTA_BG_BOLD(" r ") " to resume");
}
}
if (!d_ptr->active) {
@ -538,6 +549,20 @@ void xmrig::Miner::onTimer(const Timer *)
}
d_ptr->ticks++;
if (!d_ptr->controller->config()->mineOnBattery()) {
const bool battery_power = xmrig::Platform::isOnBatteryPower();
if (battery_power && d_ptr->enabled) {
LOG_INFO(YELLOW_BOLD("On battery power"));
d_ptr->battery_power = true;
setEnabled(false);
}
else if (!battery_power && !d_ptr->enabled && d_ptr->battery_power) {
LOG_INFO(GREEN_BOLD("On AC power"));
d_ptr->battery_power = false;
setEnabled(true);
}
}
}

View file

@ -252,4 +252,5 @@ void xmrig::Config::getJSON(rapidjson::Document &doc) const
doc.AddMember(StringRef(kUserAgent), m_userAgent.toJSON(), allocator);
doc.AddMember(StringRef(kVerbose), Log::verbose(), allocator);
doc.AddMember(StringRef(kWatch), m_watch, allocator);
doc.AddMember(StringRef(kMineOnBattery), m_mineOnBattery, allocator);
}

View file

@ -109,7 +109,8 @@ R"===(
"retry-pause": 5,
"syslog": false,
"user-agent": null,
"watch": true
"watch": true,
"mine-on-battery": true
}
)===";
#endif