| # set pin code from evnironment "$PINCODE" |
| opengt |
| set com 115200n81 |
| set senddelay 0.05 |
| waitquiet 3 0.5 |
| flash 0.1 |
| |
| let c=0 |
| :start |
| send "AT+CFUN=1^m" |
| send "AT+CPIN?^m" |
| waitfor 15 "SIM PUK","SIM PIN","READY","ERROR","ERR" |
| if % = -1 goto timeout |
| if % = 0 goto ready |
| if % = 1 goto setpin |
| if % = 2 goto ready |
| if % = 3 goto checkrepeat |
| if % = 4 goto checkrepeat |
| |
| :checkrepeat |
| inc c |
| if c>3 goto pinerror |
| waitquiet 12 0.5 |
| goto start |
| |
| :timeout |
| print "timeout checking for PIN." |
| exit 1 |
| |
| :ready |
| print "SIM ready\n" |
| goto continue |
| exit 0 |
| |
| :setpin |
| # check if output was "SIM PIN2", that's ok. |
| waitfor 1 "2" |
| if % = 0 goto ready |
| |
| print "Trying to set PIN\n" |
| send "AT+CPIN=\"" |
| send $env("PINCODE") |
| send "\"^m" |
| |
| waitfor 20 "OK","ERR" |
| if % = -1 goto pinerror |
| if % = 0 goto continue |
| if % = 1 goto pinerror |
| |
| :pinerror |
| print "Error setting PIN, check card manually\n" |
| exit 1 |
| |
| :continue |
| print "PIN set successfully\n" |
| exit 0 |