telit: LN920 bands support
This commit is contained in:
committed by
Aleksander Morgado
parent
f5ab3c4678
commit
650cdc5a32
@@ -39,20 +39,21 @@ typedef struct {
|
||||
gboolean modem_is_3g;
|
||||
gboolean modem_is_4g;
|
||||
gboolean modem_alternate_3g_bands;
|
||||
gboolean modem_ext_4g_bands;
|
||||
guint mm_bands_len;
|
||||
MMModemBand mm_bands [MAX_BANDS_LIST_LEN];
|
||||
} BndResponseTest;
|
||||
|
||||
static BndResponseTest supported_band_mapping_tests [] = {
|
||||
{
|
||||
"#BND: (0-3)", TRUE, FALSE, FALSE, FALSE, 4,
|
||||
"#BND: (0-3)", TRUE, FALSE, FALSE, FALSE, FALSE, 4,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_PCS,
|
||||
MM_MODEM_BAND_G850 }
|
||||
},
|
||||
{
|
||||
"#BND: (0-3),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, 7,
|
||||
"#BND: (0-3),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, FALSE, 7,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_PCS,
|
||||
@@ -62,7 +63,7 @@ static BndResponseTest supported_band_mapping_tests [] = {
|
||||
MM_MODEM_BAND_UTRAN_8 }
|
||||
},
|
||||
{
|
||||
"#BND: (0,3),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, 7,
|
||||
"#BND: (0,3),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, FALSE, 7,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_PCS,
|
||||
@@ -72,7 +73,7 @@ static BndResponseTest supported_band_mapping_tests [] = {
|
||||
MM_MODEM_BAND_UTRAN_8 }
|
||||
},
|
||||
{
|
||||
"#BND: (0,2),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, 6,
|
||||
"#BND: (0,2),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, FALSE, 6,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_G850,
|
||||
@@ -81,7 +82,7 @@ static BndResponseTest supported_band_mapping_tests [] = {
|
||||
MM_MODEM_BAND_UTRAN_8 }
|
||||
},
|
||||
{
|
||||
"#BND: (0,2),(0-4,5,6)", TRUE, TRUE, FALSE, FALSE, 7,
|
||||
"#BND: (0,2),(0-4,5,6)", TRUE, TRUE, FALSE, FALSE, FALSE, 7,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_G850,
|
||||
@@ -91,7 +92,7 @@ static BndResponseTest supported_band_mapping_tests [] = {
|
||||
MM_MODEM_BAND_UTRAN_8 }
|
||||
},
|
||||
{
|
||||
"#BND: (0-3),(0,2,5,6),(1-1)", TRUE, TRUE, TRUE, FALSE, 8,
|
||||
"#BND: (0-3),(0,2,5,6),(1-1)", TRUE, TRUE, TRUE, FALSE, FALSE, 8,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_PCS,
|
||||
@@ -102,7 +103,7 @@ static BndResponseTest supported_band_mapping_tests [] = {
|
||||
MM_MODEM_BAND_EUTRAN_1 }
|
||||
},
|
||||
{
|
||||
"#BND: (0),(0),(1-3)", TRUE, TRUE, TRUE, FALSE, 5,
|
||||
"#BND: (0),(0),(1-3)", TRUE, TRUE, TRUE, FALSE, FALSE, 5,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_UTRAN_1,
|
||||
@@ -110,13 +111,13 @@ static BndResponseTest supported_band_mapping_tests [] = {
|
||||
MM_MODEM_BAND_EUTRAN_2 }
|
||||
},
|
||||
{
|
||||
"#BND: (0),(0),(1-3)", FALSE, FALSE, TRUE, FALSE, 2,
|
||||
"#BND: (0),(0),(1-3)", FALSE, FALSE, TRUE, FALSE, FALSE, 2,
|
||||
{ MM_MODEM_BAND_EUTRAN_1,
|
||||
MM_MODEM_BAND_EUTRAN_2 }
|
||||
},
|
||||
/* 3G alternate band settings: default */
|
||||
{
|
||||
"#BND: (0),(0,2,5,6,12,25)", FALSE, TRUE, FALSE, FALSE, 5,
|
||||
"#BND: (0),(0,2,5,6,12,25)", FALSE, TRUE, FALSE, FALSE, FALSE, 5,
|
||||
{ MM_MODEM_BAND_UTRAN_1,
|
||||
MM_MODEM_BAND_UTRAN_5,
|
||||
MM_MODEM_BAND_UTRAN_8,
|
||||
@@ -125,7 +126,7 @@ static BndResponseTest supported_band_mapping_tests [] = {
|
||||
},
|
||||
/* 3G alternate band settings: alternate */
|
||||
{
|
||||
"#BND: (0),(0,2,5,6,12,13)", FALSE, TRUE, FALSE, TRUE, 4,
|
||||
"#BND: (0),(0,2,5,6,12,13)", FALSE, TRUE, FALSE, TRUE, FALSE, 4,
|
||||
{ MM_MODEM_BAND_UTRAN_1,
|
||||
MM_MODEM_BAND_UTRAN_3,
|
||||
MM_MODEM_BAND_UTRAN_5,
|
||||
@@ -135,7 +136,7 @@ static BndResponseTest supported_band_mapping_tests [] = {
|
||||
* 168695967: 0xA0E189F: 0000 1010 0000 1110 0001 1000 1001 1111
|
||||
*/
|
||||
{
|
||||
"#BND: (0-5),(0),(1-168695967)", TRUE, FALSE, TRUE, FALSE, 17,
|
||||
"#BND: (0-5),(0),(1-168695967)", TRUE, FALSE, TRUE, FALSE, FALSE, 17,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_PCS,
|
||||
@@ -153,6 +154,23 @@ static BndResponseTest supported_band_mapping_tests [] = {
|
||||
MM_MODEM_BAND_EUTRAN_20,
|
||||
MM_MODEM_BAND_EUTRAN_26,
|
||||
MM_MODEM_BAND_EUTRAN_28 }
|
||||
},
|
||||
/* 4G ext band settings: devices such as LN920 */
|
||||
{
|
||||
"#BND: (0),(0),(1003100185A),(42)", FALSE, TRUE, TRUE, FALSE, TRUE, 13,
|
||||
{ MM_MODEM_BAND_UTRAN_1,
|
||||
MM_MODEM_BAND_EUTRAN_2,
|
||||
MM_MODEM_BAND_EUTRAN_4,
|
||||
MM_MODEM_BAND_EUTRAN_5,
|
||||
MM_MODEM_BAND_EUTRAN_7,
|
||||
MM_MODEM_BAND_EUTRAN_12,
|
||||
MM_MODEM_BAND_EUTRAN_13,
|
||||
MM_MODEM_BAND_EUTRAN_25,
|
||||
MM_MODEM_BAND_EUTRAN_29,
|
||||
MM_MODEM_BAND_EUTRAN_30,
|
||||
MM_MODEM_BAND_EUTRAN_41,
|
||||
MM_MODEM_BAND_EUTRAN_66,
|
||||
MM_MODEM_BAND_EUTRAN_71 }
|
||||
}
|
||||
};
|
||||
|
||||
@@ -170,6 +188,7 @@ test_parse_supported_bands_response (void)
|
||||
supported_band_mapping_tests[i].modem_is_3g,
|
||||
supported_band_mapping_tests[i].modem_is_4g,
|
||||
supported_band_mapping_tests[i].modem_alternate_3g_bands,
|
||||
supported_band_mapping_tests[i].modem_ext_4g_bands,
|
||||
NULL,
|
||||
&error);
|
||||
g_assert_no_error (error);
|
||||
@@ -184,18 +203,18 @@ test_parse_supported_bands_response (void)
|
||||
|
||||
static BndResponseTest current_band_mapping_tests [] = {
|
||||
{
|
||||
"#BND: 0", TRUE, FALSE, FALSE, FALSE, 2,
|
||||
"#BND: 0", TRUE, FALSE, FALSE, FALSE, FALSE, 2,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS }
|
||||
},
|
||||
{
|
||||
"#BND: 0,5", TRUE, TRUE, FALSE, FALSE, 3,
|
||||
"#BND: 0,5", TRUE, TRUE, FALSE, FALSE, FALSE, 3,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_UTRAN_8 }
|
||||
},
|
||||
{
|
||||
"#BND: 1,3", TRUE, TRUE, FALSE, FALSE, 5,
|
||||
"#BND: 1,3", TRUE, TRUE, FALSE, FALSE, FALSE, 5,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_PCS,
|
||||
MM_MODEM_BAND_UTRAN_1,
|
||||
@@ -203,38 +222,38 @@ static BndResponseTest current_band_mapping_tests [] = {
|
||||
MM_MODEM_BAND_UTRAN_5 }
|
||||
},
|
||||
{
|
||||
"#BND: 2,7", TRUE, TRUE, FALSE, FALSE, 3,
|
||||
"#BND: 2,7", TRUE, TRUE, FALSE, FALSE, FALSE, 3,
|
||||
{ MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_G850,
|
||||
MM_MODEM_BAND_UTRAN_4 }
|
||||
},
|
||||
{
|
||||
"#BND: 3,0,1", TRUE, TRUE, TRUE, FALSE, 4,
|
||||
"#BND: 3,0,1", TRUE, TRUE, TRUE, FALSE, FALSE, 4,
|
||||
{ MM_MODEM_BAND_PCS,
|
||||
MM_MODEM_BAND_G850,
|
||||
MM_MODEM_BAND_UTRAN_1,
|
||||
MM_MODEM_BAND_EUTRAN_1 }
|
||||
},
|
||||
{
|
||||
"#BND: 0,0,3", TRUE, FALSE, TRUE, FALSE, 4,
|
||||
"#BND: 0,0,3", TRUE, FALSE, TRUE, FALSE, FALSE, 4,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_EUTRAN_1,
|
||||
MM_MODEM_BAND_EUTRAN_2 }
|
||||
},
|
||||
{
|
||||
"#BND: 0,0,3", FALSE, FALSE, TRUE, FALSE, 2,
|
||||
"#BND: 0,0,3", FALSE, FALSE, TRUE, FALSE, FALSE, 2,
|
||||
{ MM_MODEM_BAND_EUTRAN_1,
|
||||
MM_MODEM_BAND_EUTRAN_2 }
|
||||
},
|
||||
/* 3G alternate band settings: default */
|
||||
{
|
||||
"#BND: 0,12", FALSE, TRUE, FALSE, FALSE, 1,
|
||||
"#BND: 0,12", FALSE, TRUE, FALSE, FALSE, FALSE, 1,
|
||||
{ MM_MODEM_BAND_UTRAN_6 }
|
||||
},
|
||||
/* 3G alternate band settings: alternate */
|
||||
{
|
||||
"#BND: 0,12", FALSE, TRUE, FALSE, TRUE, 4,
|
||||
"#BND: 0,12", FALSE, TRUE, FALSE, TRUE, FALSE, 4,
|
||||
{ MM_MODEM_BAND_UTRAN_1,
|
||||
MM_MODEM_BAND_UTRAN_3,
|
||||
MM_MODEM_BAND_UTRAN_5,
|
||||
@@ -244,7 +263,7 @@ static BndResponseTest current_band_mapping_tests [] = {
|
||||
* 168695967: 0xA0E189F: 0000 1010 0000 1110 0001 1000 1001 1111
|
||||
*/
|
||||
{
|
||||
"#BND: 5,0,168695967", TRUE, FALSE, TRUE, FALSE, 17,
|
||||
"#BND: 5,0,168695967", TRUE, FALSE, TRUE, FALSE, FALSE, 17,
|
||||
{ MM_MODEM_BAND_EGSM,
|
||||
MM_MODEM_BAND_DCS,
|
||||
MM_MODEM_BAND_PCS,
|
||||
@@ -262,6 +281,23 @@ static BndResponseTest current_band_mapping_tests [] = {
|
||||
MM_MODEM_BAND_EUTRAN_20,
|
||||
MM_MODEM_BAND_EUTRAN_26,
|
||||
MM_MODEM_BAND_EUTRAN_28 }
|
||||
},
|
||||
/* 4G ext band settings: devices such as LN920 */
|
||||
{
|
||||
"#BND: 0,0,1003100185A,42", FALSE, TRUE, TRUE, FALSE, TRUE, 13,
|
||||
{ MM_MODEM_BAND_UTRAN_1,
|
||||
MM_MODEM_BAND_EUTRAN_2,
|
||||
MM_MODEM_BAND_EUTRAN_4,
|
||||
MM_MODEM_BAND_EUTRAN_5,
|
||||
MM_MODEM_BAND_EUTRAN_7,
|
||||
MM_MODEM_BAND_EUTRAN_12,
|
||||
MM_MODEM_BAND_EUTRAN_13,
|
||||
MM_MODEM_BAND_EUTRAN_25,
|
||||
MM_MODEM_BAND_EUTRAN_29,
|
||||
MM_MODEM_BAND_EUTRAN_30,
|
||||
MM_MODEM_BAND_EUTRAN_41,
|
||||
MM_MODEM_BAND_EUTRAN_66,
|
||||
MM_MODEM_BAND_EUTRAN_71 }
|
||||
}
|
||||
};
|
||||
|
||||
@@ -279,6 +315,7 @@ test_parse_current_bands_response (void)
|
||||
current_band_mapping_tests[i].modem_is_3g,
|
||||
current_band_mapping_tests[i].modem_is_4g,
|
||||
current_band_mapping_tests[i].modem_alternate_3g_bands,
|
||||
current_band_mapping_tests[i].modem_ext_4g_bands,
|
||||
NULL,
|
||||
&error);
|
||||
g_assert_no_error (error);
|
||||
@@ -299,6 +336,7 @@ test_common_bnd_cmd (const gchar *expected_cmd,
|
||||
gboolean modem_is_3g,
|
||||
gboolean modem_is_4g,
|
||||
gboolean modem_alternate_3g_bands,
|
||||
gboolean modem_ext_4g_bands,
|
||||
GArray *bands_array)
|
||||
{
|
||||
gchar *cmd;
|
||||
@@ -307,15 +345,16 @@ test_common_bnd_cmd (const gchar *expected_cmd,
|
||||
cmd = mm_telit_build_bnd_request (bands_array,
|
||||
modem_is_2g, modem_is_3g, modem_is_4g,
|
||||
modem_alternate_3g_bands,
|
||||
modem_ext_4g_bands,
|
||||
&error);
|
||||
g_assert_no_error (error);
|
||||
g_assert_cmpstr (cmd, ==, expected_cmd);
|
||||
g_free (cmd);
|
||||
}
|
||||
|
||||
#define test_common_bnd_cmd_2g(EXPECTED_CMD, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, TRUE, FALSE, FALSE, FALSE, BANDS_ARRAY)
|
||||
#define test_common_bnd_cmd_3g(EXPECTED_CMD, ALTERNATE, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, FALSE, TRUE, FALSE, ALTERNATE, BANDS_ARRAY)
|
||||
#define test_common_bnd_cmd_4g(EXPECTED_CMD, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, FALSE, FALSE, TRUE, FALSE, BANDS_ARRAY)
|
||||
#define test_common_bnd_cmd_2g(EXPECTED_CMD, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, TRUE, FALSE, FALSE, FALSE, FALSE, BANDS_ARRAY)
|
||||
#define test_common_bnd_cmd_3g(EXPECTED_CMD, ALTERNATE, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, FALSE, TRUE, FALSE, ALTERNATE, FALSE, BANDS_ARRAY)
|
||||
#define test_common_bnd_cmd_4g(EXPECTED_CMD, EXTENDED, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, FALSE, FALSE, TRUE, FALSE, EXTENDED, BANDS_ARRAY)
|
||||
|
||||
static void
|
||||
test_common_bnd_cmd_error (gboolean modem_is_2g,
|
||||
@@ -329,7 +368,7 @@ test_common_bnd_cmd_error (gboolean modem_is_2g,
|
||||
|
||||
cmd = mm_telit_build_bnd_request (bands_array,
|
||||
modem_is_2g, modem_is_3g, modem_is_4g,
|
||||
FALSE,
|
||||
FALSE, FALSE,
|
||||
&error);
|
||||
g_assert_error (error, MM_CORE_ERROR, (gint)expected_error);
|
||||
g_assert (!cmd);
|
||||
@@ -512,14 +551,14 @@ test_telit_get_4g_bnd_flag (void)
|
||||
/* Test flag 1 */
|
||||
bands_array = g_array_sized_new (FALSE, FALSE, sizeof (MMModemBand), 1);
|
||||
g_array_append_val (bands_array, eutran_i);
|
||||
test_common_bnd_cmd_4g ("#BND=0,0,1", bands_array);
|
||||
test_common_bnd_cmd_4g ("#BND=0,0,1", FALSE, bands_array);
|
||||
g_array_unref (bands_array);
|
||||
|
||||
/* Test flag 3 */
|
||||
bands_array = g_array_sized_new (FALSE, FALSE, sizeof (MMModemBand), 2);
|
||||
g_array_append_val (bands_array, eutran_i);
|
||||
g_array_append_val (bands_array, eutran_ii);
|
||||
test_common_bnd_cmd_4g ("#BND=0,0,3", bands_array);
|
||||
test_common_bnd_cmd_4g ("#BND=0,0,3", FALSE, bands_array);
|
||||
g_array_unref (bands_array);
|
||||
|
||||
/* Test unmatched band array */
|
||||
|
||||
Reference in New Issue
Block a user