SIM not ready
Michael 'Mickey' Lauer
mickey at vanille-media.de
Fri Jul 18 11:42:07 CEST 2008
Am Freitag, den 18.07.2008, 11:05 +0800 schrieb Guillaume Chereau:
> 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 ?
Yes, please.
This is a really good bug report, by the way, thanks. I have enough
information to fix it now.
:M:
More information about the smartphones-standards
mailing list