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.