diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2017-08-21 14:19:01 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2017-09-07 10:55:17 +0200 |
commit | 44a850f8adf7b4c5e032f29f313b871f9a7616c1 (patch) | |
tree | 88f467098b606b6f3365234f5faafb08141e11cc | |
parent | 4c921cd584e7ceaa0629854c4e372509742d86e1 (diff) |
telit: update frequency bands support
Updated to use the non-deprecated MMModemBand values.
Also, use explicit enums for 2G/3G bands when building internal flags,
as relying on UTRAN band 7 (MM_MODEM_BAND_U2600) being greater than
UTRAN bands 8 and 9 is a MM implementation issue.
-rw-r--r-- | plugins/telit/mm-modem-helpers-telit.c | 97 | ||||
-rw-r--r-- | plugins/telit/tests/test-mm-modem-helpers-telit.c | 68 |
2 files changed, 93 insertions, 72 deletions
diff --git a/plugins/telit/mm-modem-helpers-telit.c b/plugins/telit/mm-modem-helpers-telit.c index 32663cdb..1e8de672 100644 --- a/plugins/telit/mm-modem-helpers-telit.c +++ b/plugins/telit/mm-modem-helpers-telit.c @@ -46,14 +46,35 @@ mm_telit_get_band_flag (GArray *bands_array, for (i = 0; i < bands_array->len; i++) { MMModemBand band = g_array_index (bands_array, MMModemBand, i); - if (flag2g != NULL && - band > MM_MODEM_BAND_UNKNOWN && band <= MM_MODEM_BAND_G850) { - mask2g += 1 << band; + if (flag2g != NULL) { + switch (band) { + case MM_MODEM_BAND_EGSM: + case MM_MODEM_BAND_DCS: + case MM_MODEM_BAND_PCS: + case MM_MODEM_BAND_G850: + mask2g += 1 << band; + break; + default: + break; + } } - if (flag3g != NULL && - band >= MM_MODEM_BAND_U2100 && band <= MM_MODEM_BAND_U2600) { - mask3g += 1 << band; + if (flag3g != NULL) { + switch (band) { + case MM_MODEM_BAND_UTRAN_1: + case MM_MODEM_BAND_UTRAN_2: + case MM_MODEM_BAND_UTRAN_3: + case MM_MODEM_BAND_UTRAN_4: + case MM_MODEM_BAND_UTRAN_5: + case MM_MODEM_BAND_UTRAN_6: + case MM_MODEM_BAND_UTRAN_7: + case MM_MODEM_BAND_UTRAN_8: + case MM_MODEM_BAND_UTRAN_9: + mask3g += 1 << band; + break; + default: + break; + } } if (flag4g != NULL && @@ -79,25 +100,25 @@ mm_telit_get_band_flag (GArray *bands_array, /* Get 3G flag */ if (flag3g != NULL) { - if (mask3g == (1 << MM_MODEM_BAND_U2100)) + if (mask3g == (1 << MM_MODEM_BAND_UTRAN_1)) *flag3g = 0; - else if (mask3g == (1 << MM_MODEM_BAND_U1900)) + else if (mask3g == (1 << MM_MODEM_BAND_UTRAN_2)) *flag3g = 1; - else if (mask3g == (1 << MM_MODEM_BAND_U850)) + else if (mask3g == (1 << MM_MODEM_BAND_UTRAN_5)) *flag3g = 2; - else if (mask3g == ((1 << MM_MODEM_BAND_U2100) + - (1 << MM_MODEM_BAND_U1900) + - (1 << MM_MODEM_BAND_U850))) + else if (mask3g == ((1 << MM_MODEM_BAND_UTRAN_1) + + (1 << MM_MODEM_BAND_UTRAN_2) + + (1 << MM_MODEM_BAND_UTRAN_5))) *flag3g = 3; - else if (mask3g == ((1 << MM_MODEM_BAND_U1900) + - (1 << MM_MODEM_BAND_U850))) + else if (mask3g == ((1 << MM_MODEM_BAND_UTRAN_2) + + (1 << MM_MODEM_BAND_UTRAN_5))) *flag3g = 4; - else if (mask3g == (1 << MM_MODEM_BAND_U900)) + else if (mask3g == (1 << MM_MODEM_BAND_UTRAN_8)) *flag3g = 5; - else if (mask3g == ((1 << MM_MODEM_BAND_U2100) + - (1 << MM_MODEM_BAND_U900))) + else if (mask3g == ((1 << MM_MODEM_BAND_UTRAN_1) + + (1 << MM_MODEM_BAND_UTRAN_8))) *flag3g = 6; - else if (mask3g == (1 << MM_MODEM_BAND_U17IV)) + else if (mask3g == (1 << MM_MODEM_BAND_UTRAN_4)) *flag3g = 7; else *flag3g = -1; @@ -378,27 +399,27 @@ mm_telit_get_3g_mm_bands (GMatchInfo *match_info, gboolean ret = TRUE; TelitToMMBandMap map [] = { - { BND_FLAG_0, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_UNKNOWN} }, - { BND_FLAG_1, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_UNKNOWN} }, - { BND_FLAG_2, { MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN} }, - { BND_FLAG_3, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U1900, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN} }, - { BND_FLAG_4, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN} }, - { BND_FLAG_5, { MM_MODEM_BAND_U900, MM_MODEM_BAND_UNKNOWN} }, - { BND_FLAG_6, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U900, MM_MODEM_BAND_UNKNOWN} }, - { BND_FLAG_7, { MM_MODEM_BAND_U17IV, MM_MODEM_BAND_UNKNOWN} }, - { BND_FLAG_8, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN }}, - { BND_FLAG_9, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U900, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN }}, - { BND_FLAG_10, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_U17IV, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN }}, - { BND_FLAG_12, { MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN}}, + { BND_FLAG_0, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UNKNOWN} }, + { BND_FLAG_1, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UNKNOWN} }, + { BND_FLAG_2, { MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN} }, + { BND_FLAG_3, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN} }, + { BND_FLAG_4, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN} }, + { BND_FLAG_5, { MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_UNKNOWN} }, + { BND_FLAG_6, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_UNKNOWN} }, + { BND_FLAG_7, { MM_MODEM_BAND_UTRAN_4, MM_MODEM_BAND_UNKNOWN} }, + { BND_FLAG_8, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN }}, + { BND_FLAG_9, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN }}, + { BND_FLAG_10, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_4, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN }}, + { BND_FLAG_12, { MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN}}, { BND_FLAG_13, { MM_MODEM_BAND_U1800, MM_MODEM_BAND_UNKNOWN }}, - { BND_FLAG_14, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U900, MM_MODEM_BAND_U17IV, MM_MODEM_BAND_U850, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN }}, - { BND_FLAG_15, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U900, MM_MODEM_BAND_U1800, MM_MODEM_BAND_UNKNOWN }}, - { BND_FLAG_16, { MM_MODEM_BAND_U900, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN }}, - { BND_FLAG_17, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_U17IV, MM_MODEM_BAND_U850, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN }}, - { BND_FLAG_18, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U1900, MM_MODEM_BAND_U850, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN}}, - { BND_FLAG_19, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN }}, - { BND_FLAG_20, { MM_MODEM_BAND_U850, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN}}, - { BND_FLAG_21, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_U850, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN}}, + { BND_FLAG_14, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_UTRAN_4, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN }}, + { BND_FLAG_15, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_U1800, MM_MODEM_BAND_UNKNOWN }}, + { BND_FLAG_16, { MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN }}, + { BND_FLAG_17, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_4, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN }}, + { BND_FLAG_18, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN}}, + { BND_FLAG_19, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN }}, + { BND_FLAG_20, { MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN}}, + { BND_FLAG_21, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN}}, { BND_FLAG_UNKNOWN, {}}, }; diff --git a/plugins/telit/tests/test-mm-modem-helpers-telit.c b/plugins/telit/tests/test-mm-modem-helpers-telit.c index 5f8638bc..c7cff88b 100644 --- a/plugins/telit/tests/test-mm-modem-helpers-telit.c +++ b/plugins/telit/tests/test-mm-modem-helpers-telit.c @@ -159,40 +159,40 @@ static BNDResponseTest supported_band_mapping_tests [] = { MM_MODEM_BAND_DCS, MM_MODEM_BAND_PCS, MM_MODEM_BAND_G850, - MM_MODEM_BAND_U2100, - MM_MODEM_BAND_U850, - MM_MODEM_BAND_U900} }, + MM_MODEM_BAND_UTRAN_1, + MM_MODEM_BAND_UTRAN_5, + MM_MODEM_BAND_UTRAN_8 } }, { "#BND: (0,3),(0,2,5,6)", TRUE, TRUE, FALSE, 7, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_PCS, MM_MODEM_BAND_G850, - MM_MODEM_BAND_U2100, - MM_MODEM_BAND_U850, - MM_MODEM_BAND_U900} }, + MM_MODEM_BAND_UTRAN_1, + MM_MODEM_BAND_UTRAN_5, + MM_MODEM_BAND_UTRAN_8} }, { "#BND: (0,2),(0,2,5,6)", TRUE, TRUE, FALSE, 6, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_G850, - MM_MODEM_BAND_U2100, - MM_MODEM_BAND_U850, - MM_MODEM_BAND_U900} }, + MM_MODEM_BAND_UTRAN_1, + MM_MODEM_BAND_UTRAN_5, + MM_MODEM_BAND_UTRAN_8} }, { "#BND: (0,2),(0-4,5,6)", TRUE, TRUE, FALSE, 7, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_G850, - MM_MODEM_BAND_U2100, - MM_MODEM_BAND_U1900, - MM_MODEM_BAND_U850, - MM_MODEM_BAND_U900} }, + MM_MODEM_BAND_UTRAN_1, + MM_MODEM_BAND_UTRAN_2, + MM_MODEM_BAND_UTRAN_5, + MM_MODEM_BAND_UTRAN_8} }, { "#BND: (0-3),(0,2,5,6),(1-1)", TRUE, TRUE, TRUE, 8, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_PCS, MM_MODEM_BAND_G850, - MM_MODEM_BAND_U2100, - MM_MODEM_BAND_U850, - MM_MODEM_BAND_U900, + MM_MODEM_BAND_UTRAN_1, + MM_MODEM_BAND_UTRAN_5, + MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_EUTRAN_1} }, { "#BND: (0),(0),(1-3)", TRUE, TRUE, TRUE, 5, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, - MM_MODEM_BAND_U2100, + MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_EUTRAN_1, MM_MODEM_BAND_EUTRAN_2} }, { "#BND: (0),(0),(1-3)", FALSE, FALSE, TRUE, 2, { MM_MODEM_BAND_EUTRAN_1, @@ -243,32 +243,32 @@ static BNDResponseTest current_band_mapping_tests [] = { }, { "#BND: 0,5", TRUE, TRUE, FALSE, 3, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, - MM_MODEM_BAND_U900 + MM_MODEM_BAND_UTRAN_8 } }, { "#BND: 1,3", TRUE, TRUE, FALSE, 5, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_PCS, - MM_MODEM_BAND_U2100, - MM_MODEM_BAND_U1900, - MM_MODEM_BAND_U850, + MM_MODEM_BAND_UTRAN_1, + MM_MODEM_BAND_UTRAN_2, + MM_MODEM_BAND_UTRAN_5, } }, { "#BND: 2,7", TRUE, TRUE, FALSE, 3, { MM_MODEM_BAND_DCS, MM_MODEM_BAND_G850, - MM_MODEM_BAND_U17IV - }, + MM_MODEM_BAND_UTRAN_4 + } }, { "#BND: 3,0,1", TRUE, TRUE, TRUE, 4, { MM_MODEM_BAND_PCS, MM_MODEM_BAND_G850, - MM_MODEM_BAND_U2100, + MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_EUTRAN_1 } }, { "#BND: 0,0,3", TRUE, FALSE, TRUE, 4, { MM_MODEM_BAND_EGSM, - MM_MODEM_BAND_DCS, - MM_MODEM_BAND_EUTRAN_1, - MM_MODEM_BAND_EUTRAN_2 - } + MM_MODEM_BAND_DCS, + MM_MODEM_BAND_EUTRAN_1, + MM_MODEM_BAND_EUTRAN_2 + } }, { "#BND: 0,0,3", FALSE, FALSE, TRUE, 2, { MM_MODEM_BAND_EUTRAN_1, MM_MODEM_BAND_EUTRAN_2 @@ -373,12 +373,12 @@ static void test_telit_get_3g_bnd_flag (void) { GArray *bands_array; - MMModemBand u2100 = MM_MODEM_BAND_U2100; - MMModemBand u1900 = MM_MODEM_BAND_U1900; - MMModemBand u850 = MM_MODEM_BAND_U850; - MMModemBand u900 = MM_MODEM_BAND_U900; - MMModemBand u17iv = MM_MODEM_BAND_U17IV; - MMModemBand u17ix = MM_MODEM_BAND_U17IX; + MMModemBand u2100 = MM_MODEM_BAND_UTRAN_1; + MMModemBand u1900 = MM_MODEM_BAND_UTRAN_2; + MMModemBand u850 = MM_MODEM_BAND_UTRAN_5; + MMModemBand u900 = MM_MODEM_BAND_UTRAN_8; + MMModemBand u17iv = MM_MODEM_BAND_UTRAN_4; + MMModemBand u17ix = MM_MODEM_BAND_UTRAN_9; gint flag; /* Test flag 0 */ |