[linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support

BOUWSMA Barry freebeer.bouwsma at gmail.com
Wed Nov 12 14:20:24 CET 2008


On Wed, 12 Nov 2008, Alex Betis wrote:

> > +if (tn.modulation & 0x04) {
> > +       printf("  DVB-S2");
> > +  if ((tn.modulation & 0x03) == 0x01) printf (" QPSK");
> > +  if ((tn.modulation & 0x03) == 0x02) printf (" 8PSK");

> I must be missing something... How this code is aligned to the following
> modulation enumeration?
> QPSK enumeration has value 0, 8PSK value 9.

I don't think it is; it's based on parsing the NIT tables.

Now that I look more at my code, this part of which was
hacked many months ago and which has since passed from my
conscious memory (damn you, beer, solution to and cause of
all my problems), the following code snippets appear to be
needed for context.  Sorry, I honestly can't remember what
I needed to hack into dvb-apps/scan to get this, and what
was already present but unused...

@@ -143,6 +150,7 @@
        unsigned int wrong_frequency      : 1;  /* DVB-T with other_frequency_flag */
        int n_other_f;
        uint32_t *other_f;                      /* DVB-T freqeuency-list descriptor */
+       int modulation; /* XXX HACK */
 };



@@ -433,6 +449,7 @@
                                                         buf[10],
                                                         buf[11],
                                                         buf[12] & 
0xf0);
+       t->modulation = buf[8] & 0x07;

        t->polarisation = (buf[8] >> 5) & 0x03;
        t->param.inversion = spectral_inversion;



Sorry for the omission.  Even though I did sleep twelve
hours last night, it hasn't made up for only sleeping
two to three hours nightly for the past weeks...


Unfortunately, a hex dump of the NIT data isn't so easy
to follow, but here's a short example of how `dvbsnoop'
spews out data for one select transponder from the tables:

                  Frequency: 19234969 (=  12.58099 GHz)
                  Orbital_position: 402 (=  19.2)
                  West_East_flag: 1 (0x01)  [= EAST]
                  Polarisation: 1 (0x01)  [= linear - vertical]
                  Kind: 1 (0x01)  [= DVB-S2]
                  Roll Off Faktor: 0 (0x00)  [= Alpha 0.35]
                  Modulation_type: 2 (0x02)  [= 8PSK]
                  Symbol_rate: 2228224 (=  22.0000)
                  FEC_inner: 2 (0x02)  [= 2/3 conv. code rate]


baryr bouwsma



More information about the linux-dvb mailing list