2024-07-11 21:41:42 +00:00
|
|
|
type Pwr = {
|
2024-07-09 07:44:43 +00:00
|
|
|
usage: number,
|
|
|
|
hrsLeft: number,
|
|
|
|
batt: number, // battery percentage
|
|
|
|
};
|
|
|
|
|
2024-07-09 07:50:42 +00:00
|
|
|
// eslint-disable-next-line no-unused-vars
|
2024-07-09 07:44:43 +00:00
|
|
|
type PowerUsageModule = {
|
2024-07-11 21:41:42 +00:00
|
|
|
get: () => Pwr,
|
2024-07-09 07:44:43 +00:00
|
|
|
};
|
|
|
|
|
2024-07-11 21:41:42 +00:00
|
|
|
exports.get = (): Pwr => {
|
2024-07-09 07:44:43 +00:00
|
|
|
const pwr = E.getPowerUsage();
|
|
|
|
const batt = E.getBattery();
|
|
|
|
let usage = 0;
|
|
|
|
for(const key in pwr.device){
|
2024-07-11 20:14:28 +00:00
|
|
|
if(!key.startsWith("LCD"))
|
2024-07-11 21:41:42 +00:00
|
|
|
usage += pwr.device[key as keyof typeof pwr.device]!;
|
2024-07-09 07:44:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// 175mAh, scaled based on battery (batt/100), scaled down based on usage
|
|
|
|
const hrsLeft = 175000 * batt / (100 * usage);
|
|
|
|
|
|
|
|
return {
|
|
|
|
usage,
|
|
|
|
hrsLeft,
|
|
|
|
batt,
|
|
|
|
};
|
|
|
|
};
|