/*! * \file shell_handler.c * * \brief Target shell handler implementation * * \copyright Revised BSD License, see section \ref LICENSE. * * \code * * _ __ _ ________ _ * | |/ /(_)___ / ____/ /_ (_)___ * | // / __ \/ / / __ \/ / __ \ * / |/ / / / / /___/ / / / / /_/ / * /_/|_/_/_/ /_/\____/_/ /_/_/ .___/ * /_/ * (C) 2022-2025 XinChip * * \endcode * * \author ( XinChip ) Alex-J * * \author ( XinChip ) */ /*----------------------------------------------------------------------------------- INCLUDE HEADE FILES ------------------------------------------------------------------------------------*/ #include "shell_handler.h" /*------------------------------------------------------------------------------------ Global Variables -------------------------------------------------------------------------------------*/ uint8_t XC_Cmd[XC_CMD_SIZE] = { 0 }; BLE_Mac_Addr_t Mac_Addr; /*------------------------------------------------------------------------------------ Functions -------------------------------------------------------------------------------------*/ /** **************************************************************************************** * @brief * * @param[in] * @param[in] * * @return[out] * **************************************************************************************** */ eXC_Cmd_State xc_test_handler(eCMD_Type opt, int srgc, char *srgv[]) { eXC_Cmd_State ret = XC_CMD_ERROR; switch(opt) { case QUERY_CMD: { ret = XC_CMD_SUCCESS; snprintf((char *)XC_Cmd, XC_CMD_SIZE, "\r\n%s\r\n", XC_OK); } break; default: break; } return ret; } /** **************************************************************************************** * @brief * * @param[in] * @param[in] * * @return[out] * **************************************************************************************** */ eXC_Cmd_State xc_ble_mac_addr_handler(eCMD_Type opt, int srgc, char *srgv[]) { eXC_Cmd_State ret = XC_CMD_ERROR; switch(opt) { case QUERY_CMD: { ret = XC_CMD_SUCCESS; snprintf((char *)XC_Cmd, XC_CMD_SIZE, "\r\n%s: %02x:%02x:%02x:%02x:%02x:%02x\r\nOK\r\n", XC_CMD_BLE_MAC, Mac_Addr.byte0, Mac_Addr.byte1, Mac_Addr.byte2, Mac_Addr.byte3, Mac_Addr.byte4, Mac_Addr.byte5); } break; case SET_CMD: { if(srgc < 1) break; Mac_Addr.byte0 = atoi(srgv[0]); Mac_Addr.byte1 = atoi(srgv[1]); Mac_Addr.byte2 = atoi(srgv[2]); Mac_Addr.byte3 = atoi(srgv[3]); Mac_Addr.byte4 = atoi(srgv[4]); Mac_Addr.byte5 = atoi(srgv[5]); ret = XC_CMD_SUCCESS; snprintf((char *)XC_Cmd, XC_CMD_SIZE, "\r\n%s: %02x:%02x:%02x:%02x:%02x:%02x\r\nOK\r\n", XC_CMD_BLE_MAC, Mac_Addr.byte0, Mac_Addr.byte1, Mac_Addr.byte2, Mac_Addr.byte3, Mac_Addr.byte4, Mac_Addr.byte5); } break; default: break; } return ret; }