1 /* 2 * Copyright (c) 2023 Nordic Semiconductor ASA 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef H_OS_MGMT_CLIENT_ 8 #define H_OS_MGMT_CLIENT_ 9 10 #include <inttypes.h> 11 #include <zephyr/mgmt/mcumgr/smp/smp_client.h> 12 13 /** 14 * @brief MCUmgr OS management client API 15 * @defgroup mcumgr_os_mgmt_client MCUmgr os_mgmt_client API 16 * @ingroup mcumgr 17 * @{ 18 */ 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 /** 25 * @brief OS mgmt client object 26 */ 27 struct os_mgmt_client { 28 /** SMP client object */ 29 struct smp_client_object *smp_client; 30 /** Command status */ 31 int status; 32 }; 33 34 /** 35 * @brief Initialize OS management client. 36 * 37 * @param client OS mgmt client object 38 * @param smp_client SMP client object 39 * 40 */ 41 void os_mgmt_client_init(struct os_mgmt_client *client, struct smp_client_object *smp_client); 42 43 /** 44 * @brief Send SMP message for Echo command. 45 * 46 * @param client OS mgmt client object 47 * @param echo_string Echo string 48 * @param max_len Max length of @p echo_string 49 * 50 * @return 0 on success. 51 * @return @ref mcumgr_err_t code on failure. 52 */ 53 int os_mgmt_client_echo(struct os_mgmt_client *client, const char *echo_string, size_t max_len); 54 55 /** 56 * @brief Send SMP Reset command. 57 * 58 * @param client OS mgmt client object 59 * 60 * @return 0 on success. 61 * @return @ref mcumgr_err_t code on failure. 62 */ 63 int os_mgmt_client_reset(struct os_mgmt_client *client); 64 65 /** 66 * @} 67 */ 68 69 #ifdef __cplusplus 70 } 71 #endif 72 73 #endif /* H_OS_MGMT_CLIENT_ */ 74