diff --git a/lib/flow_control/burst_sdcch_subslot_filter_impl.cc b/lib/flow_control/burst_sdcch_subslot_filter_impl.cc index 9f27fcd..33e67b8 100644 --- a/lib/flow_control/burst_sdcch_subslot_filter_impl.cc +++ b/lib/flow_control/burst_sdcch_subslot_filter_impl.cc @@ -30,6 +30,14 @@ #include #include +static const int8_t subslots_sdcch4[102] = { + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1 +}; +static const int8_t subslots_sdcch8[102] = { + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1,-1, + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,-1,-1,-1 +}; namespace gr { namespace gsm { @@ -49,7 +57,8 @@ namespace gr { gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)), d_mode(mode), - d_subslot(subslot) + d_subslots_sdcch4(subslots_sdcch4), + d_subslots_sdcch8(subslots_sdcch8) { message_port_register_in(pmt::mp("in")); message_port_register_out(pmt::mp("out")); diff --git a/lib/flow_control/burst_sdcch_subslot_filter_impl.h b/lib/flow_control/burst_sdcch_subslot_filter_impl.h index 05038d7..0f2bbe3 100644 --- a/lib/flow_control/burst_sdcch_subslot_filter_impl.h +++ b/lib/flow_control/burst_sdcch_subslot_filter_impl.h @@ -33,14 +33,8 @@ namespace gr { private: // hardcoded subslots of the channels, both SDCCH and the associated SACCH // -1 means that the particular position in the frame is not SDCCH - const int8_t d_subslots_sdcch4[102] = { - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1 - }; - const int8_t d_subslots_sdcch8[102] = { - 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1,-1, - 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,-1,-1,-1 - }; + const int8_t * const d_subslots_sdcch4; + const int8_t * const d_subslots_sdcch8; subslot_filter_mode d_mode; unsigned int d_subslot; public: diff --git a/lib/flow_control/burst_sdcch_subslot_splitter_impl.cc b/lib/flow_control/burst_sdcch_subslot_splitter_impl.cc index 260fe11..9774eaa 100644 --- a/lib/flow_control/burst_sdcch_subslot_splitter_impl.cc +++ b/lib/flow_control/burst_sdcch_subslot_splitter_impl.cc @@ -30,6 +30,15 @@ #include #include +static const int8_t subslots_sdcch4[102] = { + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1 +}; +static const int8_t subslots_sdcch8[102] = { + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1,-1, + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,-1,-1,-1 +}; + namespace gr { namespace gsm { @@ -48,7 +57,9 @@ namespace gr { : gr::block("burst_sdcch_subslot_splitter", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)), - d_mode(mode) + d_mode(mode), + d_subslots_sdcch4(subslots_sdcch4), + d_subslots_sdcch8(subslots_sdcch8) { message_port_register_in(pmt::mp("in")); diff --git a/lib/flow_control/burst_sdcch_subslot_splitter_impl.h b/lib/flow_control/burst_sdcch_subslot_splitter_impl.h index 58aff96..d68adce 100644 --- a/lib/flow_control/burst_sdcch_subslot_splitter_impl.h +++ b/lib/flow_control/burst_sdcch_subslot_splitter_impl.h @@ -33,14 +33,8 @@ namespace gr { private: // hardcoded subslots of the channels, both SDCCH and the associated SACCH // -1 means that the particular position in the frame is not SDCCH - const int8_t d_subslots_sdcch4[102] = { - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 1, 1, 1, 1,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1, 2, 2, 2, 2, 3, 3, 3, 3,-1 - }; - const int8_t d_subslots_sdcch8[102] = { - 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,-1,-1,-1, - 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,-1,-1,-1 - }; + const int8_t * const d_subslots_sdcch4; + const int8_t * const d_subslots_sdcch8; splitter_mode d_mode; public: burst_sdcch_subslot_splitter_impl(splitter_mode mode);