Battery Service Server v1.1 API

src/ble/gatt-service/battery_service_v1_server.h

/**
 * @brief Init Battery Service Server with ATT DB
 */
void battery_service_v1_server_init(void);

/**
 * @brief Register Battery Service
 * @param service
 * @param connections array of battery_service_v1_server_connection_t for storage
 * @param connection_max_num
 * @param out_service_id
 */
void battery_service_v1_server_register(battery_service_v1_t * service, battery_service_v1_server_connection_t * connections, uint8_t connection_max_num,  uint16_t * out_service_id);

/**
 * @brief Deregister Battery Service Server
 * @param service
 */
void battery_service_v1_server_deregister(battery_service_v1_t * service);

/**
 * @brief Set callback for broadcast updates.
 * @param callback
 */
void battery_service_v1_server_set_packet_handler(btstack_packet_handler_t callback);

/**
 * @brief Update battery level
 * @note Triggers notification if subscribed
 * @param service
 * @param battery_level in range 0-100
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_battery_level(battery_service_v1_t * service,uint8_t battery_level);

/**
 * @brief Update battery level status
 * @note Triggers notification or indication if subscribed
 * @param service
 * @param battery_level_status in range 0-100
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_battery_level_status(battery_service_v1_t * service, const battery_level_status_t * battery_level_status);

/**
 * @brief Update battery estimated service date as days elapsed since the Epoch (Jan 1, 1970)
 * @note Triggers notification or indication if subscribed
 * @param service
 * @param estimated_service_date_days 
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_estimated_service_date_days(battery_service_v1_t * service, uint32_t estimated_service_date_days);

/**
 * @brief Update battery critcal status flags
 * @note Triggers indication if subscribed
 * @param service
 * @param critcal_status_flags
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_critcal_status_flags(battery_service_v1_t * service, uint8_t critcal_status_flags);

/**
 * @brief Update battery energy status
 * @note Triggers notification or indication if subscribed
 * @param service
 * @param energy_status
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_energy_status(battery_service_v1_t * service, const battery_energy_status_t * energy_status);

/**
 * @brief Update battery time status
 * @note Triggers notification or indication if subscribed
 * @param service
 * @param time_status
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_time_status(battery_service_v1_t * service, const battery_time_status_t * time_status);

/**
 * @brief Update battery health status
 * @note Triggers notification or indication if subscribed
 * @param service
 * @param health_status
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_health_status(battery_service_v1_t * service, const battery_health_status_t * health_status);

/**
 * @brief Update battery health information
 * @note Triggers indication if subscribed
 * @param service
 * @param health_information
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_health_information(battery_service_v1_t * service, const battery_health_information_t * health_information);

/**
 * @brief Update battery information
 * @note Triggers indication if subscribed
 * @param service
 * @param information
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_information(battery_service_v1_t * service, const battery_information_t * information);

/**
 * @brief Update manufacturer name 
 * @note Triggers indication if subscribed
 * @param service
 * @param manufacturer_name
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_manufacturer_name(battery_service_v1_t * service, const char * manufacturer_name);

/**
 * @brief Update model_number 
 * @note Triggers indication if subscribed
 * @param service
 * @param model number
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_model_number(battery_service_v1_t * service, const char * model_number);

/**
 * @brief Update serial_number 
 * @note Triggers indication if subscribed
 * @param service
 * @param serial number
 * @return ERROR_CODE_SUCCESS if value is valid, otherwise ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE
 */
uint8_t battery_service_v1_server_set_serial_number(battery_service_v1_t * service, const char * serial_number);

/**
 * @brief Get Advertisement Data for all active Characteristic Broadcasts
 * @param adv_interval
 * @param adv_buffer
 * @param adv_size
 * @return
 */
uint16_t battery_service_v1_server_get_broadcast_advertisement(uint16_t adv_interval, uint8_t * adv_buffer, uint16_t adv_size);

/**
 * @brief Get Advertisement Data for single active Characteristic Broadcast
 * @param adv_interval
 * @param adv_buffer
 * @param adv_size
 * @return
 */
uint16_t battery_service_v1_server_get_broadcast_advertisement_single(battery_service_v1_t * service, uint16_t adv_interval, uint8_t * adv_buffer, uint16_t adv_size);

void battery_service_v1_server_deinit(void);