Hi Denis,
 first of all thanks 4 your reply.

>
> 2013/3/26 Denis Kenzior <[email protected]>
>
>> Hi Marco,
>>
>>
>> On 03/26/2013 04:07 AM, Freedreamer wrote:
>>
>>> Hi Everybody,
>>>
>>> I'm developing a driver for an embedded system which uses a sagem HiloNC
>>> v2 and I really should need your help. It's my will to commit everything
>>> when shall be ready and working.
>>> First of all I will tell you what i did..I created a plugin sagem.c
>>> ,added a new Vendor ,  modified makefile & other stuff and seems to work
>>> properly. I started from calypso driver 'cause the modem is based on a
>>> Uart and I needed the MUX over that.
>>> With a very raw/dirty code I was able to use PPP/SMS/net service over
>>> virtual com.. Very good work dude! :)
>>>
>>> Now I would like to clean up my code and get a better understanding of
>>> the stack. Unfortunately I saw that functions/modules are not always
>>> commented so I have to ask u a lot of questions (maybe also trivial):
>>>
>>> 1) AT cmds sent with "g_at_chat_send" are always async , is that right ?
>>> Is there any chance to get them sync ?
>>>
>>
>> There is not, we do not want to encourage any sort of blocking behavior
>> in the daemon.  Remember there are potentially multiple modems being
>> operated on and we do not use threads.
>>
>
Ok get it, i thought there were pthreads somewhere.


>> 2) in enable fnc the modem is powered but The sim is not ready so
>>> sometimes It hangs up...Do I have to to poll the sim status until is
>>> ready  , or the driver will do  that by itself ?
>>>
>>
>> oFono never polls for anything.  It is the driver's responsibility to do
>> that in the best possible way for the hardware.  Also, powering on the
>> modem is separate from the sim being ready.  The general flow is this:
>>
>> -Enable modem
>> -Wait for the modem to power on and use ofono_modem_set_powered when that
>> happens successfully / fails.
>> - Figure out if the SIM is inserted and signal using
>> ofono_sim_inserted_notify.  Do this step only once the SIM is ready to be
>> queried for its PIN status and perform any I/O on SIM files that are always
>> accessible (e.g. ICCID)
>>
>
 Ok. If Sim not "ready" , sending a signal prematurely could stuck anyhow
the stack ? 'cause it should explain a lot of thing..


>
>>
>> 3) could u explain me what should I really do in virtual fnc  set_online
>>> / post_online ? i tried to stub them but they have not never been
>>> called...
>>>
>>
>> oFono has 3 basic states:
>> - Off
>> - Radio Off, Sim On
>> - Radio On, Sim On
>>
>> set_online turns radio on / off
>> post_online populates the atoms that are available in radio 'On' state.
>>
>>
>>
 This is what i thought but I do not understand why I don't see the trace
log I put inside them...usually are called before pre_sim fn? are related
to any signal i have to manage/post ?


>
>> 4) unfortunately this modem has a SIM detection URC but it reset itself
>>> every time the status changes... so i should call the disable function
>>> and the enable again in order to have the MUX working... how can i do
>>> that?
>>>
>>
>> I'm not following.  Care to elaborate?
>>
>>
>>
I've managing vendor URC for sim detection right now but i have
problems.For instance if I remove it when ofonod is ready the Hilonc sends
an URC to notify sim status changed but after that it reboots itself(2 sec
later)... what i did is to notify the stack that the SIM has been removed
and modem is powered off . I thought that after calling set_powered fnc the
stack should have called my driver virtual disable function in order to
properly close the MUX .. but it's not..


>
>
>> 5) I created and started the MUX as the first thing in enable fnc but is
>>> that right ? sometimes seems that the modem hangs up if just powered up.
>>> Put a delay but don't like it very much as a solution...moreover when I
>>> power up the modem all the URC have been lost 'cause the MUX has not
>>> been created yet..
>>>
>>
>> That is what we do for most devices with a MUX, put it into MUX state
>> right away after basic initialization.  The devices we have can be queried
>> for their state in addition to URCs, so it works out very well.
>>
>>
right now i've been using custom URC in the first power up phase to
understand modem status. I manually set them but theoretically I should
check the values saved on the modem every power cycle. What I was thinking
was to test every time the values saved and enabling them if they were not
.After that I should call an AT+cfun=1,1 in order to reset the modem and
force it to send me again the needed URCs . What do u think ?

Thanks again
Marco

Regards,
>> -Denis
>
>
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to