Hi Richard,
...and we have the issue that the indications seems to be sent in random order.
Figured..
Try looking at the strategy we employed when dealing with the 27.007
voice calling (another nightmare) commands. E.g. +CLIP, +CNAP, +CDIP,
+CRING/RING, +CCWA, +CLCC, etc. It might possibly give you some ideas.
The general strategy is to start a timer, but not perform any queries
right away and give the modem some time to send in all the unsolicited
notifications. Most of the time the modem will send us everything we
need in one quick (temporal) burst. But this is not guaranteed of course.
If the timer expires with no additional info received, then perform the
query/poll, which might end up being redundant due to timing, etc. In
general using timers like this is quite racy and can lead to quite ugly
code.
So what about when a c?reg indication is received from the modem.
Start a "poll" of all the supported c?reg and set a flag, so multiple
polls are not started in case of an additional indication is received.
When the poll of all the supported c?reg statuses returns -> update
the gprs "core" with the combined status?
Are you talking about doing this in the gprs driver? I would bite the
bullet and do this in the core. I would also assume the core has to
perform its own 'combining of the status'.
.. and the attached_status callback should also poll all supported c?reg...
But essentially yes, you're stuck doing that whenever gprs_status has
changed to searching/unknown.
Regards,
-Denis
_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono