* [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
@ 2008-11-12 2:31 Hans Werner
2008-11-12 6:46 ` Goga777
` (2 more replies)
0 siblings, 3 replies; 20+ messages in thread
From: Hans Werner @ 2008-11-12 2:31 UTC (permalink / raw)
To: linux-dvb, alex.betis
[-- Attachment #1: Type: text/plain, Size: 831 bytes --]
I have attached two patches for scan-s2 at http://mercurial.intuxication.org/hg/scan-s2.
Patch1: Some fixes for problems I found. QAM_AUTO is not supported by all drivers,
in particular the HVR-4000, so one needs to use QPSK as the default and ensure that
settings are parsed properly from the network information -- the new S2 FECs and
modulations were not handled.
Patch2: Add DiSEqC 1.2 rotor support. Use it like this to move the dish to the correct
position for the scan:
scan-s2 -r 19.2E -n dvb-s/Astra-19.2E
or
scan-s2 -R 2 -n dvb-s/Astra-19.2E
A file (rotor.conf) listing the rotor positions is used (NB: rotors vary -- do check your
rotor manual).
Regards,
Hans
--
Release early, release often.
Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten
Browser-Versionen downloaden: http://www.gmx.net/de/go/browser
[-- Attachment #2: patch1_qpsk_default.diff --]
[-- Type: text/x-patch, Size: 2781 bytes --]
diff -r 40368fdba59a scan.c
--- a/scan.c
+++ b/scan.c
@@ -393,25 +397,32 @@ static void parse_s2_satellite_delivery_
static void parse_satellite_delivery_system_descriptor (const unsigned char *buf, struct transponder *t)
{
- static const fe_code_rate_t fec_tab [8] = {
- FEC_AUTO, FEC_1_2, FEC_2_3, FEC_3_4,
- FEC_5_6, FEC_7_8, FEC_NONE, FEC_NONE
- };
-
if (!t) {
warning("satellite_delivery_system_descriptor outside transport stream definition (ignored)\n");
return;
}
- if(((buf[8] >> 1) & 0x01) == 0) {
- t->delivery_system = SYS_DVBS;
- }
- else {
- t->delivery_system = SYS_DVBS2;
+ switch ( getBits(buf,69,1) ) {
+ case 0: t->delivery_system = SYS_DVBS; break;
+ case 1: t->delivery_system = SYS_DVBS2; break;
}
t->frequency = 10 * bcd32_to_cpu (buf[2], buf[3], buf[4], buf[5]);
- t->fec = fec_tab[buf[12] & 0x07];
+
+ switch ( getBits(buf,100,4) ) {
+ case 0 : t->fec = FEC_AUTO; break;
+ case 1 : t->fec = FEC_1_2; break;
+ case 2 : t->fec = FEC_2_3; break;
+ case 3 : t->fec = FEC_3_4; break;
+ case 4 : t->fec = FEC_5_6; break;
+ case 5 : t->fec = FEC_7_8; break;
+ case 6 : t->fec = FEC_8_9; break;
+ case 7 : t->fec = FEC_3_5; break;
+ case 8 : t->fec = FEC_4_5; break;
+ case 9 : t->fec = FEC_9_10; break;
+ case 15 : t->fec = FEC_NONE; break;
+ }
+
t->symbol_rate = 10 * bcd32_to_cpu (buf[9], buf[10], buf[11], buf[12] & 0xf0);
t->inversion = spectral_inversion;
@@ -419,6 +430,13 @@ static void parse_satellite_delivery_sys
t->polarisation = (buf[8] >> 5) & 0x03;
t->orbital_pos = bcd32_to_cpu (0x00, 0x00, buf[6], buf[7]);
t->we_flag = buf[8] >> 7;
+
+ switch ( getBits(buf,70,2) ) {
+ case 0 : t->modulation = QAM_AUTO; break;
+ case 1 : t->modulation = QPSK; break;
+ case 2 : t->modulation = PSK_8; break;
+ case 3 : t->modulation = QAM_16; break;
+ }
if (verbosity >= 5) {
debug("%#04x/%#04x ", t->network_id, t->transport_stream_id);
@@ -1858,7 +1892,7 @@ struct strtab qamtab[] = {
static enum fe_modulation str2qam(const char *qam)
{
- return str2enum(qam, qamtab, QAM_AUTO);
+ return str2enum(qam, qamtab, QPSK);
}
static const char* qam2str(enum fe_modulation qam)
@@ -1968,8 +2074,8 @@ static int tune_initial (int frontend_fd
else if (sscanf(buf, "S %u %1[HVLR] %u %4s %4s %6s\n", &f, pol, &sr, fec, rolloff, qam) >= 3) {
t = alloc_transponder(f);
t->delivery_system = SYS_DVBS;
- t->modulation = QAM_AUTO;
- t->rolloff = ROLLOFF_AUTO;
+ t->modulation = QPSK;
+ t->rolloff = ROLLOFF_35;
t->fec = FEC_AUTO;
switch(pol[0])
{
[-- Attachment #3: patch2_add_diseqc_rotor.diff --]
[-- Type: text/x-patch, Size: 8899 bytes --]
diff -r 40368fdba59a diseqc.c
--- a/diseqc.c
+++ b/diseqc.c
@@ -45,6 +45,77 @@ struct diseqc_cmd uncommitted_switch_cmd
};
/*--------------------------------------------------------------------------*/
+
+#define DISEQC_X 2
+int rotor_command( int frontend_fd, int cmd, int n1, int n2, int n3 )
+{
+ int err;
+ struct dvb_diseqc_master_cmd cmds[] = {
+ { { 0xe0, 0x31, 0x60, 0x00, 0x00, 0x00 }, 3 }, //0 Stop Positioner movement
+ { { 0xe0, 0x31, 0x63, 0x00, 0x00, 0x00 }, 3 }, //1 Disable Limits
+ { { 0xe0, 0x31, 0x66, 0x00, 0x00, 0x00 }, 3 }, //2 Set East Limit
+ { { 0xe0, 0x31, 0x67, 0x00, 0x00, 0x00 }, 3 }, //3 Set West Limit
+ { { 0xe0, 0x31, 0x68, 0x00, 0x00, 0x00 }, 4 }, //4 Drive Motor East continously
+ { { 0xe0, 0x31, 0x68,256-n1,0x00, 0x00 }, 4 }, //5 Drive Motor East nn steps
+ { { 0xe0, 0x31, 0x69,256-n1,0x00, 0x00 }, 4 }, //6 Drive Motor West nn steps
+ { { 0xe0, 0x31, 0x69, 0x00, 0x00, 0x00 }, 4 }, //7 Drive Motor West continously
+ { { 0xe0, 0x31, 0x6a, n1, 0x00, 0x00 }, 4 }, //8 Store nn
+ { { 0xe0, 0x31, 0x6b, n1, 0x00, 0x00 }, 4 }, //9 Goto nn
+ { { 0xe0, 0x31, 0x6f, n1, n2, n3 }, 4}, //10 Recalculate Position
+ { { 0xe0, 0x31, 0x6a, 0x00, 0x00, 0x00 }, 4 }, //11 Enable Limits
+ { { 0xe0, 0x31, 0x6e, n1, n2, 0x00 }, 5 }, //12 Gotoxx
+ { { 0xe0, 0x10, 0x38, 0xF4, 0x00, 0x00 }, 4 } //13 User
+ };
+
+ int i;
+ for ( i=0; i<DISEQC_X; ++i ) {
+ usleep(15*1000);
+ if ( err = ioctl( frontend_fd, FE_DISEQC_SEND_MASTER_CMD, &cmds[cmd] ) )
+ error("rotor_command: FE_DISEQC_SEND_MASTER_CMD failed, err=%i\n",err);
+ }
+ return err;
+}
+
+int rotate_rotor (int frontend_fd, int from_rotor_pos, int to_rotor_pos, int voltage_18){
+ /* Rotate a DiSEqC 1.2 rotor from position from_rotor_pos to position to_rotor_pos */
+ /* Uses Goto nn (command 9) */
+ float rotor_wait_time; //seconds
+ int err=0;
+
+ float speed_13V = 1.5; //degrees per second
+ float speed_18V = 2.4; //degrees per second
+ float degreesmoved,a1,a2;
+
+ if (to_rotor_pos != 0) {
+ if (from_rotor_pos != to_rotor_pos) {
+ info("Moving rotor from position %i to position %i\n",from_rotor_pos,to_rotor_pos);
+ if (from_rotor_pos == 0) {
+ rotor_wait_time = 15; // starting from unknown position
+ } else {
+ a1 = rotor_angle(to_rotor_pos);
+ a2 = rotor_angle(from_rotor_pos);
+ degreesmoved = abs(a1-a2);
+ if (degreesmoved>180) degreesmoved=360-degreesmoved;
+ rotor_wait_time = degreesmoved / (voltage_18 ? speed_18V : speed_13V);
+ }
+ err = rotor_command(frontend_fd, 9, to_rotor_pos, 0, 0);
+ if (err) {
+ info("Rotor move error!\n");
+ } else {
+ int i;
+ info("Rotating");
+ for (i=0; i<10; i++){
+ usleep(rotor_wait_time*100000);
+ info(".");
+ }
+ info("completed.\n");
+ }
+ } else {
+ info("Rotor already at position %i\n", from_rotor_pos);
+ }
+ }
+ return err;
+}
static inline void msleep(uint32_t msec)
{
diff -r 40368fdba59a diseqc.h
--- a/diseqc.h
+++ b/diseqc.h
@@ -17,6 +17,7 @@ extern int diseqc_send_msg (int fd, fe_s
* set up the switch to position/voltage/tone
*/
extern int setup_switch (int frontend_fd, int switch_pos, int voltage_18, int freq, int uncommitted_switch_pos);
+extern int rotate_rotor (int frontend_fd, int from_rotor_pos, int to_rotor_pos, int voltage_18);
#endif
diff -r 40368fdba59a scan.c
--- a/scan.c
+++ b/scan.c
@@ -84,10 +84,14 @@ static fe_spectral_inversion_t spectral_
static fe_spectral_inversion_t spectral_inversion = INVERSION_AUTO;
static int switch_pos = 0;
static int uncommitted_switch_pos = 0;
+static int rotor_pos = 0;
+static int curr_rotor_pos = 0;
+static char rotor_pos_name[16] = "";
static char override_orbital_pos[16] = "";
static enum format output_format = OUTPUT_VDR;
static int output_format_set = 0;
+static rotorslot_t rotor[49];
struct section_buf {
struct list_head list;
@@ -1569,6 +1587,22 @@ static int __tune_to_transponder (int fr
if (verbosity >= 2) {
dprintf(1,"DVB-S IF freq is %d\n", if_freq);
}
+
+
+ if (rotor_pos != 0 ) {
+ /* Rotate DiSEqC 1.2 rotor to correct orbital position */
+ if (t->orbital_pos!=0) rotor_pos = rotor_nn(t->orbital_pos, t->we_flag);
+ int err;
+ err = rotate_rotor( frontend_fd,
+ curr_rotor_pos,
+ rotor_pos,
+ t->polarisation == POLARISATION_VERTICAL ? 0 : 1);
+ if (err)
+ error("Error in rotate_rotor err=%i\n",err);
+ else
+ curr_rotor_pos = rotor_pos;
+ }
+
break;
case SYS_DVBT:
@@ -1939,6 +1973,78 @@ static const char* hier2str(enum fe_hier
return enum2str(hier, hiertab, "???");
}
+static int read_rotor_conf(const char *rotor_conf)
+{
+ FILE *rotor_conf_fd;
+ unsigned int nn;
+ char buf[200], angle_we[20], angle[20], we[2];
+ int i = -1;
+ rotor_conf_fd = fopen (rotor_conf, "r");
+ if (!rotor_conf_fd){
+ error("Cannot open rotor configuration file '%s'.");
+ return errno;
+ }
+ while (fgets(buf, sizeof(buf), rotor_conf_fd)) {
+ if (buf[0] != '#' && buf[0] != '\n') {
+ if (sscanf(buf, "%u %s\n", &nn, angle_we)==2) {
+ i++;
+ rotor[i].nn = nn;
+ strcpy(rotor[i].angle_we,angle_we);
+ strncpy(angle,angle_we,strlen(angle_we)-1);
+ rotor[i].orbital_pos = atof(angle) * 10;
+ strncpy(we,angle_we+strlen(angle_we)-1,1);
+ we[1]='\0';
+ rotor[i].we_flag = (strcmp(we,"W")==0 || strcmp(we,"w")==0) ? 0 : 1;
+ //info("rotor: i=%i, nn=%i, orbital_pos=%i we_flag=%i\n",
+ // i, rotor[i].nn, rotor[i].orbital_pos, rotor[i].we_flag);
+ }
+ }
+ }
+ fclose(rotor_conf_fd);
+ return 0;
+}
+
+int rotor_nn(int orbital_pos, int we_flag){
+ /*given say 192,1 return the position number*/
+ int i;
+ for (i=0; i<49; i++){
+ if (rotor[i].orbital_pos == orbital_pos && rotor[i].we_flag == we_flag) {
+ return rotor[i].nn;
+ }
+ }
+ error("rotor_nn: orbital_pos=%i, we_flag=%i not found.\n", orbital_pos, we_flag);
+ return 0;
+}
+
+int rotor_name2nn(char *angle_we){
+ /*given say '19.2E' return the position number*/
+ int i;
+ for (i=0; i<49; i++){
+ if (strcmp(rotor[i].angle_we, angle_we) == 0) {
+ return rotor[i].nn;
+ }
+ }
+ error("rotor_name2nn: '%s' not found.\n", angle_we);
+ return 0;
+}
+
+float rotor_angle(int nn) {
+ /*given nn, return the angle in 0.0-359.9 range (1=1.0E, 359=1.0W) */
+ int i;
+ float angle;
+ for (i=0; i<49; i++){
+ if (rotor[i].nn == nn) {
+ if(rotor[i].we_flag == 0) //west
+ angle = 360.00 - rotor[i].orbital_pos / 10;
+ else //east
+ angle = rotor[i].orbital_pos / 10;
+ return angle;
+ }
+ }
+ error("rotor_angle: nn=%i not found",nn);
+ return -999;
+}
+
static int tune_initial (int frontend_fd, const char *initial)
{
FILE *inif;
@@ -2353,6 +2459,8 @@ static const char *usage = "\n"
" -d N use DVB /dev/dvb/adapter?/demuxN\n"
" -s N use DiSEqC switch position N (DVB-S only)\n"
" -S N use DiSEqC uncommitted switch position N (DVB-S only)\n"
+" -r sat move DiSEqC rotor to satellite location, e.g. '13.0E' or '1.0W'\n"
+" -R N move DiSEqC rotor to position number N\n"
" -i N spectral inversion setting (0: off, 1: on, 2: auto [default])\n"
" -n evaluate NIT messages for full network scan (slow!)\n"
" -5 multiply all filter timeouts by factor 5\n"
@@ -2431,7 +2539,7 @@ int main (int argc, char **argv)
/* start with default lnb type */
lnb_type = *lnb_enum(0);
- while ((opt = getopt(argc, argv, "5cnpa:f:d:O:k:I:S:s:o:x:t:i:l:vquPA:U")) != -1) {
+ while ((opt = getopt(argc, argv, "5cnpa:f:d:O:k:I:S:s:r:R:o:x:t:i:l:vquPA:U")) != -1) {
switch (opt)
{
case 'a':
@@ -2474,6 +2582,14 @@ int main (int argc, char **argv)
case 'S':
uncommitted_switch_pos = strtoul(optarg, NULL, 0);
+ break;
+
+ case 'r':
+ strncpy(rotor_pos_name,optarg,sizeof(rotor_pos_name)-1);
+ break;
+
+ case 'R':
+ rotor_pos = strtoul(optarg, NULL, 0);
break;
case 'O':
@@ -2567,6 +2683,16 @@ int main (int argc, char **argv)
fprintf (stderr, "uncommitted_switch position needs to be < 16!\n");
return -1;
}
+
+ read_rotor_conf("rotor.conf");
+ if (strlen(rotor_pos_name)>0){
+ rotor_pos=rotor_name2nn(rotor_pos_name);
+ if (rotor_pos == 0){
+ fprintf(stderr,"Rotor position '%s' not found. Check config.",rotor_pos_name);
+ return -1;
+ }
+ }
+
if (initial)
info("scanning %s\n", initial);
diff -r 40368fdba59a scan.h
--- a/scan.h
+++ b/scan.h
@@ -103,6 +103,12 @@ typedef struct transponder {
uint32_t *other_f; /* DVB-T freqeuency-list descriptor */
} transponder_t;
+typedef struct rotorslot {
+ unsigned int nn;
+ int orbital_pos; // 192 degrees*10
+ unsigned int we_flag; // 0=W, 1=E
+ char angle_we[8]; // '19.2E'
+} rotorslot_t;
#endif
[-- Attachment #4: rotor.conf --]
[-- Type: text/plain, Size: 200 bytes --]
# rotor.conf
# diseqc_position_number orbital_position
1 13.0E
2 19.2E
3 16.0E
4 10.0E
5 7.0E
6 5.0E
7 3.0E
10 8.0W
11 18.0W
13 27.5W
16 23.5E
17 26.0E
19 28.2E
26 1.0W
27 7.0W
28 12.5W
[-- Attachment #5: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 2:31 [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support Hans Werner
@ 2008-11-12 6:46 ` Goga777
2008-11-12 10:21 ` Per Heldal
2008-11-12 11:51 ` Hans Werner
2008-11-12 10:43 ` Alex Betis
2008-11-12 20:56 ` Alex Betis
2 siblings, 2 replies; 20+ messages in thread
From: Goga777 @ 2008-11-12 6:46 UTC (permalink / raw)
To: Hans Werner; +Cc: linux-dvb
> I have attached two patches for scan-s2 at http://mercurial.intuxication.org/hg/scan-s2.
>
> Patch1: Some fixes for problems I found. QAM_AUTO is not supported by all drivers,
> in particular the HVR-4000, so one needs to use QPSK as the default and ensure that
> settings are parsed properly from the network information -- the new S2 FECs and
> modulations were not handled.
>
> Patch2: Add DiSEqC 1.2 rotor support. Use it like this to move the dish to the correct
> position for the scan:
> scan-s2 -r 19.2E -n dvb-s/Astra-19.2E
> or
> scan-s2 -R 2 -n dvb-s/Astra-19.2E
>
> A file (rotor.conf) listing the rotor positions is used (NB: rotors vary -- do check your
> rotor manual).
thanks for your patch.
btw - could you scan dvb-s2 (qpsk & 8psk) channels with scan-s2 and hvr4000 ? with which drivers ?
Goga
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 6:46 ` Goga777
@ 2008-11-12 10:21 ` Per Heldal
2008-11-12 10:44 ` Alex Betis
2008-11-12 11:51 ` Hans Werner
1 sibling, 1 reply; 20+ messages in thread
From: Per Heldal @ 2008-11-12 10:21 UTC (permalink / raw)
To: Goga777; +Cc: Hans Werner, linux-dvb
On Wed, 2008-11-12 at 09:46 +0300, Goga777 wrote:
> thanks for your patch.
>
> btw - could you scan dvb-s2 (qpsk & 8psk) channels with scan-s2 and
> hvr4000 ? with which drivers ?
>
I seem to be able to scan some transponders, but not all, using current
code from the repos at http://linuxtv.org/hg/v4l-dvb/ and
http://mercurial.intuxication.org/hg/scan-s2
I run scan-s2 on the following list of HD-transponders on 0.8w :
S 11938000 H 25000000 3/4 35 8PSK
S 12015000 H 30000000 3/4 35 8PSK
S 12130000 H 30000000 3/4 35 8PSK
S 12188000 V 25000000 3/4 35 8PSK
(a selection of transponders from
http://lyngsat.com/packages/canaldigital.html)
With rolloff set to AUTO scan-s2 will not lock to any transponder.
Instead it will appear to repeatedly re-scan sources on any transponder
the tuner previously was tuned to.
With rolloff set to 35 as above scan-s2 will lock and find channels on
both transponders with SR=25000000, but for the 2 in the middle with
SR=30000000 it simply repeats the channel-list of the previous
transponder. I've been playing with alternatives for rolloff and
modulation with no result.
--
Per Heldal - http://heldal.eml.cc/
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 2:31 [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support Hans Werner
2008-11-12 6:46 ` Goga777
@ 2008-11-12 10:43 ` Alex Betis
2008-11-12 11:24 ` BOUWSMA Barry
2008-11-12 12:39 ` Hans Werner
2008-11-12 20:56 ` Alex Betis
2 siblings, 2 replies; 20+ messages in thread
From: Alex Betis @ 2008-11-12 10:43 UTC (permalink / raw)
To: Hans Werner; +Cc: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 1394 bytes --]
On Wed, Nov 12, 2008 at 4:31 AM, Hans Werner <HWerner4@gmx.de> wrote:
> I have attached two patches for scan-s2 at
> http://mercurial.intuxication.org/hg/scan-s2.
>
> Patch1: Some fixes for problems I found. QAM_AUTO is not supported by all
> drivers,
> in particular the HVR-4000, so one needs to use QPSK as the default and
> ensure that
> settings are parsed properly from the network information -- the new S2
> FECs and
> modulations were not handled.
>
> Patch2: Add DiSEqC 1.2 rotor support. Use it like this to move the dish to
> the correct
> position for the scan:
> scan-s2 -r 19.2E -n dvb-s/Astra-19.2E
> or
> scan-s2 -R 2 -n dvb-s/Astra-19.2E
>
> A file (rotor.conf) listing the rotor positions is used (NB: rotors vary --
> do check your
> rotor manual).
>
I didn't check the diff files yet, will do it when I get home.
But I don't think QPSK should be used by default. I have a version already
where you can specify which scan mode you want to be performed DVB-S or
DVB-S2 by specifying S1 or S2 in freq file, also if you implicitly specify
QPSK in frequency file the utility will not scan DVB-S2, same logic also for
8PSK that will scan only DVB-S2 and will not try to scan DVB-S.
I'll push that version soon to the repository.
The default should stay the AUTO mode since there are cards that can handle
that and their owners might have simplified frequency file version.
[-- Attachment #1.2: Type: text/html, Size: 1808 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 10:21 ` Per Heldal
@ 2008-11-12 10:44 ` Alex Betis
0 siblings, 0 replies; 20+ messages in thread
From: Alex Betis @ 2008-11-12 10:44 UTC (permalink / raw)
To: Per Heldal; +Cc: Hans Werner, linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 1404 bytes --]
On Wed, Nov 12, 2008 at 12:21 PM, Per Heldal <heldal@eml.cc> wrote:
> On Wed, 2008-11-12 at 09:46 +0300, Goga777 wrote:
> > thanks for your patch.
> >
> > btw - could you scan dvb-s2 (qpsk & 8psk) channels with scan-s2 and
> > hvr4000 ? with which drivers ?
> >
>
> I seem to be able to scan some transponders, but not all, using current
> code from the repos at http://linuxtv.org/hg/v4l-dvb/ and
> http://mercurial.intuxication.org/hg/scan-s2
>
> I run scan-s2 on the following list of HD-transponders on 0.8w :
>
> S 11938000 H 25000000 3/4 35 8PSK
> S 12015000 H 30000000 3/4 35 8PSK
> S 12130000 H 30000000 3/4 35 8PSK
> S 12188000 V 25000000 3/4 35 8PSK
>
> (a selection of transponders from
> http://lyngsat.com/packages/canaldigital.html)
>
> With rolloff set to AUTO scan-s2 will not lock to any transponder.
> Instead it will appear to repeatedly re-scan sources on any transponder
> the tuner previously was tuned to.
>
> With rolloff set to 35 as above scan-s2 will lock and find channels on
> both transponders with SR=25000000, but for the 2 in the middle with
> SR=30000000 it simply repeats the channel-list of the previous
> transponder. I've been playing with alternatives for rolloff and
> modulation with no result.
>
The problem will probably be solved with new scan-s2, hopefully I'll have
time to update it today.
I'll send an update to the list when I'll update the repository.
[-- Attachment #1.2: Type: text/html, Size: 2022 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 10:43 ` Alex Betis
@ 2008-11-12 11:24 ` BOUWSMA Barry
2008-11-12 11:44 ` Ales Jurik
2008-11-12 12:08 ` Alex Betis
2008-11-12 12:39 ` Hans Werner
1 sibling, 2 replies; 20+ messages in thread
From: BOUWSMA Barry @ 2008-11-12 11:24 UTC (permalink / raw)
To: Alex Betis; +Cc: linux-dvb
Howdy, this is probably a stupid question, as I neither
have DVB-S2 hardware nor have attempted to use anything
but a rather hacked scan from dvb-apps, but...
On Wed, 12 Nov 2008, Alex Betis wrote:
> DVB-S2 by specifying S1 or S2 in freq file, also if you implicitly specify
> QPSK in frequency file the utility will not scan DVB-S2, same logic also for
> 8PSK that will scan only DVB-S2 and will not try to scan DVB-S.
(implicitly -> explicitly?)
I can see the logic for 8PSK=>DVB-S2, but as far as I
can see, QPSK does not imply purely DVB-S...
NIT result: 12324000 V 29500000 pos 28.2E FEC 3/4 DVB-S2 QPSK
one of eight such transponders, based on parsing the NIT
tables. Also, a note from my inital 19E2 scan file to
remind me why it failed:
S 11914500 h 27500 ## DVB-S2 QPSK (0x05)
May be no longer up-to-date.
Of course, if I'm misunderstanding, or failing to grasp
something obvious if I actually laid my hands on the
code, please feel free to slap me hard and tell me to
shove off.
thanks
barry bouwsma
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 11:24 ` BOUWSMA Barry
@ 2008-11-12 11:44 ` Ales Jurik
2008-11-12 12:08 ` Alex Betis
1 sibling, 0 replies; 20+ messages in thread
From: Ales Jurik @ 2008-11-12 11:44 UTC (permalink / raw)
To: linux-dvb
On Wednesday 12 of November 2008, BOUWSMA Barry wrote:
> I can see the logic for 8PSK=>DVB-S2, but as far as I
> can see, QPSK does not imply purely DVB-S...
> NIT result: 12324000 V 29500000 pos 28.2E FEC 3/4 DVB-S2 QPSK
> one of eight such transponders, based on parsing the NIT
> tables. Also, a note from my inital 19E2 scan file to
> remind me why it failed:
> S 11914500 h 27500 ## DVB-S2 QPSK (0x05)
> May be no longer up-to-date.
>
> Of course, if I'm misunderstanding, or failing to grasp
> something obvious if I actually laid my hands on the
> code, please feel free to slap me hard and tell me to
> shove off.
>
You are right, it is working for me with this two lines from channels.conf
(with vdr), both DVB-S2, QPSK:
ASTRA
HD+;BetaDigital:11914:hC910M2O35S1:S19.2E:27500:1279:0;1283=deu:0:0:131:133:6:0
HD Retail
Info;BSkyB:12324:vC34M2O35S1:S28.2E:29500:512:640=NAR;660=eng:2305:960,961,963:3801:2:2032:0
BR,
Ales
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 6:46 ` Goga777
2008-11-12 10:21 ` Per Heldal
@ 2008-11-12 11:51 ` Hans Werner
1 sibling, 0 replies; 20+ messages in thread
From: Hans Werner @ 2008-11-12 11:51 UTC (permalink / raw)
To: Goga777; +Cc: linux-dvb
> > I have attached two patches for scan-s2 at
> http://mercurial.intuxication.org/hg/scan-s2.
> >
> > Patch1: Some fixes for problems I found. QAM_AUTO is not supported by
> all drivers,
> > in particular the HVR-4000, so one needs to use QPSK as the default and
> ensure that
> > settings are parsed properly from the network information -- the new S2
> FECs and
> > modulations were not handled.
> >
> > Patch2: Add DiSEqC 1.2 rotor support. Use it like this to move the dish
> to the correct
> > position for the scan:
> > scan-s2 -r 19.2E -n dvb-s/Astra-19.2E
> > or
> > scan-s2 -R 2 -n dvb-s/Astra-19.2E
> >
> > A file (rotor.conf) listing the rotor positions is used (NB: rotors vary
> -- do check your
> > rotor manual).
>
>
> thanks for your patch.
>
> btw - could you scan dvb-s2 (qpsk & 8psk) channels with scan-s2 and
> hvr4000 ? with which drivers ?
>
> Goga
Yes I could scan DVB-S and DVB-S2 (both QPSK and 8PSK) in one command with the
HVR4000. The satellite delivery system descriptor parsing is used to set DVB-S/-S2 and
QPSK/8PSK and FEC. I used the s2-liplianin drivers (only because I am also testing a
stb0899 vp1041 card at the moment). It should also work with the v4l-dvb drivers but
I didn't try yet.
Also there is some network information on 19.2E which points to 23.5E so the rotor is moved
during the scan to 23.5E and then back to 19.2E depending on the transponder. :).
Hans
--
Release early, release often.
Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 11:24 ` BOUWSMA Barry
2008-11-12 11:44 ` Ales Jurik
@ 2008-11-12 12:08 ` Alex Betis
2008-11-12 12:47 ` BOUWSMA Barry
` (2 more replies)
1 sibling, 3 replies; 20+ messages in thread
From: Alex Betis @ 2008-11-12 12:08 UTC (permalink / raw)
To: BOUWSMA Barry; +Cc: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 1863 bytes --]
On Wed, Nov 12, 2008 at 1:24 PM, BOUWSMA Barry
<freebeer.bouwsma@gmail.com>wrote:
> Howdy, this is probably a stupid question, as I neither
> have DVB-S2 hardware nor have attempted to use anything
> but a rather hacked scan from dvb-apps, but...
>
> On Wed, 12 Nov 2008, Alex Betis wrote:
>
> > DVB-S2 by specifying S1 or S2 in freq file, also if you implicitly
> specify
> > QPSK in frequency file the utility will not scan DVB-S2, same logic also
> for
> > 8PSK that will scan only DVB-S2 and will not try to scan DVB-S.
> (implicitly -> explicitly?)
Oh man, I'll probably never remember the difference :)
I meant explicitly in that case.
>
>
> I can see the logic for 8PSK=>DVB-S2, but as far as I
> can see, QPSK does not imply purely DVB-S...
> NIT result: 12324000 V 29500000 pos 28.2E FEC 3/4 DVB-S2 QPSK
> one of eight such transponders, based on parsing the NIT
> tables. Also, a note from my inital 19E2 scan file to
> remind me why it failed:
> S 11914500 h 27500 ## DVB-S2 QPSK (0x05)
> May be no longer up-to-date.
Google search shows that you're right about it, thanks for pointing on that.
I'll leave only 8PSK => DVB-S2 binding. People who want to insist on DVB-S
only scanning will have to specify S1 in their frequency file.
I'll probably add also a switch to block S2 scanning at all for those who
don't have S2 compatable card.
BTW, you give here example of NIT parsing, do you know the format of the
message and what field specifies that the delivery system is DVB-S2? scan
utility code doesn't parse it, so I just add both DVB-S and DVB-S2 scans for
newly added transponder from NITmessage.
>
>
> Of course, if I'm misunderstanding, or failing to grasp
> something obvious if I actually laid my hands on the
> code, please feel free to slap me hard and tell me to
> shove off.
>
> thanks
> barry bouwsma
>
[-- Attachment #1.2: Type: text/html, Size: 2737 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 10:43 ` Alex Betis
2008-11-12 11:24 ` BOUWSMA Barry
@ 2008-11-12 12:39 ` Hans Werner
1 sibling, 0 replies; 20+ messages in thread
From: Hans Werner @ 2008-11-12 12:39 UTC (permalink / raw)
To: Alex Betis; +Cc: linux-dvb
> On Wed, Nov 12, 2008 at 4:31 AM, Hans Werner <HWerner4@gmx.de> wrote:
>
> > I have attached two patches for scan-s2 at
> > http://mercurial.intuxication.org/hg/scan-s2.
> >
> > Patch1: Some fixes for problems I found. QAM_AUTO is not supported by
> all
> > drivers,
> > in particular the HVR-4000, so one needs to use QPSK as the default and
> > ensure that
> > settings are parsed properly from the network information -- the new S2
> > FECs and
> > modulations were not handled.
> >
> > Patch2: Add DiSEqC 1.2 rotor support. Use it like this to move the dish
> to
> > the correct
> > position for the scan:
> > scan-s2 -r 19.2E -n dvb-s/Astra-19.2E
> > or
> > scan-s2 -R 2 -n dvb-s/Astra-19.2E
> >
> > A file (rotor.conf) listing the rotor positions is used (NB: rotors vary
> --
> > do check your
> > rotor manual).
> >
>
> I didn't check the diff files yet, will do it when I get home.
> But I don't think QPSK should be used by default. I have a version already
> where you can specify which scan mode you want to be performed DVB-S or
> DVB-S2 by specifying S1 or S2 in freq file, also if you implicitly specify
> QPSK in frequency file the utility will not scan DVB-S2, same logic also
> for
> 8PSK that will scan only DVB-S2 and will not try to scan DVB-S.
> I'll push that version soon to the repository.
>
> The default should stay the AUTO mode since there are cards that can
> handle
> that and their owners might have simplified frequency file version.
Perhaps I wasn't clear: I don't force scanning to be QPSK only. With just the
following one line in dvb-s/Astra-19.2E I was able to scan DVB-S and DVB-S2
(both QPSK and 8PSK) channels in one command with the HVR-4000:
S 12551500 V 22000000 5/6
The point is that some drivers and hardware (e.g. HVR-4000) cannot handle QAM_AUTO
or FEC_AUTO and will generate errors, but the necessary transponder information *is*
available to be parsed and used, so scan-s2 should do that.
We need scan-s2 do the best possible scan in one command with the standard initial
transponder files for all cards. You can't assume the hardware has AUTO capabilities.
Perhaps the capabilities could be checked before the scan though and used if available.
Hans
--
Release early, release often.
GMX Download-Spiele: Preizsturz! Alle Puzzle-Spiele Deluxe über 60% billiger.
http://games.entertainment.gmx.net/de/entertainment/games/download/puzzle/index.html
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 12:08 ` Alex Betis
@ 2008-11-12 12:47 ` BOUWSMA Barry
2008-11-12 12:59 ` Alex Betis
2008-11-12 12:59 ` Christophe Thommeret
[not found] ` <200811121353.47705.hftom@free.fr>
2 siblings, 1 reply; 20+ messages in thread
From: BOUWSMA Barry @ 2008-11-12 12:47 UTC (permalink / raw)
To: Alex Betis; +Cc: linux-dvb
On Wed, 12 Nov 2008, Alex Betis wrote:
> BTW, you give here example of NIT parsing, do you know the format of the
> message and what field specifies that the delivery system is DVB-S2? scan
> utility code doesn't parse it, so I just add both DVB-S and DVB-S2 scans for
I've spent yesterday hacking UTF-8 output into my old copy
of dvb-apps and then finding that the Greek 13E Hotbirds
channel `Βουλή:12168:h:2:27500:517:700:384' [UTF-8 encoded,
hope my MIME headers and ESMTP are correct] is not sent as
latin-greek charset, and thus doesn't appear properly for
me, but anyway, here is a code snippet of my `scan' that sends
the NIT dump of the scanned transponder to stderr, that I
use when needed. Cut'n'paste; also part of a much larger
set of hacks, so it's meant as an example, and not to be
used as ``useful'' code:
+
+char *fec[10] = {"NONE", "1/2", "2/3", "3/4", "4/5", "5/6", "6/7", "7/8", "8/9", "AUTO" } ;
+if (tn.type == 0) {
+ if (dump_nits == 1) {
+ printf("NIT result: %d %s %d pos %.1f%s ", tn.param.frequency, tn.polarisation ? "V" : "H", tn.param.u.qpsk.symbol_rate, (float)tn.orbital_pos/10, tn.we_flag ? "E" : "W");
+ printf(" FEC %s", fec[tn.param.u.qpsk.fec_inner] );
+if (tn.modulation & 0x04) {
+ printf(" DVB-S2");
+ if ((tn.modulation & 0x03) == 0x01) printf (" QPSK");
+ if ((tn.modulation & 0x03) == 0x02) printf (" 8PSK");
+
+}
+if (tn.param.inversion != 2)
+ printf(" inv %s", tn.param.inversion ? "OFF" : "ON" /*XXX FIXME */);
+printf("\n");
+ }
+}
+
Also, I believe that the recent `dvbsnoop' invoked with
`-s ts -tssubdecode' on the NIT PID will verbosely parse
the components and display everything -- I believe I used
that source code as the basis for the above hack.
I wonder if any of my other dvb-apps/scan hacks would be
of interest for someone to clean up (for me, function
before form, especially when I don't have a clue as to
what I am doing)...
barry bouwsma
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 12:47 ` BOUWSMA Barry
@ 2008-11-12 12:59 ` Alex Betis
2008-11-12 13:20 ` BOUWSMA Barry
0 siblings, 1 reply; 20+ messages in thread
From: Alex Betis @ 2008-11-12 12:59 UTC (permalink / raw)
To: BOUWSMA Barry; +Cc: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 2439 bytes --]
2008/11/12 BOUWSMA Barry <freebeer.bouwsma@gmail.com>
> On Wed, 12 Nov 2008, Alex Betis wrote:
>
> > BTW, you give here example of NIT parsing, do you know the format of the
> > message and what field specifies that the delivery system is DVB-S2? scan
> > utility code doesn't parse it, so I just add both DVB-S and DVB-S2 scans
> for
>
> I've spent yesterday hacking UTF-8 output into my old copy
> of dvb-apps and then finding that the Greek 13E Hotbirds
> channel `Βουλή:12168:h:2:27500:517:700:384' [UTF-8 encoded,
> hope my MIME headers and ESMTP are correct] is not sent as
> latin-greek charset, and thus doesn't appear properly for
> me, but anyway, here is a code snippet of my `scan' that sends
> the NIT dump of the scanned transponder to stderr, that I
> use when needed. Cut'n'paste; also part of a much larger
> set of hacks, so it's meant as an example, and not to be
> used as ``useful'' code:
>
> +
> +char *fec[10] = {"NONE", "1/2", "2/3", "3/4", "4/5", "5/6", "6/7", "7/8",
> "8/9", "AUTO" } ;
> +if (tn.type == 0) {
> + if (dump_nits == 1) {
> + printf("NIT result: %d %s %d pos %.1f%s ", tn.param.frequency,
> tn.polarisation ? "V" : "H", tn.param.u.qpsk.symbol_rate,
> (float)tn.orbital_pos/10, tn.we_flag ? "E" : "W");
> + printf(" FEC %s", fec[tn.param.u.qpsk.fec_inner] );
> +if (tn.modulation & 0x04) {
> + printf(" DVB-S2");
> + if ((tn.modulation & 0x03) == 0x01) printf (" QPSK");
> + if ((tn.modulation & 0x03) == 0x02) printf (" 8PSK");
> +
> +}
> +if (tn.param.inversion != 2)
> + printf(" inv %s", tn.param.inversion ? "OFF" : "ON" /*XXX FIXME
> */);
> +printf("\n");
> + }
> +}
> +
I must be missing something... How this code is aligned to the following
modulation enumeration?
QPSK enumeration has value 0, 8PSK value 9.
typedef enum fe_modulation {
QPSK,
QAM_16,
QAM_32,
QAM_64,
QAM_128,
QAM_256,
QAM_AUTO,
VSB_8,
VSB_16,
PSK_8,
APSK_16,
APSK_32,
DQPSK,
} fe_modulation_t;
>
>
>
> Also, I believe that the recent `dvbsnoop' invoked with
> `-s ts -tssubdecode' on the NIT PID will verbosely parse
> the components and display everything -- I believe I used
> that source code as the basis for the above hack.
>
> I wonder if any of my other dvb-apps/scan hacks would be
> of interest for someone to clean up (for me, function
> before form, especially when I don't have a clue as to
> what I am doing)...
>
>
> barry bouwsma
>
[-- Attachment #1.2: Type: text/html, Size: 4807 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 12:08 ` Alex Betis
2008-11-12 12:47 ` BOUWSMA Barry
@ 2008-11-12 12:59 ` Christophe Thommeret
[not found] ` <200811121353.47705.hftom@free.fr>
2 siblings, 0 replies; 20+ messages in thread
From: Christophe Thommeret @ 2008-11-12 12:59 UTC (permalink / raw)
To: linux-dvb
[-- Attachment #1: Type: text/plain, Size: 1254 bytes --]
Le mercredi 12 novembre 2008 13:08:44 Alex Betis, vous avez écrit :
> > I can see the logic for 8PSK=>DVB-S2, but as far as I
> > can see, QPSK does not imply purely DVB-S...
> > NIT result: 12324000 V 29500000 pos 28.2E FEC 3/4 DVB-S2 QPSK
> > one of eight such transponders, based on parsing the NIT
> > tables. Also, a note from my inital 19E2 scan file to
> > remind me why it failed:
> > S 11914500 h 27500 ## DVB-S2 QPSK (0x05)
> > May be no longer up-to-date.
>
> Google search shows that you're right about it, thanks for pointing on
> that. I'll leave only 8PSK => DVB-S2 binding. People who want to insist on
> DVB-S only scanning will have to specify S1 in their frequency file.
> I'll probably add also a switch to block S2 scanning at all for those who
> don't have S2 compatable card.
>
> BTW, you give here example of NIT parsing, do you know the format of the
> message and what field specifies that the delivery system is DVB-S2? scan
> utility code doesn't parse it, so I just add both DVB-S and DVB-S2 scans
> for newly added transponder from NITmessage.
It's specified in Satellite Descriptor:
modulation_system==1, =>S2
modulation_system==0, =>S
--
Christophe Thommeret
[-- Attachment #2: satDesc.jpeg --]
[-- Type: image/jpeg, Size: 37134 bytes --]
[-- Attachment #3: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
[not found] ` <200811121353.47705.hftom@free.fr>
@ 2008-11-12 13:01 ` Alex Betis
2008-11-12 13:04 ` Christophe Thommeret
0 siblings, 1 reply; 20+ messages in thread
From: Alex Betis @ 2008-11-12 13:01 UTC (permalink / raw)
To: Christophe Thommeret; +Cc: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 720 bytes --]
On Wed, Nov 12, 2008 at 2:53 PM, Christophe Thommeret <hftom@free.fr> wrote:
> > BTW, you give here example of NIT parsing, do you know the format of the
> > message and what field specifies that the delivery system is DVB-S2? scan
> > utility code doesn't parse it, so I just add both DVB-S and DVB-S2 scans
> > for newly added transponder from NITmessage.
>
> It's specified in Satellite Descriptor:
> modulation_system==1, =>S2
> modulation_system==0, =>S
>
Thanks, but it doesn't help in my case.
NIT can specify new transponders, when adding them to the scan list I have
to know whenever they are DVB-S or DVB-S2.
Satellte descriptor is received after locking to the transponder.
>
> --
> Christophe Thommeret
>
[-- Attachment #1.2: Type: text/html, Size: 1272 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 13:01 ` Alex Betis
@ 2008-11-12 13:04 ` Christophe Thommeret
2008-11-12 14:03 ` Hans Werner
0 siblings, 1 reply; 20+ messages in thread
From: Christophe Thommeret @ 2008-11-12 13:04 UTC (permalink / raw)
To: Alex Betis; +Cc: linux-dvb
Le mercredi 12 novembre 2008 14:01:11 Alex Betis, vous avez écrit :
> On Wed, Nov 12, 2008 at 2:53 PM, Christophe Thommeret <hftom@free.fr> wrote:
> > > BTW, you give here example of NIT parsing, do you know the format of
> > > the message and what field specifies that the delivery system is
> > > DVB-S2? scan utility code doesn't parse it, so I just add both DVB-S
> > > and DVB-S2 scans for newly added transponder from NITmessage.
> >
> > It's specified in Satellite Descriptor:
> > modulation_system==1, =>S2
> > modulation_system==0, =>S
>
> Thanks, but it doesn't help in my case.
> NIT can specify new transponders, when adding them to the scan list I have
> to know whenever they are DVB-S or DVB-S2.
> Satellte descriptor is received after locking to the transponder.
The satellite descriptor is part of NIT.
See EN-300468
--
Christophe Thommeret
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 12:59 ` Alex Betis
@ 2008-11-12 13:20 ` BOUWSMA Barry
0 siblings, 0 replies; 20+ messages in thread
From: BOUWSMA Barry @ 2008-11-12 13:20 UTC (permalink / raw)
To: Alex Betis; +Cc: linux-dvb
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
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 13:04 ` Christophe Thommeret
@ 2008-11-12 14:03 ` Hans Werner
0 siblings, 0 replies; 20+ messages in thread
From: Hans Werner @ 2008-11-12 14:03 UTC (permalink / raw)
To: Christophe Thommeret, alex.betis; +Cc: linux-dvb
> Le mercredi 12 novembre 2008 14:01:11 Alex Betis, vous avez écrit :
> > On Wed, Nov 12, 2008 at 2:53 PM, Christophe Thommeret <hftom@free.fr>
> wrote:
> > > > BTW, you give here example of NIT parsing, do you know the format of
> > > > the message and what field specifies that the delivery system is
> > > > DVB-S2? scan utility code doesn't parse it, so I just add both DVB-S
> > > > and DVB-S2 scans for newly added transponder from NITmessage.
> > >
> > > It's specified in Satellite Descriptor:
> > > modulation_system==1, =>S2
> > > modulation_system==0, =>S
> >
> > Thanks, but it doesn't help in my case.
> > NIT can specify new transponders, when adding them to the scan list I
> have
> > to know whenever they are DVB-S or DVB-S2.
> > Satellte descriptor is received after locking to the transponder.
>
> The satellite descriptor is part of NIT.
> See EN-300468
Also look at the Kaffeine code + S2 patch as I did when writing my patches.
Many thanks Christophe.
--
Release early, release often.
"Feel free" - 5 GB Mailbox, 50 FreeSMS/Monat ...
Jetzt GMX ProMail testen: http://www.gmx.net/de/go/promail
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 2:31 [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support Hans Werner
2008-11-12 6:46 ` Goga777
2008-11-12 10:43 ` Alex Betis
@ 2008-11-12 20:56 ` Alex Betis
2008-11-13 23:04 ` Hans Werner
2 siblings, 1 reply; 20+ messages in thread
From: Alex Betis @ 2008-11-12 20:56 UTC (permalink / raw)
To: Hans Werner; +Cc: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 1695 bytes --]
On Wed, Nov 12, 2008 at 4:31 AM, Hans Werner <HWerner4@gmx.de> wrote:
> I have attached two patches for scan-s2 at
> http://mercurial.intuxication.org/hg/scan-s2.
>
> Patch1: Some fixes for problems I found. QAM_AUTO is not supported by all
> drivers,
> in particular the HVR-4000, so one needs to use QPSK as the default and
> ensure that
> settings are parsed properly from the network information -- the new S2
> FECs and
> modulations were not handled.
>
> Patch2: Add DiSEqC 1.2 rotor support. Use it like this to move the dish to
> the correct
> position for the scan:
> scan-s2 -r 19.2E -n dvb-s/Astra-19.2E
> or
> scan-s2 -R 2 -n dvb-s/Astra-19.2E
>
> A file (rotor.conf) listing the rotor positions is used (NB: rotors vary --
> do check your
> rotor manual).
>
Hans,
I'm looking on your QPSK diff and I disagree with the changes.
I think the concept of having all missing parameters as AUTO values should
have modulation, rolloff and FEC set to AUTO enumeration.
If your card can't handle the AUTO setting, so you have to specify it in the
frequency file.
Applying your changes will break scaning S2 channels for a freq file with
the following line:
S 11258000 H 27500000
or even
S2 11258000 H 27500000
Since it will order the driver to use QPSK modulation, while there should be
8PSK or AUTO.
I don't really know how rolloff=35 will affect since its the default in some
drivers, but again, AUTO setting was intended for that purpose,
to let the card/driver decide what parameters should be used.
> Regards,
> Hans
>
> --
> Release early, release often.
>
> Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten
> Browser-Versionen downloaden: http://www.gmx.net/de/go/browser
>
[-- Attachment #1.2: Type: text/html, Size: 2391 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-12 20:56 ` Alex Betis
@ 2008-11-13 23:04 ` Hans Werner
2008-11-14 8:30 ` Alex Betis
0 siblings, 1 reply; 20+ messages in thread
From: Hans Werner @ 2008-11-13 23:04 UTC (permalink / raw)
To: Alex Betis; +Cc: linux-dvb
[-- Attachment #1: Type: text/plain, Size: 3295 bytes --]
> On Wed, Nov 12, 2008 at 4:31 AM, Hans Werner <HWerner4@gmx.de> wrote:
>
> > I have attached two patches for scan-s2 at
> > http://mercurial.intuxication.org/hg/scan-s2.
> >
> > Patch1: Some fixes for problems I found. QAM_AUTO is not supported by
> all
> > drivers,
> > in particular the HVR-4000, so one needs to use QPSK as the default and
> > ensure that
> > settings are parsed properly from the network information -- the new S2
> > FECs and
> > modulations were not handled.
> >
> > Patch2: Add DiSEqC 1.2 rotor support. Use it like this to move the dish
> to
> > the correct
> > position for the scan:
> > scan-s2 -r 19.2E -n dvb-s/Astra-19.2E
> > or
> > scan-s2 -R 2 -n dvb-s/Astra-19.2E
> >
> > A file (rotor.conf) listing the rotor positions is used (NB: rotors vary
> --
> > do check your
> > rotor manual).
> >
> Hans,
> I'm looking on your QPSK diff and I disagree with the changes.
> I think the concept of having all missing parameters as AUTO values should
> have modulation, rolloff and FEC set to AUTO enumeration.
> If your card can't handle the AUTO setting, so you have to specify it in
> the
> frequency file.
I want the computer to do the work, see below ;).
> Applying your changes will break scaning S2 channels for a freq file with
> the following line:
> S 11258000 H 27500000
> or even
> S2 11258000 H 27500000
>
> Since it will order the driver to use QPSK modulation, while there should
> be
> 8PSK or AUTO.
> I don't really know how rolloff=35 will affect since its the default in
> some
> drivers, but again, AUTO setting was intended for that purpose,
> to let the card/driver decide what parameters should be used.
Ok, I have looked at this again and written a new patch. I also looked at what
you checked in yesterday for S1/S2 and -D options.
In order to keep the AUTO behaviour you want and also allow for cards which
cannot handle autos I have added a new option -X which sets a noauto flag.
When this option is chosen, instead of putting an initial transponder with an AUTO
in the transponder list, several transponders are created for each allowed value of
each free parameter (which may be delivery system, modulation, fec or rolloff).
so with -X
S 12551500 V 22000000 5/6
results in
initial transponder DVB-S 12551500 V 22000000 5/6 35 QPSK
initial transponder DVB-S2 12551500 V 22000000 5/6 35 QPSK
initial transponder DVB-S2 12551500 V 22000000 5/6 35 8PSK
initial transponder DVB-S2 12551500 V 22000000 5/6 25 QPSK
initial transponder DVB-S2 12551500 V 22000000 5/6 25 8PSK
initial transponder DVB-S2 12551500 V 22000000 5/6 20 QPSK
initial transponder DVB-S2 12551500 V 22000000 5/6 20 8PSK
(fec was fixed in the transponder file in this example, but delivery
system, rolloff and modulation were not)
The new S1/S2 and -D options are respected. So with -D S1, the S2
lines would not be added for example.
Using -X -D and S2/S1/S thus gives lots of flexibility for scanning.
The patch also makes improvements in
parse_satellite_delivery_system_descriptor, adding rolloff and the
new S2 FECs and changes to delivery system and modulation parsing.
Hans
--
Release early, release often.
Sensationsangebot nur bis 30.11: GMX FreeDSL - Telefonanschluss + DSL
für nur 16,37 Euro/mtl.!* http://dsl.gmx.de/?ac=OM.AD.PD003K11308T4569a
[-- Attachment #2: patch1b_noauto.diff --]
[-- Type: text/x-patch, Size: 9033 bytes --]
diff -r 9ba3818cecb9 scan.c
--- a/scan.c
+++ b/scan.c
@@ -73,6 +73,7 @@ static int long_timeout;
static int long_timeout;
static int current_tp_only;
static int get_other_nits;
+static int noauto=0;
static int vdr_dump_provider;
static int vdr_dump_channum;
static int no_ATSC_PSIP;
@@ -400,25 +401,42 @@ static void parse_s2_satellite_delivery_
static void parse_satellite_delivery_system_descriptor (const unsigned char *buf, struct transponder *t)
{
- static const fe_code_rate_t fec_tab [8] = {
- FEC_AUTO, FEC_1_2, FEC_2_3, FEC_3_4,
- FEC_5_6, FEC_7_8, FEC_NONE, FEC_NONE
- };
-
if (!t) {
warning("satellite_delivery_system_descriptor outside transport stream definition (ignored)\n");
return;
}
- if(((buf[8] >> 1) & 0x01) == 0) {
- t->delivery_system = SYS_DVBS;
- }
- else {
- t->delivery_system = SYS_DVBS2;
+ switch ( getBits(buf,69,1) ) {
+ case 0: t->delivery_system = SYS_DVBS; break;
+ case 1: t->delivery_system = SYS_DVBS2; break;
+ }
+
+ if (t->delivery_system == SYS_DVBS2) {
+ switch ( getBits(buf,67,2) ) {
+ case 0 : t->rolloff = ROLLOFF_35; break;
+ case 1 : t->rolloff = ROLLOFF_25; break;
+ case 2 : t->rolloff = ROLLOFF_20; break;
+ }
+ } else {
+ if (noauto) t->rolloff = ROLLOFF_35;
}
t->frequency = 10 * bcd32_to_cpu (buf[2], buf[3], buf[4], buf[5]);
- t->fec = fec_tab[buf[12] & 0x07];
+
+ switch ( getBits(buf,100,4) ) {
+ case 0 : t->fec = FEC_AUTO; break;
+ case 1 : t->fec = FEC_1_2; break;
+ case 2 : t->fec = FEC_2_3; break;
+ case 3 : t->fec = FEC_3_4; break;
+ case 4 : t->fec = FEC_5_6; break;
+ case 5 : t->fec = FEC_7_8; break;
+ case 6 : t->fec = FEC_8_9; break;
+ case 7 : t->fec = FEC_3_5; break;
+ case 8 : t->fec = FEC_4_5; break;
+ case 9 : t->fec = FEC_9_10; break;
+ case 15 : t->fec = FEC_NONE; break;
+ }
+
t->symbol_rate = 10 * bcd32_to_cpu (buf[9], buf[10], buf[11], buf[12] & 0xf0);
t->inversion = spectral_inversion;
@@ -427,9 +445,17 @@ static void parse_satellite_delivery_sys
t->orbital_pos = bcd32_to_cpu (0x00, 0x00, buf[6], buf[7]);
t->we_flag = buf[8] >> 7;
+ switch ( getBits(buf,70,2) ) {
+ case 0 : t->modulation = QAM_AUTO; break;
+ case 1 : t->modulation = QPSK; break;
+ case 2 : t->modulation = PSK_8; break;
+ case 3 : t->modulation = QAM_16; break;
+ }
+
if (verbosity >= 5) {
debug("%#04x/%#04x ", t->network_id, t->transport_stream_id);
dump_dvb_parameters (stderr, t);
+ printf("\n");
if (t->scan_done)
dprintf(5, " (done)");
if (t->last_tuning_failed)
@@ -2064,107 +2090,106 @@ static int tune_initial (int frontend_fd
if (buf[0] == '#' || buf[0] == '\n')
;
else if (sscanf(buf, "S%c %u %1[HVLR] %u %4s %4s %6s\n", &scan_mode, &f, pol, &sr, fec, rolloff, qam) >= 3) {
- t = alloc_transponder(f);
- t->delivery_system = SYS_DVBS;
- t->modulation = QAM_AUTO;
- t->rolloff = ROLLOFF_AUTO;
- t->fec = FEC_AUTO;
-
+ scan_mode1 = FALSE;
+ scan_mode2 = FALSE;
switch(scan_mode)
{
case '1':
/* Enable only DVB-S mode */
- scan_mode1 = TRUE;
+ if (!disable_s1) scan_mode1 = TRUE;
break;
-
+
case '2':
/* Enable only DVB-S2 mode */
- scan_mode2 = TRUE;
+ if (!disable_s1) scan_mode2 = TRUE;
break;
default:
/* Enable both DVB-S and DVB-S2 scan modes */
- scan_mode1 = TRUE;
- scan_mode2 = TRUE;
+ if (!disable_s1) scan_mode1 = TRUE;
+ if (!disable_s2) scan_mode2 = TRUE;
break;
}
- switch(pol[0])
- {
- case 'H':
- case 'L':
- t->polarisation = POLARISATION_HORIZONTAL;
- break;
- default:
- t->polarisation = POLARISATION_VERTICAL;;
- break;
- }
- t->inversion = spectral_inversion;
- t->symbol_rate = sr;
+ /*Generate a list of transponders, explicitly enumerating the AUTOs if they
+ are disabled with the -X parameter.*/
- // parse optional parameters
- if(strlen(fec) > 0) {
- t->fec = str2fec(fec);
+ int nmod,nfec,ndel,nrol;
+ int imod,ifec,idel,irol;
+
+ /* set up list of delivery systems*/
+ fe_delivery_system_t delset[]={SYS_DVBS,SYS_DVBS2};
+ ndel=2;
+ if (scan_mode1 && !scan_mode2) {delset[0]=SYS_DVBS ; ndel=1;}
+ if (!scan_mode1 && scan_mode2) {delset[0]=SYS_DVBS2; ndel=1;}
+
+ /* set up list of modulations*/
+ fe_modulation_t modset[2]={ QPSK, PSK_8 };
+ nmod=2;
+ if (strlen(qam)>0) {
+ modset[0]=str2qam(qam); nmod=1;
+ } else if (noauto) {
+ if (scan_mode1 && !scan_mode2 ) nmod=1;
+ } else {
+ modset[0]=QAM_AUTO; nmod=1;
}
- if(strlen(rolloff) > 0) {
- t->rolloff = str2rolloff(rolloff);
+ /* set up list of rollofs*/
+ fe_rolloff_t rolset[3]={ROLLOFF_35,ROLLOFF_25,ROLLOFF_20};
+ nrol=3;
+ if (strlen(rolloff)>0) {
+ rolset[0]=str2rolloff(rolloff); nrol=1;
+ } else if (noauto) {
+ if (scan_mode1 && ! scan_mode2) nrol=1;
+ } else {
+ rolset[0]=ROLLOFF_AUTO; nrol=1;
}
- if(strlen(qam) > 0) {
- t->modulation = str2qam(qam);
+ /* set up list of FECs*/
+ fe_code_rate_t fecset[9]={FEC_1_2,FEC_2_3,FEC_3_4,FEC_5_6,FEC_7_8,FEC_8_9,FEC_3_5,FEC_4_5,FEC_9_10};
+ if (strlen(fec)>0) {
+ fecset[0]=str2fec(fec); nfec=1;
+ } else if (noauto) {
+ if (scan_mode1) nfec=6;
+ if (scan_mode2) nfec=9;
+ } else {
+ fecset[0]=FEC_AUTO; nfec=1;
}
- switch(t->modulation)
- {
- case PSK_8:
- /* DVB-S2 modulation is explicitly specified, scan only in DVB-S2 mode */
- scan_mode1 = FALSE;
- scan_mode2 = TRUE;
- break;
- }
+ for (idel=0;idel<ndel;idel++){
+ for (ifec=0;ifec<nfec;ifec++){
+ for (irol=0;irol<nrol;irol++){
+ for (imod=0;imod<nmod;imod++){
+ /*skip impossible settings*/
+ if ((rolset[irol]==ROLLOFF_25||rolset[irol]==ROLLOFF_20) && delset[idel]!=SYS_DVBS2) continue;
+ if (ifec > 5 && delset[idel]!=SYS_DVBS2) continue;
+ if (modset[imod] == PSK_8 && delset[idel] != SYS_DVBS2) continue;
- /* Apply disable flags */
- if(disable_s1) {
- scan_mode1 = FALSE;
- }
- if(disable_s2) {
- scan_mode2 = FALSE;
- }
+ t = alloc_transponder(f);
- /* Both modes should be scanned */
- if(scan_mode1 && scan_mode2) {
- /* Set current transponder to DVB-S delivery */
- t->delivery_system = SYS_DVBS;
+ t->delivery_system = delset[idel];
+ t->modulation = modset[imod];
+ t->rolloff = rolset[irol];
+ t->fec = fecset[ifec];
- /* create new transponder for the second mode */
- t2 = alloc_transponder(f);
- /* copy all parameters from original transponder */
- copy_transponder(t2, t);
- /* set second transponder to DVB-S2 */
- t2->delivery_system = SYS_DVBS2;
+ switch(pol[0])
+ {
+ case 'H':
+ case 'L':
+ t->polarisation = POLARISATION_HORIZONTAL;
+ break;
+ default:
+ t->polarisation = POLARISATION_VERTICAL;;
+ break;
+ }
+ t->inversion = spectral_inversion;
+ t->symbol_rate = sr;
info("initial transponder DVB-S%s %u %c %d %s %s %s\n",
t->delivery_system==SYS_DVBS?" ":"2",
t->frequency,
pol[0], t->symbol_rate, fec2str(t->fec), rolloff2str(t->rolloff), qam2str(t->modulation));
-
- /* change the main pointer so the second added transponder will be printed */
- t = t2;
- }
- else { /* only one system should be used */
- if(scan_mode1) {
- t->delivery_system = SYS_DVBS;
- }
- else if(scan_mode2) {
- t->delivery_system = SYS_DVBS2;
- }
- }
-
- info("initial transponder DVB-S%s %u %c %d %s %s %s\n",
- t->delivery_system==SYS_DVBS?" ":"2",
- t->frequency,
- pol[0], t->symbol_rate, fec2str(t->fec), rolloff2str(t->rolloff), qam2str(t->modulation));
+ }}}}
}
else if (sscanf(buf, "C %u %u %4s %6s\n", &f, &sr, fec, qam) >= 2) {
t = alloc_transponder(f);
@@ -2553,7 +2578,10 @@ static const char *usage = "\n"
" -D s Disable specified scan mode (by default all modes are enabled)\n"
" s=S1 Disable DVB-S scan\n"
" s=S2 Disable DVB-S2 scan (good for owners of cards that do not\n"
-" support DVB-S2 systems)\n";
+" support DVB-S2 systems)\n"
+" -X Disable AUTOs for initial transponders (esp. for hardware which\n"
+" not support it). Instead try each value of any free parameters.\n";
+
void bad_usage(char *pname, int problem)
{
@@ -2606,7 +2634,7 @@ int main (int argc, char **argv)
/* start with default lnb type */
lnb_type = *lnb_enum(0);
- while ((opt = getopt(argc, argv, "5cnpa:f:d:O:k:I:S:s:r:R:o:D:x:t:i:l:vquPA:U")) != -1) {
+ while ((opt = getopt(argc, argv, "5cnXpa:f:d:O:k:I:S:s:r:R:o:D:x:t:i:l:vquPA:U")) != -1) {
switch (opt)
{
case 'a':
@@ -2621,6 +2649,10 @@ int main (int argc, char **argv)
case 'n':
get_other_nits = 1;
+ break;
+
+ case 'X':
+ noauto = 1;
break;
case 'd':
[-- Attachment #3: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support
2008-11-13 23:04 ` Hans Werner
@ 2008-11-14 8:30 ` Alex Betis
0 siblings, 0 replies; 20+ messages in thread
From: Alex Betis @ 2008-11-14 8:30 UTC (permalink / raw)
To: Hans Werner; +Cc: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 3107 bytes --]
On Fri, Nov 14, 2008 at 1:04 AM, Hans Werner <HWerner4@gmx.de> wrote:
> > Hans,
> > I'm looking on your QPSK diff and I disagree with the changes.
> > I think the concept of having all missing parameters as AUTO values
> should
> > have modulation, rolloff and FEC set to AUTO enumeration.
> > If your card can't handle the AUTO setting, so you have to specify it in
> > the
> > frequency file.
>
> I want the computer to do the work, see below ;).
Ok, I can't disagree with that :)
>
>
> > Applying your changes will break scaning S2 channels for a freq file with
> > the following line:
> > S 11258000 H 27500000
> > or even
> > S2 11258000 H 27500000
> >
> > Since it will order the driver to use QPSK modulation, while there should
> > be
> > 8PSK or AUTO.
> > I don't really know how rolloff=35 will affect since its the default in
> > some
> > drivers, but again, AUTO setting was intended for that purpose,
> > to let the card/driver decide what parameters should be used.
>
> Ok, I have looked at this again and written a new patch. I also looked at
> what
> you checked in yesterday for S1/S2 and -D options.
>
> In order to keep the AUTO behaviour you want and also allow for cards which
> cannot handle autos I have added a new option -X which sets a noauto flag.
> When this option is chosen, instead of putting an initial transponder with
> an AUTO
> in the transponder list, several transponders are created for each allowed
> value of
> each free parameter (which may be delivery system, modulation, fec or
> rolloff).
>
> so with -X
> S 12551500 V 22000000 5/6
> results in
> initial transponder DVB-S 12551500 V 22000000 5/6 35 QPSK
> initial transponder DVB-S2 12551500 V 22000000 5/6 35 QPSK
> initial transponder DVB-S2 12551500 V 22000000 5/6 35 8PSK
> initial transponder DVB-S2 12551500 V 22000000 5/6 25 QPSK
> initial transponder DVB-S2 12551500 V 22000000 5/6 25 8PSK
> initial transponder DVB-S2 12551500 V 22000000 5/6 20 QPSK
> initial transponder DVB-S2 12551500 V 22000000 5/6 20 8PSK
>
> (fec was fixed in the transponder file in this example, but delivery
> system, rolloff and modulation were not)
>
> The new S1/S2 and -D options are respected. So with -D S1, the S2
> lines would not be added for example.
>
> Using -X -D and S2/S1/S thus gives lots of flexibility for scanning.
I hope we won't run out of free letters for next command line flags we'll
add :)
Sounds good to me. My recent changes to delete duplicate frequencies when
lock was successful on one of them will be especially helpful in that case
to speed up the scan process.
>
>
> The patch also makes improvements in
> parse_satellite_delivery_system_descriptor, adding rolloff and the
> new S2 FECs and changes to delivery system and modulation parsing.
Thanks. You did part of the work I've intended to do :)
>
>
> Hans
>
> --
> Release early, release often.
>
> Sensationsangebot nur bis 30.11: GMX FreeDSL - Telefonanschluss + DSL
> für nur 16,37 Euro/mtl.!* http://dsl.gmx.de/?ac=OM.AD.PD003K11308T4569a
>
[-- Attachment #1.2: Type: text/html, Size: 4293 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2008-11-14 8:30 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-12 2:31 [linux-dvb] [PATCH] scan-s2: fixes and diseqc rotor support Hans Werner
2008-11-12 6:46 ` Goga777
2008-11-12 10:21 ` Per Heldal
2008-11-12 10:44 ` Alex Betis
2008-11-12 11:51 ` Hans Werner
2008-11-12 10:43 ` Alex Betis
2008-11-12 11:24 ` BOUWSMA Barry
2008-11-12 11:44 ` Ales Jurik
2008-11-12 12:08 ` Alex Betis
2008-11-12 12:47 ` BOUWSMA Barry
2008-11-12 12:59 ` Alex Betis
2008-11-12 13:20 ` BOUWSMA Barry
2008-11-12 12:59 ` Christophe Thommeret
[not found] ` <200811121353.47705.hftom@free.fr>
2008-11-12 13:01 ` Alex Betis
2008-11-12 13:04 ` Christophe Thommeret
2008-11-12 14:03 ` Hans Werner
2008-11-12 12:39 ` Hans Werner
2008-11-12 20:56 ` Alex Betis
2008-11-13 23:04 ` Hans Werner
2008-11-14 8:30 ` Alex Betis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox