⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atpte.c

📁 free sources for gsm
💻 C
📖 第 1 页 / 共 5 页
字号:

   GSMmemset(&MmiCal.flag_Cal, 0x00, sizeof(MmiCal.flag_Cal));
   buff = paramArray[1].Value;
   MmiCal.flag_Cal = buff;
   NVM_Write(E2P_CHECK_CAL,&MmiCal.flag_Cal);

   //ATSendReply( "SetHWRev:DONE" );
   //ATSendReply( "Setflag_Cal:DONE" );

   return DIDIT;
}


/*- Local Functions ---------------------------------------------------------  */
/* Command for Product Number
/* Name: HndlATrPRODUCTNUM                                                                                       
/* Type: Read
/* Using : AT+PRODUCTNUM?
/* Desc : Product Number 阑  佬绢柯促.  
/* Returns: OK or ERROR
/* Note :
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATrPRODUCTNUM(void)
{
   INT8 *str0 = ( INT8 * ) GSMMalloc( 125 );

   NVM_Read( E2P_PRODUCTNUM, str0 );

   str0[8]='\0';

   ATSendReply( str0 );
   GSMFree( str0 );

   // ATSendReply( "GetProductNum:DONE" );

   return DIDIT;
}

/*- Local Functions ---------------------------------------------------------  */
/* Command for Product Number
/* Name: HndlATsPRODUCTNUM                                                                                       
/* Type: Set
/* Using : AT+PRODUCTNUM="<value>"
/* Desc : Product Number 阑 技泼茄促.   
/* Returns: OK or ERROR
/* Note : <value> - String
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsPRODUCTNUM(INT8 *paramStrPtr)
{
   UINT8 CalBuff[8];
   UINT16 stringLen;
   NVMMmiCal_t  MmiCal;
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[1];

   ParameterStructInit(paramArray, 1);
   result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );

   if((result != DIDIT) || (paramArray[0].ParamType != ATCMD_PARAMTYPE_STRING))
      return AT_ECMDERROR;
      
   stringLen = paramArray[0].String.Len;
   if ( stringLen > 8 )
      stringLen = 8;
   GSMmemset(MmiCal.ProductNum, 0x00, 8); /* garbage value reset */
   GSMmemcpy(MmiCal.ProductNum, paramArray[0].String.Buffer, stringLen);  

   NVM_Write(E2P_PRODUCTNUM,MmiCal.ProductNum);  

   //ATSendReply( "SetProductNum:DONE" );

   return DIDIT;
}


/*- Local Functions ---------------------------------------------------------  */
/* Command for Stack Reset
/* Name: HndlATsSTACKRESET                                                                                       
/* Type: Set
/* Using : AT+STACKRESET = <value>
/* Desc : Stack 阑 reset 茄促. 
/* Returns: OK or ERROR
/* Note : <value> 狼 蔼捞 1牢 版快俊父 角青茄促.
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsSTACKRESET(INT8 *paramStrPtr)
{
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[1];

   ParameterStructInit(paramArray, 1);
   result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );

   if((result != DIDIT) || (paramArray[0].Value != 1))
      return AT_ECMDERROR;
      
   Mmi_CustReset(0x2761); 
   //ATSendReply( "Stackreset:DONE" );

   return DIDIT;
}


/*- Local Functions ---------------------------------------------------------  */
/* Command for Software Version
/* Name: HndlATsSWVERSION                                                                                           
/* Type: Set
/* Using : AT+SWVERSION = value
/* Desc : SW Version阑 Read
/* Returns: OK or ERROR
/* Note : value 狼 蔼捞 1牢 版快俊父 悼累 
/* ------------------------------------------------------------------------*/

ATCMD_RESULT HndlATsSWVERSION(INT8 * paramStrPtr)
{
   extern CHAR * mmi_getRealSWVersion(void);
   extern CHAR * mmi_getSWVersion(void);

   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[1];

   ParameterStructInit(paramArray, 1);
   result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );

   if((result != DIDIT) || (paramArray[0].Value != 1))
      return AT_ECMDERROR;
      
   /* 2004.07.02 dsw, yhchoi : E310 篮 铰牢 滚傈苞 郴何 滚傈阑 蝶肺 包府茄促. */
   /* 弊贰辑 剧魂 苞沥俊辑 IMEI and OptiTrace 橇肺弊伐捞 SW Version 阑 夸没 沁阑锭 郴何 滚傈疙阑 焊尘荐 乐档废 茄促.*/
#if defined (__DSW_SGH_E300_VODA__)
   ATSendReply( mmi_getSWVersion( ) );
