Compare commits

...

3 Commits
0.1.0 ... main

4 changed files with 13 additions and 2 deletions

View File

@ -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" ]

View File

@ -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;

View File

@ -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;

View File

@ -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;
}