cbsatplugin/atmisccmdplugin/src/atcommandparser.cpp
changeset 32 19bd632b5100
parent 26 b78e66e88238
child 45 b0aebde9b1fb
child 52 4545c04e61e1
equal deleted inserted replaced
31:a0ea99b6fa53 32:19bd632b5100
    17 
    17 
    18 #include "atcommandparser.h"
    18 #include "atcommandparser.h"
    19 #include <hash.h>
    19 #include <hash.h>
    20 
    20 
    21 #include "debug.h"
    21 #include "debug.h"
    22 
    22 #include "atmisccmdpluginconsts.h"
    23 
       
    24 // Max buffer length for an MD5 digest
       
    25 const TInt KSCPMaxHashLength( 32 );
       
    26 
       
    27 
    23 
    28 TAtCommandParser::TAtCommandParser()
    24 TAtCommandParser::TAtCommandParser()
    29     : iCmdType(EUnknown), iCmdHandlerType(ECmdHandlerTypeUndefined)  
    25     : iCmdType(EUnknown), iCmdHandlerType(ECmdHandlerTypeUndefined)  
    30     {
    26     {
       
    27     TRACE_FUNC_ENTRY
       
    28     TRACE_FUNC_EXIT
    31     }
    29     }
    32 
    30 
    33 TAtCommandParser::TAtCommandParser(const TDesC8& aCmd)
    31 TAtCommandParser::TAtCommandParser(const TDesC8& aCmd)
    34     : iCmdType(EUnknown), iCmdHandlerType(ECmdHandlerTypeUndefined)  
    32     : iCmdType(EUnknown), iCmdHandlerType(ECmdHandlerTypeUndefined)  
    35     {
    33     {
       
    34     TRACE_FUNC_ENTRY
    36     ParseAtCommand(aCmd);
    35     ParseAtCommand(aCmd);
    37     }
    36     TRACE_FUNC_EXIT
    38 
    37     }
    39 
    38 
    40 void TAtCommandParser::ParseAtCommand(const TDesC8& aCmd)
    39 void TAtCommandParser::ParseAtCommand(const TDesC8& aCmd)
    41     {
    40     {
    42     TRACE_FUNC_ENTRY
    41     TRACE_FUNC_ENTRY
    43     iCmd.Assign(aCmd);
    42     iCmd.Assign(aCmd);
    57     _LIT8(KAtClck, "AT+CLCK");
    56     _LIT8(KAtClck, "AT+CLCK");
    58     _LIT8(KAtCpwd, "AT+CPWD");
    57     _LIT8(KAtCpwd, "AT+CPWD");
    59     _LIT8(KAtCpin, "AT+CPIN");
    58     _LIT8(KAtCpin, "AT+CPIN");
    60     _LIT8(KAtCusd, "AT+CUSD");
    59     _LIT8(KAtCusd, "AT+CUSD");
    61     _LIT8(KAtCnum, "AT+CNUM");
    60     _LIT8(KAtCnum, "AT+CNUM");
       
    61     _LIT8(KAtCmee, "AT+CMEE");
    62     
    62     
    63     Trace(KDebugPrintS, "token: ", &token);
    63     Trace(KDebugPrintS, "token: ", &token);
    64     // Determine the AT command type
    64     // Determine the AT command type
    65     if(!token.Compare(KAtCfun))
    65     if(!token.CompareF(KAtCfun))
    66         {
    66         {
    67         iCmdType = ECmdAtCfun;
    67         iCmdType = ECmdAtCfun;
    68         }
    68         }
    69     else if(!token.Compare(KAtCbc))
    69     else if(!token.CompareF(KAtCbc))
    70         {
    70         {
    71         iCmdType = ECmdAtCbc;
    71         iCmdType = ECmdAtCbc;
    72         }
    72         }
    73     else if(!token.Compare(KAtClck))
    73     else if(!token.CompareF(KAtClck))
    74         {
    74         {
    75         iCmdType = ECmdAtClck;
    75         iCmdType = ECmdAtClck;
    76         }
    76         }
    77     else if(!token.Compare(KAtCpwd))
    77     else if(!token.CompareF(KAtCpwd))
    78         {
    78         {
    79         iCmdType = ECmdAtCpwd;
    79         iCmdType = ECmdAtCpwd;
    80         }
    80         }
    81     else if(!token.Compare(KAtCpin))
    81     else if(!token.CompareF(KAtCpin))
    82         {
    82         {
    83         iCmdType = ECmdAtCpin;
    83         iCmdType = ECmdAtCpin;
    84         }
    84         }
    85     else if(!token.Compare(KAtCusd))
    85     else if(!token.CompareF(KAtCusd))
    86         {
    86         {
    87         iCmdType = ECmdAtCusd;
    87         iCmdType = ECmdAtCusd;
    88         }
    88         }
    89     else if(!token.Compare(KAtCnum))
    89     else if(!token.CompareF(KAtCnum))
    90         {
    90         {
    91         iCmdType = ECmdAtCnum;
    91         iCmdType = ECmdAtCnum;
       
    92         }
       
    93     else if(!token.Compare(KAtCmee))
       
    94         {
       
    95         iCmdType = ECmdAtCmee;
    92         }
    96         }
    93     else
    97     else
    94         {
    98         {
    95         iCmdType = EUnknown;
    99         iCmdType = EUnknown;
    96         TRACE_FUNC_EXIT
   100         TRACE_FUNC_EXIT
   126     TRACE_FUNC_EXIT
   130     TRACE_FUNC_EXIT
   127     }
   131     }
   128 
   132 
   129 TAtCommandParser::TCommandType TAtCommandParser::Command() const
   133 TAtCommandParser::TCommandType TAtCommandParser::Command() const
   130     {
   134     {
       
   135     TRACE_FUNC_ENTRY
       
   136     TRACE_FUNC_EXIT
   131     return iCmdType;
   137     return iCmdType;
   132     }
   138     }
   133 
   139 
   134 TAtCommandParser::TCommandHandlerType TAtCommandParser::CommandHandlerType() const
   140 TAtCommandParser::TCommandHandlerType TAtCommandParser::CommandHandlerType() const
   135     {
   141     {
       
   142     TRACE_FUNC_ENTRY
       
   143     TRACE_FUNC_EXIT
   136     return iCmdHandlerType;
   144     return iCmdHandlerType;
   137     }
   145     }
   138 
   146 
   139 TPtrC8 TAtCommandParser::NextParam()
   147 TPtrC8 TAtCommandParser::NextParam()
   140     {
   148     {
   164         }
   172         }
   165     TRACE_FUNC_EXIT
   173     TRACE_FUNC_EXIT
   166     return retVal;
   174     return retVal;
   167     }
   175     }
   168 
   176 
   169 TPtrC8 TAtCommandParser::NextTextParam(TInt& aError)
   177 TInt TAtCommandParser::NextTextParam(TPtrC8& aParam)
   170     {
   178     {
       
   179     TRACE_FUNC_ENTRY
       
   180     TInt ret = KErrNone;
   171     TPtrC8 param = NextParam();
   181     TPtrC8 param = NextParam();
   172     
   182     
   173     if (param.Compare(KNullDesC8) == 0)
   183     if (param.Length() == 0)
   174         {
   184         {
   175         aError = KErrNotFound;
   185         aParam.Set(NULL,0);
   176         return param; 
   186         ret = KErrNotFound;
   177         }
   187         }
   178     
   188     else if(param.Length() < 2 || param[0] != '"'
   179     if(param.Length()<2 
       
   180             || param[0] != '"'
       
   181             || param[param.Length()-1] != '"')
   189             || param[param.Length()-1] != '"')
   182         {
   190         {
   183         aError = KErrArgument;
   191         aParam.Set(NULL,0);
   184         return param.Left(0);
   192         ret = KErrArgument;
   185         }
   193         }
   186     aError = KErrNone;
   194     else
   187     return param.Mid(1, param.Length() - 2);
   195         {
       
   196         aParam.Set(param.Mid(1, param.Length() - 2));
       
   197         }
       
   198     TRACE_FUNC_EXIT
       
   199     return ret;
   188     }
   200     }
   189 
   201 
   190 TInt TAtCommandParser::NextIntParam(TInt& aValue)
   202 TInt TAtCommandParser::NextIntParam(TInt& aValue)
   191     {
   203     {
   192     TRACE_FUNC_ENTRY
   204     TRACE_FUNC_ENTRY
   193     TInt retVal =KErrNone;
   205     TInt retVal =KErrNone;
   194     TPtrC8 param = NextParam();
   206     TPtrC8 param = NextParam();
   195     if (param.Compare(KNullDesC8) == 0)
   207     if (param.Length() == 0)
   196         {
   208         {
   197         retVal = KErrNotFound;
   209         retVal = KErrNotFound;
   198         }
   210         }
   199     else
   211     else
   200         {
   212         {