Generic Battery Server

The Generic Battery Server model provides information about the current battery status of the device.

States

The Generic Battery Server model contains the following state:

Generic Battery Status: bt_mesh_battery_status

The Generic Battery Status is a composite state, which means that it contains various information about the battery state. The battery state can only be changed locally, so a Generic Battery Client is only able to observe it.

Your application is expected to hold the Generic Battery Status state memory and provide access to the state through the bt_mesh_battery_srv.get handler function. All the fields in the Generic Battery Status have special unknown values, which are used by default.

API documentation

Header file: include/bluetooth/mesh/gen_battery_srv.h
Source file: subsys/bluetooth/mesh/gen_battery_srv.c
group bt_mesh_battery_srv

API for the Generic Battery Server model.

Defines

BT_MESH_BATTERY_SRV_INIT(_get_handler)

Init parameters for a Generic Battery Server model instance.

Parameters
  • _get_handler[in] Get handler function for the Battery state.

BT_MESH_MODEL_BATTERY_SRV(_srv)

Generic Battery Server model composition data entry.

Parameters

Functions

int bt_mesh_battery_srv_pub(struct bt_mesh_battery_srv *srv, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_battery_status *status)

Publish the Generic Battery Server model status.

Asynchronously publishes a Generic Battery status message with the configured publish parameters.

Note

This API is only used for publishing unprompted status messages. Response messages for get and set messages are handled internally.

Parameters
  • srv[in] Server instance to publish on.

  • ctx[in] Message context to send with, or NULL to send with the default publish parameters.

  • status[in] Current status.

Returns 0

Successfully published a Generic Battery Status message.

Returns -EADDRNOTAVAIL

A message context was not provided and publishing is not configured.

Returns -EAGAIN

The device has not been provisioned.

struct bt_mesh_battery_srv
#include <gen_battery_srv.h>

Generic Battery Server instance. Should primarily be initialized with the BT_MESH_BATTERY_SRV_INIT macro.

Public Members

struct bt_mesh_model *model

Pointer to the model entry in the composition data.

struct bt_mesh_model_pub pub

Publication parameters.

void (*const get)(struct bt_mesh_battery_srv *srv, struct bt_mesh_msg_ctx *ctx, struct bt_mesh_battery_status *rsp)

Get the Battery state.

Note

This handler is mandatory.

Parameters
  • srv[in] Server instance to get the state of.

  • ctx[in] Message context for the message that triggered the change, or NULL if the change is not coming from a message.

  • rsp[out] Response structure to be filled. All fields are initialized to special unknown values before calling, so only states that have known values need to be filled.