Hi Denis,
Really sorry, this patch is from Mariem and I haven't reviewed it.
the cinterion_parse_tech function really needs to be rework. I'll resend you
a cleaner version today.
On 15/03/2018 18:19, Denis Kenzior wrote:
Hi Gabriel,
On 03/15/2018 07:49 AM, Gabriel Lucas wrote:
From: Mariem Cherif <mariem.che...@ardia.com.tn>
---
drivers/atmodem/network-registration.c | 45
++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/drivers/atmodem/network-registration.c
b/drivers/atmodem/network-registration.c
index a5e2af3..aec9c2d 100644
--- a/drivers/atmodem/network-registration.c
+++ b/drivers/atmodem/network-registration.c
@@ -48,6 +48,7 @@ static const char *cops_prefix[] = { "+COPS:", NULL };
static const char *csq_prefix[] = { "+CSQ:", NULL };
static const char *cind_prefix[] = { "+CIND:", NULL };
static const char *cmer_prefix[] = { "+CMER:", NULL };
+static const char *smoni_prefix[] = { "^SMONI:", "", NULL };
Is there a reason why "" is added? Is the modem sending lines not
prefixed by '^SMONI:' in the response?
static const char *zpas_prefix[] = { "+ZPAS:", NULL };
static const char *option_tech_prefix[] = { "_OCTI:", "_OUWCTI:",
NULL };
@@ -178,6 +179,32 @@ static int option_parse_tech(GAtResult *result)
return tech;
}
+static int cinterion_parse_tech(GAtResult *result)
+{
+ int tech = -1;
+ GAtResultIter iter;
+ GSList *l;
new line here please
+ g_at_result_iter_init(&iter, result);
+ l = result->lines;
What does the output look like?
+ if (strstr(l->data, "^SMONI: ") != NULL) {
Generally we use g_at_result_iter_next("^SMONI:");
+ gchar **body = g_strsplit(l->data, "^SMONI: ", 2);
+ if (*body != NULL) {
+ gchar **data = g_strsplit(body[1], ",", 20);
+ if (*data != NULL) {
+ if (g_strcmp0(data[0], "2G") == 0) {
+ tech = ACCESS_TECHNOLOGY_GSM;
+ } else if (g_strcmp0 (data[0], "3G") == 0) {
+ tech = ACCESS_TECHNOLOGY_UTRAN;
+ } else if (g_strcmp0 (data[0], "4G") == 0) {
+ tech = ACCESS_TECHNOLOGY_EUTRAN;
+ }
+ }
Are you leaking data? Have you run this through valgrind?
+ g_strfreev(body);
It seems all of this can be accomplished with
g_at_result_iter_next_unquoted_string.
Regards,
-Denis
_______________________________________________
ofono mailing list
ofono@ofono.org
https://lists.ofono.org/mailman/listinfo/ofono