Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
78f1a3c0a6 | |||
07a8de4034 | |||
cfc180cb32 |
@ -2,4 +2,7 @@ FROM archlinux:latest
|
||||
RUN pacman --noconfirm -Sy gcc make
|
||||
COPY . .
|
||||
RUN make
|
||||
RUN pacman --noconfirm -Rnsu gcc make
|
||||
RUN useradd batstat
|
||||
USER batstat
|
||||
CMD [ "build/batstat" ]
|
||||
|
@ -12,10 +12,12 @@ namespace dlore
|
||||
std::string Technology;
|
||||
unsigned int CellSeriesCount;
|
||||
unsigned int Capacity;
|
||||
unsigned int CapacityDesign;
|
||||
float Vnow;
|
||||
float Vmin;
|
||||
unsigned int ChargeNow;
|
||||
unsigned int ChargeFull;
|
||||
unsigned int ChargeFullPercentageDesign;
|
||||
unsigned int ChargeFullDesign;
|
||||
} typedef BatteryInfo;
|
||||
|
||||
|
@ -7,7 +7,7 @@ namespace dlore
|
||||
std::string readData(std::filesystem::path path)
|
||||
{
|
||||
std::ifstream file(path, std::ios::in);
|
||||
if(!file) return "";
|
||||
if(!file) return "0";
|
||||
std::string ret;
|
||||
std::getline(file, ret);
|
||||
file.close();
|
||||
@ -26,6 +26,11 @@ namespace dlore
|
||||
info.ChargeFull = std::stoi(readData(classPath / "charge_full")) / 1000;
|
||||
info.ChargeFullDesign = std::stoi(readData(classPath / "charge_full_design")) / 1000;
|
||||
|
||||
if(info.ChargeFullDesign != 0) {
|
||||
info.ChargeFullPercentageDesign = 100 * info.ChargeFull / info.ChargeFullDesign;
|
||||
info.CapacityDesign = 100 * info.ChargeNow / info.ChargeFullDesign;
|
||||
}
|
||||
|
||||
int Vnow = std::stoi(readData(classPath / "voltage_now")) / 1000;
|
||||
int Vmin = std::stoi(readData(classPath / "voltage_min_design")) / 1000;
|
||||
|
||||
|
@ -16,12 +16,13 @@ void printBattery(std::filesystem::path classPath)
|
||||
std::cout << std::endl << "\tTechnology: " << bat.Technology;
|
||||
std::cout << std::endl << "\tCell series count: " << bat.CellSeriesCount << 's' << std::endl;
|
||||
std::cout << std::endl << "\tCapacity: " << bat.Capacity << '%';
|
||||
std::cout << std::endl << "\tCapacity (design): " << bat.CapacityDesign << '%';
|
||||
std::cout << std::endl << "\tVmin: " << bat.Vmin << 'V';
|
||||
std::cout << " Per cell: " << bat.Vmin / bat.CellSeriesCount << 'V';
|
||||
std::cout << std::endl << "\tVnow: " << bat.Vnow << 'V';
|
||||
std::cout << " Per cell: " << bat.Vnow / bat.CellSeriesCount << 'V';
|
||||
std::cout << std::endl << "\tCharge now: " << bat.ChargeNow << "mAh";
|
||||
std::cout << std::endl << "\tCharge full: " << bat.ChargeFull << "mAh";
|
||||
std::cout << std::endl << "\tCharge full: " << bat.ChargeFull << "mAh (" << bat.ChargeFullPercentageDesign << "% of design)";
|
||||
std::cout << std::endl << "\tCharge full (design): " << bat.ChargeFullDesign << "mAh" << std::endl;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user