Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: Problem switching channels



On Monday 15 July 2002 07:45, Helmut Auer wrote:
> I tried your patch but unfortunately my switch doesn't seem to
> recognize the MiniDiSEqC commands. With the patch and LNB DiSEqC set
> to 2 I cannot see any channel. 

That's strange, because MiniDiSEqC only switches between Satellite 
positions A and B. Upper/lower band and vertical/horizontal polarisation
are still controlled using the 22kHz tone and 13/18V voltage.

Please check the following:
- According to the specification, a slave controller (i.e. the switch) will
  ignore old-style signalling methods as soon as a (non-mini) DiSEqC 
  command has been recognized. Perhaps you should power-down your
  PC or disconnect the SAT cable and try again.
- With "LNB DiSEqC" set to 2, the "channel DiSEqC" entry selects
   between Sat position A (value 0) or B (value 1). Try to swap these values.
- If this doesn't help either, your switch does not accept old-style
  signalling methods. Sorry.

As a last resort you could duplicate the line
    CHECK(ioctl(fd_sec, SEC_SEND_SEQUENCE, &scmds));
It's just a hack but I found that it improved the situation somewhat.

BTW, I forgot to delete one line of code in my patch.
(Unfortunately, this will not change anything.)
Here is the fixed one:
--------------------------------------  snip --------------------------------------------
--- vdr-1.0.4/dvbapi.c	Sat May 18 16:15:36 2002
+++ vdr-1.0.4-new/dvbapi.c	Mon Jul 15 00:29:01 2002
@@ -2415,9 +2415,12 @@
 
             secCmdSequence scmds;
             scmds.voltage = volt;
-            scmds.miniCommand = SEC_MINI_NONE;
+            if (Setup.DiSEqC == 2)
+                scmds.miniCommand = (Diseqc) ? SEC_MINI_B : SEC_MINI_A;
+            else
+                scmds.miniCommand = SEC_MINI_NONE;
             scmds.continuousTone = tone;
-            scmds.numCommands = Setup.DiSEqC ? 1 : 0;
+            scmds.numCommands = (Setup.DiSEqC == 1) ? 1 : 0;
             scmds.commands = &scmd;
 
             CHECK(ioctl(fd_sec, SEC_SEND_SEQUENCE, &scmds));
--- vdr-1.0.4/menu.c	Wed May  1 16:54:10 2002
+++ vdr-1.0.4-new/menu.c	Sun Jul 14 20:25:44 2002
@@ -2158,7 +2158,7 @@
   Add(new cMenuEditIntItem( tr("Setup.LNB$SLOF (MHz)"),               &data.LnbSLOF));
   Add(new cMenuEditIntItem( tr("Setup.LNB$Low LNB frequency (MHz)"),  &data.LnbFrequLo));
   Add(new cMenuEditIntItem( tr("Setup.LNB$High LNB frequency (MHz)"), &data.LnbFrequHi));
-  Add(new cMenuEditBoolItem(tr("Setup.LNB$Use DiSEqC"),               &data.DiSEqC));
+  Add(new cMenuEditIntItem( tr("Setup.LNB$Use DiSEqC"),               &data.DiSEqC));
 }
 
 // --- cMenuSetupCICAM -------------------------------------------------------
--------------------------------------  snip --------------------------------------------

Regards, Oliver





Home | Main Index | Thread Index