blob: 6946079768653872769073c784130721d96558a3 [file] [log] [blame]
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BT_SHELL_PRIVATE_H
#define __BT_SHELL_PRIVATE_H
#include <zephyr/shell/shell.h>
/**
* @brief printf-like function which sends formatted data stream to the shell.
* (Bluetooth context specific)
*
* This function can be used from the command handler or from threads, but not
* from an interrupt context.
*
* @param[in] color Printed text color.
* @param[in] fmt Format string.
* @param[in] ... List of parameters to print.
*/
__printf_like(2, 3) void bt_shell_fprintf(enum shell_vt100_color color,
const char *fmt, ...);
/**
* @brief printf-like function which sends formatted data stream to the shell.
* (Bluetooth context specific)
*
* This function can be used from the command handler or from threads, but not
* from an interrupt context.
*
* @param[in] fmt Format string.
* @param[in] ... List of parameters to print.
*/
__printf_like(1, 2) void bt_shell_fprintf_info(const char *fmt, ...);
__printf_like(1, 2) void bt_shell_fprintf_print(const char *fmt, ...);
__printf_like(1, 2) void bt_shell_fprintf_warn(const char *fmt, ...);
__printf_like(1, 2) void bt_shell_fprintf_error(const char *fmt, ...);
/**
* @brief Print data in hexadecimal format.
* (Bluetooth context specific)
*
* @param[in] data Pointer to data.
* @param[in] len Length of data.
*/
void bt_shell_hexdump(const uint8_t *data, size_t len);
/**
* @brief Print info message to the shell.
* (Bluetooth context specific)
*
* @param[in] _ft Format string.
* @param[in] ... List of parameters to print.
*/
#define bt_shell_info(_ft, ...) \
bt_shell_fprintf_info(_ft "\n", ##__VA_ARGS__)
/**
* @brief Print normal message to the shell.
* (Bluetooth context specific)
*
* @param[in] _ft Format string.
* @param[in] ... List of parameters to print.
*/
#define bt_shell_print(_ft, ...) \
bt_shell_fprintf_print(_ft "\n", ##__VA_ARGS__)
/**
* @brief Print warning message to the shell.
* (Bluetooth context specific)
*
* @param[in] _ft Format string.
* @param[in] ... List of parameters to print.
*/
#define bt_shell_warn(_ft, ...) \
bt_shell_fprintf_warn(_ft "\n", ##__VA_ARGS__)
/**
* @brief Print error message to the shell.
* (Bluetooth context specific)
*
* @param[in] _ft Format string.
* @param[in] ... List of parameters to print.
*/
#define bt_shell_error(_ft, ...) \
bt_shell_fprintf_error(_ft "\n", ##__VA_ARGS__)
#endif /* __BT_SHELL_PRIVATE_H */