#else
   ATSendReply( mmi_getRealSWVersion( ) );
#endif
   return DIDIT;
}


/*- Local Functions ---------------------------------------------------------  */
/* Command for Qos Parameter
/* Name: HndlATsQOSPARAM                                                                                           
/* Type: Set
/* Using : AT+QOSPARAM=Delay, Reliability, Peak Throughput, Mean Throughput, Precedence
/* Desc : Network QoS 瘤沥窍咯 Set
/* Returns: OK or ERROR
/* Note : 
/* ------------------------------------------------------------------------*/

ATCMD_RESULT HndlATsQOSPARAM(INT8 * paramStrPtr)
{
   UINT8 flag;
   NetParam *QosParam = ( UINT8 * ) GSMMalloc( sizeof( NetParam ) );
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[5];
   UINT8 i;

   ParameterStructInit(paramArray, 5);
   result = ParseForNOptIntAndString( paramStrPtr, 5, paramArray, &nFinal );

   if((nFinal >= 5 ) && (nFinal < 0))
      return AT_ECMDERROR;
      
   GSMmemset( QosParam, 0xff, sizeof(NetParam) );
   QosParam->SetPTEQoS = 0x00;

   for (i=0; i < 5; i++)
   {
      if(paramArray[i].ParamType != ATCMD_PARAMTYPE_NUMERIC)
        return AT_ECMDERROR;
   }
   
   /* set QoS DelayClass(class0~4) */
   if((QosParam->QoSDelayClass = paramArray[0].Value) > SNGS_DelayClass_4)
   {
      QosParam->QoSDelayClass = SNGS_DelayClass_0;
   }
   
   /* set QoS ReliabilityClass(class0~5,class77) */
   if((QosParam->QoSReliabilityClass =  paramArray[1].Value) > ReliabilityClass5 )
   {
      QosParam->QoSReliabilityClass = SNGS_PrecClass_0;
   }
   
   /* set QoS PeakThroughput(class0~9) */
   if((QosParam->QoSPeakThroughput =  paramArray[2].Value) > PkThrghptClass256kB)
   {
      QosParam->QoSPeakThroughput = PkThrghptClassS;
   }
   
   /* set QoS MeanThroughput(class0~18, class31) */
   if((QosParam->QoSMeanThroughput =  paramArray[3].Value) > SNGS_MeanTput_50MB) 
   {
       QosParam->QoSMeanThroughput = ReliabilityClassInit;
   }
   
   /* set QoS PrecedenceClass(class0~3) */
   if((QosParam->QoSPrecedenceClass =  paramArray[4].Value) > SNGS_PrecClass_3 )
   {
      QosParam->QoSPrecedenceClass = SNGS_MeanTput_INIT;
   }
      
   QosParam->SetPTEQoS = TRUE;

   NVM_Write(E2P_NWSERVERQoSPARAM(UP_SIMIndex, 0), QosParam);
   
   //ATSendReply( "SetQoSParam : DONE" );
   
   GSMFree(QosParam);

   return DIDIT;
}

