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
  • [in] _get_handler: Get handler function for the Battery state.

BT_MESH_MODEL_BATTERY_SRV(_srv)

Generic Battery Server model composition data entry.

Parameters

Functions

int32_t 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 publishing unprompted status messages. Response messages for get and set messages are handled internally.

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

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

  • [in] status: Current status.

Return Value
  • 0: Successfully published a Generic Battery Status message.

  • -ENOTSUP: A message context was not provided and publishing is not supported.

  • -EADDRNOTAVAIL: A message context was not provided and publishing is not configured.

  • -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
  • [in] srv: Server instance to get the state of.

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

  • [out] rsp: 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.