ublox: add wait time before checking PIN status after unlock
Submitted by Aleksander Morgado
Assigned to ModemManager bug user
Link to original bug (#100980)
Description
We're sending the PIN correctly, but the modem is still replying that SIM-PIN is needed if we query it right away after sending the PIN:
<debug>
[1493975621.397922] [../../git/src/mm-port-serial-at.c:459]
debug_log(): (ttyACM0): --> 'AT+CPIN="8770"<CR>
'
<debug>
[1493975621.484268] [../../git/src/mm-port-serial-at.c:459]
debug_log(): (ttyACM0): <-- '<CR>``<LF>
OK<CR>``<LF>
'
<debug>
[1493975621.485273] [../../git/src/mm-broadband-modem.c:1339]
modem_load_unlock_required(): checking if unlock required...
<debug>
[1493975621.485618] [../../git/src/mm-port-serial.c:1250]
mm_port_serial_open(): (ttyACM0) device open count is 2 (open)
<debug>
[1493975621.486500] [../../git/src/mm-port-serial.c:1307]
_close_internal(): (ttyACM0) device open count is 1 (close)
<debug>
[1493975621.486979] [../../git/src/mm-port-serial-at.c:459]
debug_log(): (ttyACM0): --> 'AT+CPIN?<CR>
'
<debug>
[1493975621.513303] [../../git/src/mm-port-serial-at.c:459]
debug_log(): (ttyACM0): <-- '<CR>``<LF>
+CPIN: SIM PIN<CR>``<LF>
'
<debug>
[1493975621.515441] [../../git/src/mm-port-serial-at.c:459]
debug_log(): (ttyACM0): <-- '<CR>``<LF>
OK<CR>``<LF>
'
<debug>
[1493975621.517437] [../../git/src/mm-port-serial.c:1307]
_close_internal(): (ttyACM0) device open count is 0 (close)
<debug>
[1493975621.517703] [../../git/src/mm-port-serial.c:1323]
_close_internal(): (ttyACM0) closing serial port...
<debug>
[1493975621.523061] [../../git/src/mm-port-serial.c:1371]
_close_internal(): (ttyACM0) serial port closed
This means we would need to introduce an arbitrary timeout after sending SIM-PIN before we re-check whether it is required or not.
The best way to do this is actually by subclassing the send_pin() and send_puk() methods in the MMBaseSim object, and introducing the wait time after having sent the SIM-PIN and before returning from the async methods saying that the operation is finished.
Version: git master