<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">I though to keep changes confined to only one plugin from the beginning, but adding a new interface to MMBroadbandModemClass does make sense to me.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 2 December 2015 at 19:40, Aleksander Morgado <span dir="ltr"><<a href="mailto:aleksander@aleksander.es" target="_blank">aleksander@aleksander.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Dec 2, 2015 at 5:50 PM, Carlo Lobrano <<a href="mailto:c.lobrano@gmail.com">c.lobrano@gmail.com</a>> wrote:<br>
> I am trying to solve a problem on HE910 Telit modem (I also opened bug 93135<br>
> about this), which does not support NULL items for AT+CPMS command, so<br>
> commands like<br>
><br>
>     AT+CPMS="","ME"<br>
><br>
> return with error. My idea is basically to provides always MEM1 parameter<br>
> when AT+CPMS is issued, using the current value set on the modem if not<br>
> provided in other ways.<br>
><br>
> As suggested by Aleksander on bugtrace, the right way to do it would be to<br>
> call +CPMS? "somewhere" and parse the reply.<br>
> I'd like to keep those changes in telit plugin, but I wouldn't re-implement<br>
> all messaging interface for this and it is not clear to me how access to<br>
> "current_sms_mem1_storage" parameter in MMBroadbandModemPrivate. Is it even<br>
> possible?<br>
<br>
</span>Well, nothing is impossible, but I wouldn't try to do it that way. The<br>
current_sms_mem1_storage variable is part of the MMBroadbandModem<br>
logic, it doesn't apply out of it, it's only used as part of the logic<br>
doing the storage lock/unlock before R/W.<br>
<br>
Instead, what I would do, is to provide in MMBroadbandModemClass a new<br>
async virtual method to "load_current_sms_mem_storage()" (or something<br>
like that). The logic in MMBroadbandModem which checks which are the<br>
supported storages could then have a new step to query which is the<br>
current storage (which we only need to do once), all this in the<br>
MMBroadbandModem class.<br>
<br>
This class would then provide an implementation of the virtual method<br>
itself, not in the Telit plugin, as the change shouldn't affect other<br>
implementations and actually kind of makes sense. If we see that the<br>
change affects other modems, we can later just move the implementation<br>
of the virtual method to the Telit plugin and leave the generic<br>
MMBroadbandModem with the virtual method pointers to NULL so that<br>
other plugins don't use that logic.<br>
<br>
What do you think?<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Aleksander<br>
<a href="https://aleksander.es" rel="noreferrer" target="_blank">https://aleksander.es</a><br>
</font></span></blockquote></div><br></div>