SIM not ready

Guillaume Chereau charlie at openmoko.org
Fri Jul 18 05:05:56 CEST 2008


On Thu, 2008-07-17 at 19:40 +0200, Michael 'Mickey' Lauer wrote:
> Charlie,
> 
> we talked about a bug where you receive a SIM not ready when accessing
> the phonebook/messagebook. Can you reproduce that and send me the full
> log of ogsmd (with FRAMEWORK_DEBUG=1) from a failed run, please?
> 
> Did this happen in-between normal operation or right after a toggle of
> SetAntennaPower?
> 
> :M:
> 

Hi,

The problem happens when I do this sequence of operations (apparently
independently of what I do before) :

RetrievePhonebook()
# Don't wait
StoreEntry(index, "test", "0287515071")

where index is a valid index.

When I try this I get the following answer :
DBusException: org.freesmartphone.GSM.Device.Failed: DeviceFailed:
org.freesmartphone.GSM.Device.Failed: Unhandled CME ERROR: SIM busy

If I put a time.sleep(10) between the operations then it works (I can
then check that the entry is indeed correctly added)

So I guess the problem is just a matter of having a method like
WaitReady(), or maybe a Signal, or both.


The trace from ogsmd is  :

 |...|...|...|...|...|...> SimStoreEntry.__init__: ENTER (<framework.subsystems.ogsmd.objects.Device at /org/freesmartphone/GSM/Device at 0x2cdb30>, <function <lambda> at 0x442f70>, <function <lambda> at 0x442470>),{'index': dbus.Int32(9), 'number': dbus.String(u'0287515071'), 'name': dbus.String(u'test')} 
 |...|...|...|...|...|...> SimStoreEntry.__init__: LEAVE 
 |...|...|...|...|...|...|...|...> MiscChannel.enqueue: ENTER (u'+CPBS="SM";+CPBW=9,"0287515071",129,"test"', <bound method SimStoreEntry.responseFromChannel of <ogsmd.modems.abstract.mediator.SimStoreEntry object at 0x40757290>>, <bound method SimStoreEntry.errorFromChannel of <ogsmd.modems.abstract.mediator.SimStoreEntry object at 0x40757290>>),{} 
 |...|...|...|...|...|...|...|...> MiscChannel.enqueue: LEAVE 
 |...|...|...> MiscChannel._readyToSend: ENTER (13, 4),{} 
 |...|...|...|...|...> MiscChannel.readyToSend: ENTER (),{} 
(<framework.subsystems.ogsmd.modems.ti_calypso.channel.MiscChannel object at 0x335bd0>: sending 46 bytes to /dev/pts/2: u'AT+CPBS="SM";+CPBW=9,"0287515071",129,"test"\r\n')
 |...|...|...|...|...> MiscChannel.readyToSend: LEAVE 
 |...|...|...> MiscChannel._readyToSend: LEAVE 
 |...|...|...> MiscChannel._readyToRead: ENTER (13, 1),{} 
(<framework.subsystems.ogsmd.modems.ti_calypso.channel.MiscChannel object at 0x335bd0>: got 18 bytes from /dev/pts/2: '\r\n+CME ERROR: 14\r\n')
 |...|...|...|...|...> MiscChannel.readyToRead: ENTER ('\r\n+CME ERROR: 14\r\n',),{} 
 |...|...|...|...|...|...|...|...|...|...> MiscChannel._handleResponseToRequest: ENTER (['+CME ERROR: 14'],),{} 
(<framework.subsystems.ogsmd.modems.ti_calypso.channel.MiscChannel object at 0x335bd0>: COMPLETED 'AT+CPBS="SM";+CPBW=9,"0287515071",129,"test"' => ['+CME ERROR: 14'])
 |...|...|...|...|...|...|...|...|...|...|...|...|...> SimStoreEntry.responseFromChannel: ENTER (u'AT+CPBS="SM";+CPBW=9,"0287515071",129,"test"', ['+CME ERROR: 14']),{} 
 |...|...|...|...|...|...|...|...|...|...|...|...|...|...|...> SimStoreEntry._handleCmeCmsExtError: ENTER ('+CME ERROR: 14',),{} 
 |...|...|...|...|...|...|...|...|...|...|...|...|...|...|...> SimStoreEntry._handleCmeCmsExtError: LEAVE 
 |...|...|...|...|...|...|...|...|...|...|...|...|...> SimStoreEntry.responseFromChannel: LEAVE 
 |...|...|...|...|...|...|...|...|...|...|...> SimStoreEntry.__del__: ENTER (),{} 
 |...|...|...|...|...|...|...|...|...|...|...> SimStoreEntry.__del__: LEAVE 
 |...|...|...|...|...|...|...|...|...|...> MiscChannel._handleResponseToRequest: LEAVE 
 |...|...|...|...|...> MiscChannel.readyToRead: LEAVE 
 |...|...|...> MiscChannel._readyToRead: LEAVE 
 |...|...|...> MiscChannel._readyToSend: ENTER (13, 4),{} 
 |...|...|...|...|...> MiscChannel.readyToSend: ENTER (),{} 
 |...|...|...|...|...> MiscChannel.readyToSend: LEAVE 
 |...|...|...> MiscChannel._readyToSend: LEAVE 
 |...|...|...> UnsolicitedResponseChannel._readyToRead: ENTER (14, 1),{} 
(<framework.subsystems.ogsmd.modems.ti_calypso.channel.UnsolicitedResponseChannel object at 0x335af0>: got 16 bytes from /dev/pts/3: '%CSTAT: PHB, 1\r\n')
 |...|...|...|...|...> UnsolicitedResponseChannel.readyToRead: ENTER ('%CSTAT: PHB, 1\r\n',),{} 
 |...|...|...|...|...|...|...|...|...|...> UnsolicitedResponseChannel._handleUnsolicitedResponse: ENTER (['%CSTAT: PHB, 1'],),{} 
(<framework.subsystems.ogsmd.modems.ti_calypso.channel.UnsolicitedResponseChannel object at 0x335af0>: unsolicited data incoming: %CSTAT: PHB, 1)
 |...|...|...|...|...|...|...|...|...|...> UnsolicitedResponseChannel._handleUnsolicitedResponse: LEAVE 
 |...|...|...|...|...> UnsolicitedResponseChannel.readyToRead: LEAVE 
 |...|...|...> UnsolicitedResponseChannel._readyToRead: LEAVE 
framework: 'framework.subsystems.odeviced.idlenotifier state change to IDLE'
framework: 'framework.subsystems.odeviced.idlenotifier state change to IDLE_DIM'




I also see something a little bit strange : If I call
RetrievePhonebook() before doing a call, then it returns an empty list.

That is : with this sequence of operations :

  SetAntennaPower
  Register
  Initiate
  # Wait for CallStatus outgoing
  Release
  # Wait for CallStatus inactive
  RetrievePhonebook

It works (I get the phone book)

But with this one :

  SetAntennaPower
  Register
  RetrievePhonebook

I get en empty phone book
Not sure if I forget to do something or if it is a bug, but in any case,
I'll prefer RetrievePhonebook raising an exception instead of returning
an empty list.

should I open a ticket ? 

Cheers,
-charlie



-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.linuxtogo.org/pipermail/smartphones-standards/attachments/20080718/e55549e8/attachment.pgp>


More information about the smartphones-standards mailing list