Add HR demapping
This commit is contained in:
parent
7fb1738cd8
commit
3e2f883ba0
|
@ -3,16 +3,41 @@
|
||||||
<name>TCH/F Demapper</name>
|
<name>TCH/F Demapper</name>
|
||||||
<key>gsm_tch_f_chans_demapper</key>
|
<key>gsm_tch_f_chans_demapper</key>
|
||||||
<import>import grgsm</import>
|
<import>import grgsm</import>
|
||||||
<make>grgsm.tch_f_chans_demapper($timeslot_nr)</make>
|
<make>grgsm.tch_f_chans_demapper($timeslot_nr, $tch_type, $tch_h_channel)</make>
|
||||||
|
|
||||||
<param>
|
<param>
|
||||||
<name>timeslot_nr</name>
|
<name>Timeslot</name>
|
||||||
<key>timeslot_nr</key>
|
<key>timeslot_nr</key>
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
<type>int</type>
|
<type>int</type>
|
||||||
<hide>part</hide>
|
<hide>part</hide>
|
||||||
</param>
|
</param>
|
||||||
|
|
||||||
|
<param>
|
||||||
|
<name>TCH Type</name>
|
||||||
|
<key>tch_type</key>
|
||||||
|
<value>0</value>
|
||||||
|
<type>int</type>
|
||||||
|
<hide>part</hide>
|
||||||
|
<option>
|
||||||
|
<name>Full rate</name>
|
||||||
|
<key>0</key>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>Half rate</name>
|
||||||
|
<key>1</key>
|
||||||
|
</option>
|
||||||
|
</param>
|
||||||
|
|
||||||
|
<param>
|
||||||
|
<name>TCH/H Channel</name>
|
||||||
|
<key>tch_h_channel</key>
|
||||||
|
<value>0</value>
|
||||||
|
<type>int</type>
|
||||||
|
<hide>#if $tch_type() == 0 then 'all' else 'none'#</hide>
|
||||||
|
</param>
|
||||||
|
<check>$tch_h_channel() > -1 and $tch_h_channel() < 2</check>
|
||||||
|
|
||||||
<sink>
|
<sink>
|
||||||
<name>bursts</name>
|
<name>bursts</name>
|
||||||
<type>message</type>
|
<type>message</type>
|
||||||
|
|
|
@ -48,7 +48,7 @@ namespace gr {
|
||||||
* class. gsm::tch_f_chans_demapper::make is the public interface for
|
* class. gsm::tch_f_chans_demapper::make is the public interface for
|
||||||
* creating new instances.
|
* creating new instances.
|
||||||
*/
|
*/
|
||||||
static sptr make(unsigned int timeslot_nr);
|
static sptr make(unsigned int timeslot_nr, int tch_type, int tch_h_channel);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace gsm
|
} // namespace gsm
|
||||||
|
|
|
@ -109,11 +109,11 @@ namespace gr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void tch_f_chans_demapper_impl::sacch_tch_demapper(uint32_t fn_mod13, uint32_t fn_mod26, uint32_t frame_nr,
|
void tch_f_chans_demapper_impl::sacch_tch_demapper(uint32_t fn_mod13, u_int32_t fn_mod26, uint32_t frame_nr,
|
||||||
pmt::pmt_t *d_bursts_sacch,
|
pmt::pmt_t *d_bursts_sacch,
|
||||||
uint32_t *d_frame_numbers_sacch, pmt::pmt_t d_bursts[3][8],
|
uint32_t *d_frame_numbers_sacch, pmt::pmt_t d_bursts[3][8],
|
||||||
uint32_t d_frame_numbers[3][8], pmt::pmt_t msg_out)
|
uint32_t d_frame_numbers[3][8], pmt::pmt_t msg_out)
|
||||||
{
|
{
|
||||||
bool frames_are_consecutive = true;
|
bool frames_are_consecutive = true;
|
||||||
if (fn_mod13 == 12)
|
if (fn_mod13 == 12)
|
||||||
{
|
{
|
||||||
|
|
|
@ -32,6 +32,8 @@ namespace gr {
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
unsigned int d_timeslot;
|
unsigned int d_timeslot;
|
||||||
|
int d_tch_type;
|
||||||
|
int d_tch_h_channel;
|
||||||
// Downlink
|
// Downlink
|
||||||
uint32_t d_frame_numbers_dl[3][8]; // for checking consecutive frame numbers of tch
|
uint32_t d_frame_numbers_dl[3][8]; // for checking consecutive frame numbers of tch
|
||||||
uint32_t d_frame_numbers_sacch_dl[4]; // for checking consecutive frame numbers of sacch
|
uint32_t d_frame_numbers_sacch_dl[4]; // for checking consecutive frame numbers of sacch
|
||||||
|
@ -49,7 +51,7 @@ namespace gr {
|
||||||
uint32_t d_frame_numbers[3][8], pmt::pmt_t msg_out);
|
uint32_t d_frame_numbers[3][8], pmt::pmt_t msg_out);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
tch_f_chans_demapper_impl(unsigned int timeslot_nr);
|
tch_f_chans_demapper_impl(unsigned int timeslot_nr, int tch_type, int tch_h_channel);
|
||||||
~tch_f_chans_demapper_impl();
|
~tch_f_chans_demapper_impl();
|
||||||
|
|
||||||
void filter_tch_chans(pmt::pmt_t msg);
|
void filter_tch_chans(pmt::pmt_t msg);
|
||||||
|
|
Loading…
Reference in New Issue