1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2026-01-20 09:23:33 +00:00

Unified battery detection across platforms, and added support for linux.

This commit is contained in:
Bryan Roe
2020-05-30 12:39:26 -07:00
parent 51e6062966
commit e6a1743d3e
3 changed files with 49 additions and 5 deletions

View File

@@ -265,6 +265,39 @@ module.exports.isDocker = function isDocker()
child.waitExit();
return (child.stdout.str != '');
};
module.exports.isBatteryPowered = function isBatteryOperated()
{
var ret = false;
switch(process.platform)
{
default:
break;
case 'linux':
var devices = require('fs').readdirSync('/sys/class/power_supply');
for (var i in devices)
{
if(require('fs').readFileSync('/sys/class/power_supply/' + devices[i] + '/type').toString().trim()=='Battery')
{
ret = true;
break;
}
}
case 'win32':
var GM = require('_GenericMarshal');
var stats = GM.CreateVariable(12);
var kernel32 = GM.CreateNativeProxy('Kernel32.dll');
kernel32.CreateMethod('GetSystemPowerStatus');
if (kernel32.GetSystemPowerStatus(stats).Val != 0)
{
if(stats.toBuffer()[1] != 128 && stats.toBuffer()[1] != 255)
{
ret = true;
}
}
break;
}
return (ret);
};
module.exports.isVM = function isVM()
{
var ret = false;