Skip to content

Commit 5610df2

Browse files
authored
Merge pull request #26 from maidnl/opta_cellular_cloud_dev
Avoid to unlock the Sim if already unlocked
2 parents 1a0f2b9 + 4d615ac commit 5610df2

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

Diff for: src/ArduinoCellular.cpp

+15-7
Original file line numberDiff line numberDiff line change
@@ -205,24 +205,32 @@ SimStatus ArduinoCellular::getSimStatus(){
205205
this->debugStream->println("SIM Status: " + String(simStatus));
206206
}
207207

208-
if (modem.getSimStatus() == 0) {
208+
if (simStatus == 0) {
209209
return SimStatus::SIM_ERROR;
210-
} else if (modem.getSimStatus() == 1) {
210+
} else if (simStatus == 1) {
211211
return SimStatus::SIM_READY;
212-
} else if (modem.getSimStatus() == 2) {
212+
} else if (simStatus == 2) {
213213
return SimStatus::SIM_LOCKED;
214-
} else if (modem.getSimStatus() == 3) {
214+
} else if (simStatus == 3) {
215215
return SimStatus::SIM_ANTITHEFT_LOCKED;
216216
} else {
217217
return SimStatus::SIM_ERROR;
218218
}
219219
}
220220

221221
bool ArduinoCellular::unlockSIM(String pin){
222-
if(this->debugStream != nullptr){
223-
this->debugStream->println("Unlocking SIM...");
222+
int simStatus = modem.getSimStatus();
223+
if(simStatus == SIM_LOCKED) {
224+
if(this->debugStream != nullptr){
225+
this->debugStream->println("Unlocking SIM...");
226+
}
227+
return modem.simUnlock(pin.c_str());
224228
}
225-
return modem.simUnlock(pin.c_str());
229+
else if(simStatus == SIM_ERROR || simStatus == SIM_ANTITHEFT_LOCKED) {
230+
return false;
231+
}
232+
/* SIM is ready */
233+
return true;
226234
}
227235

228236
bool ArduinoCellular::awaitNetworkRegistration(){

0 commit comments

Comments
 (0)