Add HR demapping
This commit is contained in:
parent
7fb1738cd8
commit
3e2f883ba0
|
@ -3,16 +3,41 @@
|
|||
<name>TCH/F Demapper</name>
|
||||
<key>gsm_tch_f_chans_demapper</key>
|
||||
<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>
|
||||
<name>timeslot_nr</name>
|
||||
<name>Timeslot</name>
|
||||
<key>timeslot_nr</key>
|
||||
<value>2</value>
|
||||
<type>int</type>
|
||||
<hide>part</hide>
|
||||
</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>
|
||||
<name>bursts</name>
|
||||
<type>message</type>
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace gr {
|
|||
* class. gsm::tch_f_chans_demapper::make is the public interface for
|
||||
* 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
|
||||
|
|
|
@ -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,
|
||||
pmt::pmt_t *d_bursts_sacch,
|
||||
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)
|
||||
{
|
||||
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,
|
||||
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)
|
||||
{
|
||||
bool frames_are_consecutive = true;
|
||||
if (fn_mod13 == 12)
|
||||
{
|
||||
|
|
|
@ -32,6 +32,8 @@ namespace gr {
|
|||
{
|
||||
private:
|
||||
unsigned int d_timeslot;
|
||||
int d_tch_type;
|
||||
int d_tch_h_channel;
|
||||
// Downlink
|
||||
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
|
||||
|
@ -49,7 +51,7 @@ namespace gr {
|
|||
uint32_t d_frame_numbers[3][8], pmt::pmt_t msg_out);
|
||||
|
||||
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();
|
||||
|
||||
void filter_tch_chans(pmt::pmt_t msg);
|
||||
|
|
Loading…
Reference in New Issue