diff --git a/Inc/AtGsmTelitLe910_DefinePdpContext.h b/Inc/AtGsmTelitLe910_DefinePdpContext.h index 523f852..a82c74f 100755 --- a/Inc/AtGsmTelitLe910_DefinePdpContext.h +++ b/Inc/AtGsmTelitLe910_DefinePdpContext.h @@ -6,6 +6,7 @@ #define ATGSMSIMCOMA7600_DEFINEPDPCONTEXT_H #include "AtCmdCommon.h" +#include "BaseTypes/Strings.h" typedef enum { AtGsmTelitLe910_PdpType_IP, @@ -26,6 +27,8 @@ AtCommandResult AtGsmTelitLe910_DefinePdpContext( AtCommandResult AtGsmTelitLe910_PdpActivate(tAtCmd *env, uint8_t cid); AtCommandResult AtGsmTelitLe910_PdpDeactivate(tAtCmd *env, uint8_t cid); +AtCommandResult AtGsmTelitLe910_SimProfileSelect(tAtCmd *env, tString32 *profileData); + #define AtGsmTelitLe910_DefinePdpIpContextStaticApn(ENV, CID, APN) AtGsmTelitLe910_DefinePdpContext(ENV,CID,AtGsmSimComA7600_PdpType_IPV4V6,APN,sizeof(APN)-1) //AtCommandResult AtGsmSimComA7600_PdpActivate(tAtCmd *env, uint8_t cid); diff --git a/Src/AtGsmTelitLe910_DefinePdpContext.c b/Src/AtGsmTelitLe910_DefinePdpContext.c index c859cf3..864f0a6 100755 --- a/Src/AtGsmTelitLe910_DefinePdpContext.c +++ b/Src/AtGsmTelitLe910_DefinePdpContext.c @@ -93,6 +93,24 @@ AtCommandResult AtGsmTelitLe910_PdpDeactivate(tAtCmd *env, uint8_t cid) { return AtCmdOkErrAnswer(env, env->stdRxTimeout*10); } + + +AtCommandResult AtGsmTelitLe910_SimProfileSelect(tAtCmd *env, tString32 *profileData) { + + AtCmdPrepare(env); + AtCmdTxClear(env); + AtCmdTxAddStatic(env, "AT+CSIM="); + AtCmdTxAddDecimalIntWithLimit(env, profileData->length, 2); + AtCmdTxAddStatic(env, ", "); + AtCmdTxAddStatic(env, "\""); + AtCmdTxAdd(env, profileData->data, profileData->length); + AtCmdTxAddStatic(env, "\""); + AtCmdTxAddStatic(env, "\r\n"); + AtCmdTxSendLn(env); + + return AtCmdOkErrAnswer(env, 2000 * env->stdRxTimeout); +} + /* AtCommandResult AtGsmSimComA7600_DefinePdpContext( tAtCmd *env, uint8_t cid, eAtGsmSimComA7600_PdpType pdpType, const char *apn, uint8_t apnLen