Hi Mingli,

On 30/11/12 16:40, Ming Li Wu wrote:
Hello,

I am working on Telit HE910 modem.

I am using ofono 1.11, and the commit is
6e3a6156b34c52bde253b097976d0ba9dd575879.

For the Telit modem, "AT+CFUN=4" is used to enable
the modem. According to "Telit He910 AT Commands
Reference Guide", "issuing AT+CFUN=4[,0] actually
causes the module to perform either a network
deregistration and a SIM deactivation."

After this command is sent out, an unsolicited indication
"\r\n#QSS: 0\r\n" is received by of ofono. This means that
the sim card cannot be detected by the modem. It turns out
that Connman will not put the modem on line.

if "AT+CFUN=5" was used, it worked fine.

My questions are:
1. Why is "AT+CFUN=4" used to enable the modem, instead of "AT+CFUN=1" or "AT+CFUN=5"? 2. If "AT+CFUN=4" is reasonable, are there any solutions to solve this problem?

Thanks!

Mingli


The following is the log  when "AT+CFUN=4" was used.
ofonod[358]: plugins/udevng.c:setup_telit() modem=/dev/ttyACM0 aux=/dev/ttyACM3 gps=(null) diag=/dev/ttyACM1 ofonod[358]: src/modem.c:set_modem_property() modem 0x1152008 property Modem ofonod[358]: src/modem.c:set_modem_property() modem 0x1152008 property Aux ofonod[358]: src/modem.c:set_modem_property() modem 0x1152008 property Diag
ofonod[358]: src/modem.c:ofono_modem_register() 0x1152008
ofonod[358]: plugins/telit.c:telit_probe() 0x1152008
ofonod[358]: src/modem.c:emit_modem_added() 0x1152008
ofonod[358]: src/modem.c:call_modemwatches() 0x1152008 added:1
ofonod[358]: plugins/hfp_ag.c:modem_watch() modem: 0x1152008, added: 1
ofonod[358]: plugins/dun_gw.c:modem_watch() modem: 0x1152008, added: 1
ofonod[358]: plugins/smart-messaging.c:modem_watch() modem: 0x1152008, added: 1 ofonod[358]: plugins/push-notification.c:modem_watch() modem: 0x1152008, added: 1
ofonod[358]: plugins/telit.c:telit_enable() 0x1152008
ofonod[358]: src/modem.c:get_modem_property() modem 0x1152008 property Modem
ofonod[358]: plugins/telit.c:open_device() Modem /dev/ttyACM0
ofonod[358]: src/modem.c:get_modem_property() modem 0x1152008 property Aux
ofonod[358]: plugins/telit.c:open_device() Aux /dev/ttyACM3
ofonod[358]: Aux: > ATE0 +CMEE=1\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: Aux: > AT#QSS=0\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: Aux: > AT+CFUN=4\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: plugins/telit.c:cfun_enable_cb() 0x1152008
ofonod[358]: src/modem.c:modem_change_state() old state: 0, new state: 1
ofonod[358]: plugins/telit.c:telit_pre_sim() 0x1152008
ofonod[358]: Aux: > AT&C0\r
ofonod[358]: src/sim.c:ofono_sim_add_state_watch() 0x1153d30
ofonod[358]: src/sim.c:ofono_sim_add_state_watch() 0x1153d30
ofonod[358]: src/sim.c:ofono_sim_add_state_watch() 0x1153d30
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: Aux: > AT+GCAP\r
ofonod[358]: Aux: < \r\n+GCAP: +CGSM,+DS,+FCLASS,+MS,+ES\r\n\r\nOK\r\n
ofonod[358]: Aux: > AT+CRC=1\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: Aux: > AT+CLIP=1\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: Aux: > AT+CDIP=1\r
ofonod[358]: Aux: < \r\nERROR\r\n
ofonod[358]: Aux: > AT+CNAP=1\r
ofonod[358]: Aux: < \r\nERROR\r\n
ofonod[358]: Aux: > AT+COLP=1\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: Aux: > AT+CSSN=1,1\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: Aux: > AT+VTD?\r
ofonod[358]: Aux: < \r\n0\r\n\r\nOK\r\n
ofonod[358]: Aux: > AT+CCWA=1\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: drivers/atmodem/voicecall.c:at_voicecall_initialized() voicecall_init: registering to notifications
ofonod[358]: src/sim.c:ofono_sim_add_state_watch() 0x1153d30
ofonod[358]: Aux: > AT#AUTOATT=0\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: Aux: > AT#QSS=2\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: Aux: > AT+CGMI\r
ofonod[358]: Aux: < \r\nTelit\r\n\r\nOK\r\n
ofonod[358]: Aux: > AT+CLCC\r
ofonod[358]: Aux: < \r\nOK\r\n
ofonod[358]: Aux: > AT+CGMM\r
ofonod[358]: Aux: < \r\nHE910\r\n\r\nOK\r\n
ofonod[358]: Aux: > AT+CGMR\r
ofonod[358]: Aux: < \r\n12.00.003\r\n\r\nOK\r\n
ofonod[358]: Aux: > AT+CGSN\r
ofonod[358]: Aux: < \r\n357164040533674\r\n\r\nOK\r\n
ofonod[358]: Aux: < \r\n#QSS: 0\r\n
ofonod[358]: plugins/telit.c:telit_qss_notify() 0x1152008
ofonod[358]: plugins/telit.c:switch_sim_state_status() 0x1152008, SIM status: 0



AT+CFUN=1 is used to set the modem online, i.e. enable RX, TX it also enables the SIM. AT+CFUN = 4 is used to set the modem in flight mode. I cannot see that the modem is set online in your debug output, i.e. a D-Bus call to org.ofono.Modem.SetProperty('Online', true) is made. Without this call you will never get an URC of #QSS with a value greater than 0. SIM detection is enabled after AT+CFUN=1. I never worked with ConnMan so I don't know what causes ConnMan to set the modem online.

Try to issue
dbus-send --system --type=method_call --print-reply --dest=org.ofono /telit_0 org.ofono.Modem.SetProperty string:'Online' variant:boolean:'true'
and see what happens (you may need to change /telit_0 to what
dbus-send --system --type=method_call --print-reply --dest=org.ofono / org.ofono.Manager.GetModems
returns)


If this works for you, you will run into the next problem.
In /drivers/atmodem/sim.c, at_qss_notify()
case 2:    /* PIN unlocked */
has to be changed to
case 3:    /* SIM INSERTED and READY */

otherwise AT+CMER= ... for example will return +CME ERROR: 14  (SIM BUSY).

After a PIN has been entered, we have to wait until the modem reports that the SIM is ready. The above change solves the problem when a PIN is required but we have to do something similar when no PIN is required, otherwise we will run into the same problem.




--
Scanned by MailScanner.

_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to