[Bugfix][T108][bug-view-2106] Add AT CMD *DIAGSWITCH=diag_media,saveflag;diag_media type{USB,SD,TCP,FS}save flag{0,1} to fix RF test error.
Only Configure: No
Affected branch: GSW_V1453
Affected module: log
Self-test: yes
Doc Update: no
Change-Id: I6fd4d521a7d0d19ee89bf16a2586366fd557b4d7
diff --git a/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c b/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c
index 28f02a0..7650364 100755
--- a/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c
+++ b/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c
@@ -822,6 +822,8 @@
utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
static utlAtParameter_T plusAPLOG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starDIAGSWITCH_params[] = { utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
static utlAtParameter_T plusRDUP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
// support AT+VPDUS
@@ -2951,7 +2953,9 @@
utlDEFINE_EXTENDED_AT_COMMAND("+VHDL", NULL, "+VHDL: (Show Handle)", vHDL, vHDL),
utlDEFINE_EXTENDED_AT_COMMAND("+VECHO", plusVECHO_params, "+VECHO: ", vECHO, vECHO),
utlDEFINE_EXTENDED_AT_COMMAND("+APLOG", plusAPLOG_params, "+APLOG: (0-255)", apLog, apLog),
-
+
+ utlDEFINE_EXTENDED_AT_COMMAND("*DIAGSWITCH", starDIAGSWITCH_params, "*DIAGSWITCH: <diag_media>[,0-1]", diagMediaSwitch, diagMediaSwitch),
+
utlDEFINE_EXTENDED_AT_COMMAND("+RDUP", plusRDUP_params, "+RDUP: (0-1)", ciRdup, ciRdup),
// debug atcommand for +cgsend *tgsink.
diff --git a/marvell/lte-telephony/apps/atcmd_server_ss/src/teldbg.c b/marvell/lte-telephony/apps/atcmd_server_ss/src/teldbg.c
index 631470c..cf35bcb 100755
--- a/marvell/lte-telephony/apps/atcmd_server_ss/src/teldbg.c
+++ b/marvell/lte-telephony/apps/atcmd_server_ss/src/teldbg.c
@@ -1196,6 +1196,93 @@
return(rc);
}
+/*******************************************************************
+* FUNCTION: diagMediaSwitch
+*
+* DESCRIPTION: Used to control the diag media
+*
+* PARAMETERS:
+*
+* RETURNS:
+*
+*******************************************************************/
+utlReturnCode_T diagMediaSwitch( const utlAtParameterOp_T op,
+ const char *command_name_p,
+ const utlAtParameterValue_P2c parameter_values_p,
+ const size_t num_parameters,
+ const char *info_text_p,
+ unsigned int *xid_p,
+ void *arg_p)
+{
+ UNUSEDPARAM(command_name_p)
+ UNUSEDPARAM(parameter_values_p)
+ UNUSEDPARAM(num_parameters)
+ UNUSEDPARAM(info_text_p)
+
+ TelAtParserID sAtpIndex;
+ int save = 0, err = 0;
+ CHAR diag_media[8] = {0};
+ INT16 strLen = 0;
+ CHAR returnStr[32] = {0};
+ CHAR cmdStr[32] = {0};
+ sAtpIndex = *(TelAtParserID *)arg_p;
+ *xid_p = MAKE_AT_HANDLE(sAtpIndex);
+ CiReturnCode ret = CIRC_FAIL;
+ RETURNCODE_T rc = INITIAL_RETURN_CODE;
+
+ memset(diag_media, '\0', sizeof(diag_media));
+
+ switch ( op )
+ {
+ case TEL_EXT_SET_CMD: /* AT*DIAGSWITCH= */
+ {
+
+ if( getExtString( parameter_values_p, 0, (CHAR *)diag_media, 8, &strLen, NULL ) == TRUE )
+ {
+ if ( getExtValue( parameter_values_p, 1, &save, 0, 1, 0) == TRUE )
+ {
+ ERRMSG(diagMediaSwitch001, "%s: diag_media=%s, save=%u\n", __FUNCTION__, diag_media, save);
+ if (strLen > 0)
+ {
+ if (save > 0)
+ {
+ memset(returnStr, 0x00, sizeof(returnStr));
+ memset(cmdStr, 0x00, sizeof(cmdStr));
+ snprintf(cmdStr, sizeof(cmdStr), "/bin/diagcmd save %s", diag_media);
+ err = executeShellCMD(cmdStr, returnStr);
+ ERRMSG(diagMediaSwitch002, "%s: err=%d, returnStr=%s\n", __FUNCTION__, err, returnStr);
+ }
+
+ memset(returnStr, 0x00, sizeof(returnStr));
+ memset(cmdStr, 0x00, sizeof(cmdStr));
+ snprintf(cmdStr, sizeof(cmdStr), "/bin/diagcmd switch %s", diag_media);
+ err = executeShellCMD(cmdStr, returnStr);
+ ERRMSG(diagMediaSwitch003, "%s: err=%d, returnStr=%s\n", __FUNCTION__, err, returnStr);
+ }
+
+ ret = ATRESP(*xid_p, ATCI_RESULT_CODE_OK, 0, NULL);
+ }
+ }
+ else
+ {
+ ret = ATRESP( *xid_p, ATCI_RESULT_CODE_CME_ERROR, CME_INVALID_PARAM, NULL );
+ }
+ break;
+ }
+
+ case TEL_EXT_GET_CMD: /* AT*DIAGSWITCH? */
+ default:
+ {
+ ret = ATRESP( *xid_p, ATCI_RESULT_CODE_CME_ERROR, CME_OPERATION_NOT_SUPPORTED, NULL );
+ break;
+ }
+ }
+
+ /* handle the return value */
+ rc = HANDLE_RETURN_VALUE(ret);
+
+ return(rc);
+}
/*******************************************************************
* FUNCTION: ciRdup