summaryrefslogtreecommitdiff
path: root/cesar/mac/common
diff options
context:
space:
mode:
authorschodet2009-12-22 16:14:44 +0000
committerschodet2009-12-22 16:14:44 +0000
commitb4b326474eb5767b53a78afe4bb2a79e59561df1 (patch)
tree37e615c14b8990c66b07c6444a0f7382de704da0 /cesar/mac/common
parent1357653781392d4eedcac5b9b20cda31f831ffbe (diff)
cesar/mac/common: add phy combo parameters to tonemap, refs #1007
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@6573 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/mac/common')
-rw-r--r--cesar/mac/common/src/tonemap.c4
-rw-r--r--cesar/mac/common/src/tonemask.c4
-rw-r--r--cesar/mac/common/test/tonemap/src/test_tonemap.c20
-rw-r--r--cesar/mac/common/tonemap.h2
4 files changed, 30 insertions, 0 deletions
diff --git a/cesar/mac/common/src/tonemap.c b/cesar/mac/common/src/tonemap.c
index 8ceaf706a6..2cf2872aa6 100644
--- a/cesar/mac/common/src/tonemap.c
+++ b/cesar/mac/common/src/tonemap.c
@@ -303,6 +303,10 @@ tonemap_update (tonemap_t *tm, u32 p_pberror_uf32)
PHY_MOD_TM, tm->fecrate, PHY_PB_SIZE_136, tm->bits_per_symbol);
tm->bits_per_pb[PHY_PB_SIZE_520] = tonemap_bits_per_pb (
PHY_MOD_TM, tm->fecrate, PHY_PB_SIZE_520, tm->bits_per_symbol);
+ tm->phy_combo_params[PHY_PB_SIZE_136] =
+ PHY_COMBO_PARAMS (PHY_MOD_TM, tm->fecrate, PHY_PB_SIZE_136);
+ tm->phy_combo_params[PHY_PB_SIZE_520] =
+ PHY_COMBO_PARAMS (PHY_MOD_TM, tm->fecrate, PHY_PB_SIZE_520);
}
tonemaps_t *
diff --git a/cesar/mac/common/src/tonemask.c b/cesar/mac/common/src/tonemask.c
index a3e31550c8..f7018a6fcc 100644
--- a/cesar/mac/common/src/tonemask.c
+++ b/cesar/mac/common/src/tonemask.c
@@ -76,6 +76,10 @@ tonemask_update (tonemask_info_t *ti)
tm->bits_per_pb[robo_pb_size[m]] =
tonemap_bits_per_pb (m, PHY_FEC_RATE_1_2, robo_pb_size[m],
tm->bits_per_symbol);
+ tm->phy_combo_params[PHY_PB_SIZE_136] = 0;
+ tm->phy_combo_params[PHY_PB_SIZE_520] = 0;
+ tm->phy_combo_params[robo_pb_size[m]] =
+ PHY_COMBO_PARAMS (m, tm->fecrate, robo_pb_size[m]);
}
}
diff --git a/cesar/mac/common/test/tonemap/src/test_tonemap.c b/cesar/mac/common/test/tonemap/src/test_tonemap.c
index 84f809a31f..bb8dc436a5 100644
--- a/cesar/mac/common/test/tonemap/src/test_tonemap.c
+++ b/cesar/mac/common/test/tonemap/src/test_tonemap.c
@@ -290,6 +290,12 @@ tonemap_comp_test_case (test_t t)
tonemap_bits_per_pb (
PHY_MOD_TM, tm.fecrate, PHY_PB_SIZE_520,
tm.bits_per_symbol));
+ test_fail_unless (tm.phy_combo_params[PHY_PB_SIZE_136] ==
+ PHY_COMBO_PARAMS (PHY_MOD_TM, tm.fecrate,
+ PHY_PB_SIZE_136));
+ test_fail_unless (tm.phy_combo_params[PHY_PB_SIZE_520] ==
+ PHY_COMBO_PARAMS (PHY_MOD_TM, tm.fecrate,
+ PHY_PB_SIZE_520));
} test_end;
}
@@ -370,6 +376,7 @@ tonemap_tonemask_test_case (test_t t)
tonemap_t *tm = &ti.tonemap_robo[mod];
uint bits_per_symbol;
uint bits_per_pb_136 = 0, bits_per_pb_520 = 0;
+ u32 phy_combo_params_136 = 0, phy_combo_params_520 = 0;
u8 ble;
switch (mod)
{
@@ -379,6 +386,9 @@ tonemap_tonemask_test_case (test_t t)
CONST_UF32 (0.0), PHY_GIL_417);
bits_per_pb_520 = (520 * 8 * 2 + bits_per_symbol - 1)
/ bits_per_symbol * bits_per_symbol;
+ phy_combo_params_520 =
+ PHY_COMBO_PARAMS (PHY_MOD_ROBO, PHY_FEC_RATE_1_2,
+ PHY_PB_SIZE_520);
break;
case PHY_MOD_HS_ROBO:
bits_per_symbol = carrier_nb / 2 * 2;
@@ -386,6 +396,9 @@ tonemap_tonemask_test_case (test_t t)
CONST_UF32 (0.0), PHY_GIL_417);
bits_per_pb_520 = (520 * 8 * 2 + bits_per_symbol - 1)
/ bits_per_symbol * bits_per_symbol;
+ phy_combo_params_520 =
+ PHY_COMBO_PARAMS (PHY_MOD_HS_ROBO, PHY_FEC_RATE_1_2,
+ PHY_PB_SIZE_520);
break;
case PHY_MOD_MINI_ROBO:
bits_per_symbol = carrier_nb / 5 * 2;
@@ -393,6 +406,9 @@ tonemap_tonemask_test_case (test_t t)
CONST_UF32 (0.0), PHY_GIL_567);
bits_per_pb_136 = (136 * 8 * 2 + bits_per_symbol - 1)
/ bits_per_symbol * bits_per_symbol;
+ phy_combo_params_136 =
+ PHY_COMBO_PARAMS (PHY_MOD_MINI_ROBO, PHY_FEC_RATE_1_2,
+ PHY_PB_SIZE_136);
break;
default:
dbg_assert_default ();
@@ -409,6 +425,10 @@ tonemap_tonemask_test_case (test_t t)
bits_per_pb_136
&& tm->bits_per_pb[PHY_PB_SIZE_520] ==
bits_per_pb_520
+ && tm->phy_combo_params[PHY_PB_SIZE_136] ==
+ phy_combo_params_136
+ && tm->phy_combo_params[PHY_PB_SIZE_520] ==
+ phy_combo_params_520
);
}
} test_end;
diff --git a/cesar/mac/common/tonemap.h b/cesar/mac/common/tonemap.h
index 9ef8d09a75..ac82e5db0d 100644
--- a/cesar/mac/common/tonemap.h
+++ b/cesar/mac/common/tonemap.h
@@ -167,6 +167,8 @@ struct tonemap_t
uint bits_per_symbol;
/** Number of bits per PB. */
uint bits_per_pb[PHY_PB_SIZE_NONE];
+ /** Phy parameters (modulation, FEC rate, PB size). */
+ u32 phy_combo_params[PHY_PB_SIZE_NONE];
/**
* Tone map marked as released.
* This flag is used in the CE RX. When the CE RX decides to stop using a