/*- Local Functions ---------------------------------------------------------  */
/* Command for Qos Parameter
/* Name: HndlATrQOSPARAM                                                                                           
/* Type: Read
/* Using : AT+QOSPARAM?
/* Desc : 泅犁 Setting 等 蔼阑 Read
/* Returns: OK
/* Note : 
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATrQOSPARAM(void)
{
   UINT8 *str = ( UINT8 * ) GSMMalloc( sizeof(UINT8)*120 );
   NetParam *QosParam = ( UINT8 * ) GSMMalloc( sizeof( NetParam ) );;

   NVM_Read (E2P_NWSERVERQoSPARAM(UP_SIMIndex, 0), QosParam);
   
   GSMsprintf(str,"QoSDelayClass:%d", QosParam->QoSDelayClass); 
   ATSendReply( str );
   GSMsprintf(str,"QoSReliabilityClass:%d", QosParam->QoSReliabilityClass); 
   ATSendReply( str );
   GSMsprintf(str,"QoSPeakThroughput:%d", QosParam->QoSPeakThroughput); 
   ATSendReply( str );
   GSMsprintf(str,"QoSMeanThroughput:%d", QosParam->QoSMeanThroughput); 
   ATSendReply( str );
   GSMsprintf(str,"QoSPrecedenceClass:%d", QosParam->QoSPrecedenceClass); 
   ATSendReply( str );
      
   //ATSendReply( "GetQoSParam : DONE" );

   GSMFree(str);
   GSMFree(QosParam);

   return DIDIT;
}

/*- Local Functions ---------------------------------------------------------  */
/* Command for Greeting String
/* Name: HndlATsGREETINGSTRING                                                                                           
/* Type: Set
/* Using : AT+GREETINGSTRING=<Greeting Message String>
/* Desc : Greeting Message String阑 Set
/* Returns: OK or ERROR
/* Note : 
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsGREETINGSTRING(INT8 * paramStrPtr)
{
   INT8 *str = ( INT8 * ) GSMMalloc( 256 );
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[1];
#ifdef __SEC_UNICODE__
   WCHAR GreetingText[65];
#endif

   ParameterStructInit(paramArray, 1);
   result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );

   if (paramArray[0].ParamType != ATCMD_PARAMTYPE_STRING )
      return AT_ECMDERROR;
        
   GSMsprintf( str, "%s", paramArray[0].String.Buffer);
#ifdef __SEC_UNICODE__
   ker_memsetW(GreetingText, 0x00, 65);
   ker_UTF8toLEUCS2(GreetingText, paramArray[0].String.Buffer, paramArray[0].String.Len);
#endif

   if( GSMstrlen( str ) >= sizeof(Greet_t) )
   {
      ATSendReply( "errror:Too long string" );
      return AT_ECMDERROR;
   }
   else
#ifdef __SEC_UNICODE__
      NVM_Write(E2P_GREETING, GreetingText);
#else
      NVM_Write( E2P_GREETING, str );
#endif

   GSMFree( str );

   return DIDIT;
}

/*- Local Functions ---------------------------------------------------------  */
/* Command for Greeting String
/* Name: HndlATrGREETINGSTRING                                                                                           
/* Type: Read
/* Using : AT+GREETINGSTRING?
/* Desc : Greeting Message String阑 Read
/* Returns: OK
/* Note : 
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATrGREETINGSTRING(void)
{
   INT8 *str = ( INT8 * ) GSMMalloc( 256 );
#ifdef __SEC_UNICODE__
   WCHAR GreetingText[65];
   INT8 *buff = ( INT8 * ) GSMMalloc( 65 );
#endif

#ifdef __SEC_UNICODE__
   NVM_Read(E2P_GREETING, GreetingText);
   ker_LEUCS2toUTF8(buff, GreetingText, 65);
   ATSendReply(buff);
#else
   NVM_Read( E2P_GREETING, str );
   ATSendReply( str );
#endif

   GSMFree( str );
   
   return DIDIT;
}

/*- Local Functions ---------------------------------------------------------  */
/* Command for Ring Test
/* Name: HndlATsRINGTEST                                                                                           
/* Type: Set
/* Using : AT+RINGTEST=<Frequency>,<Volume>
/* Desc : Ring Test
/* Returns: OK or ERROR
/* Note : 
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsRINGTEST(INT8 * paramStrPtr)
{
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[2];

   ParameterStructInit(paramArray, 2);
   result = ParseForNOptIntAndString( paramStrPtr, 2, paramArray, &nFinal );

   if((result != DIDIT) || (nFinal > 2))
      return AT_ECMDERROR;

   if((paramArray[0].ParamType != ATCMD_PARAMTYPE_NUMERIC) ||\
       (paramArray[1].ParamType != ATCMD_PARAMTYPE_NUMERIC))
       return AT_ECMDERROR;

   //快急 PWM狼 林颇荐甫 沥茄促....
   UHSetRingerFrequency(paramArray[0].Value);
   //沥秦柳 林颇荐俊 措秦 捞力绰 澜狼 农扁甫 备茄促.
   UHSetRingerDutyRatio(paramArray[1].Value);
   
   //ATSendReply( "RingTest:DONE" );

   return DIDIT;
}


/*- Local Functions ---------------------------------------------------------  */
/* Command for Ring Test Stop
/* Name: HndlATsRINGTESTSTOP                                                                                           
/* Type: Set
/* Using : AT+RINGTESTSTOP=1
/* Desc : RingTest甫 辆丰 
/* Returns: OK or ERROR
/* Note : 
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsRINGTESTSTOP(INT8 * paramStrPtr)
{
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[1];

   ParameterStructInit(paramArray, 1);
   result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );
   
   if ( paramArray[0].Value != 1)
      return AT_ECMDERROR;
      
    UHDisableRinger(  );

    //ATSendReply( "RingTestStop:DONE" );

    return DIDIT;
}


/*- Local Functions ---------------------------------------------------------  */
/* Command for Cust Reset
/* Name: HndlATsCUSTRESET                                                                                           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -