[][src]Crate battery_ffi

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_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 Definitions

Batteries

Opaque struct representing batteries iterator.

Battery

Opaque struct representing battery.

Manager

Opaque struct representing battery manager.