Skip to main content

Crate battery_ffi

Crate battery_ffi 

Source
Expand description

This crate provides C ABI interface for battery crate.

§Bindings generation

Among library creation this crate generates battery_ffi.h file, enabled by default by cbindgen feature, which might be useful for automatic bindings generation or just with plain C/C++ development.

After build it will be located somewhere at target/*/build/battery-ffi-*/out/, depending on build profile (debug/release) and build hash.

Disabling cbindgen feature might speed up compilation a little bit, especially if you don’t need the header file.

§Examples

#include "battery_ffi.h"

void main() {
   Manager *manager = battery_manager_new();
   // .. handle `manager == NULL` here ..
   Batteries *iterator = battery_manager_iter(manager);
   // .. handle `iterator == NULL` here ..
   while (true) {
       Battery *battery = battery_iterator_next(iterator);
       // .. handle possible error here ..
       if (battery == NULL) {
           break;
       }

       // Use some `battery_get_*` functions here

       battery_free(battery);
   }

   battery_iterator_free(iterator);
   battery_manager_free(manager);
}

Also, check the examples/ directory in the repository for examples with C and Python.

Enums§

State
Possible battery states.
Technology
Possible battery technologies.

Functions§

battery_free⚠
Frees battery instance.
battery_get_cycle_count⚠
Returns battery cycles count.
battery_get_energy⚠
Returns battery energy (in joule).
battery_get_energy_full⚠
Returns battery energy (in joule) when it is considered full.
battery_get_energy_full_design⚠
Returns battery energy (in joule) designed to hold when it is considered full.
battery_get_energy_rate⚠
Returns battery energy rate (in W).
battery_get_model⚠
Returns battery model.
battery_get_serial_number⚠
Returns battery serial number.
battery_get_state⚠
Returns battery state.
battery_get_state_of_charge⚠
Returns battery state of charge as a percentage value from 0.0 to 100.0.
battery_get_state_of_health⚠
Returns battery state of health as a percentage value from 0.0 to 100.0.
battery_get_technology⚠
Returns battery technology.
battery_get_temperature⚠
Returns battery temperature in Kelvin.
battery_get_time_to_empty⚠
Returns battery time to empty.
battery_get_time_to_full⚠
Returns battery time to full.
battery_get_vendor⚠
Returns battery vendor.
battery_get_voltage⚠
Returns battery voltage (in V)
battery_have_last_error
Checks if there was an error before.
battery_iterator_free⚠
Frees previously created batteries iterator.
battery_iterator_next⚠
Gets next iteration over batteries iterator.
battery_last_error_length
Gets error message length if any error had occurred.
battery_last_error_message⚠
Fills passed buffer with an error message.
battery_manager_free⚠
Frees manager instance.
battery_manager_iter⚠
Creates an iterator over batteries from manager instance.
battery_manager_new
Creates new batteries manager instance.
battery_manager_refresh⚠
Refreshes battery information.
battery_str_free⚠
Frees battery information string value.

Type Aliases§

Batteries
Opaque struct representing batteries iterator.
Battery
Opaque struct representing battery.
Manager
Opaque struct representing battery manager.