115 lines
3.3 KiB
C
115 lines
3.3 KiB
C
/*!
|
|
* \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;
|
|
}
|