[dvblast-devel] [PATCH] Extend support for up to 16 uncommitted ports.

Zoran Turalija zoran.turalija at gmail.com
Sun Nov 20 18:11:40 CET 2016


This will allow support for up to 64 satellites.

There are some 8/10 port DiSEqC switches, that act
as an uncommitted switch or a combination of committed
and uncommitted switches. Later is already supported,
and with this change we support former.

If used switch acts as eg. 10-port uncommitted switch,
one can now tune to a satellite on port 6 using dvblast
switch "-k 6" (tune to sixth uncommitted port).

Of course, using more conventional equipment or a switch
that combines committed and uncommitted switches within
itself, a setup would consist of 4 committed ports located
under first two uncommitted ports, and 2 more committed
ports under third uncommitted port.

This kind of setup is already supported, and tuning to
satellite on "port 6" was/is possible using dvblast
switches "-k 2 -S 2" (tune to second uncommitted port
and on second committed port).
---
 NEWS      | 1 +
 dvb.c     | 6 ++----
 dvblast.1 | 2 +-
 dvblast.c | 4 ++--
 4 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/NEWS b/NEWS
index ce94eb6..f826845 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ Changes between 3.0 and 3.1:
   * Add HEVC support
   * Add ONID remapping
   * Add PCR even when PCR PID is not selected, but drop non-PCR packets
+  * Extend support for uncommitted DiSEqC switches with up to 16 ports
 
 Changes between 2.2 and 3.0:
 ----------------------------
diff --git a/dvb.c b/dvb.c
index ec84ed0..ea528f0 100644
--- a/dvb.c
+++ b/dvb.c
@@ -548,12 +548,10 @@ static int FrontendDoDiseqc(void)
                           | (fe_voltage == SEC_VOLTAGE_13 ? 0 : 2)
                           | (fe_tone == SEC_TONE_ON ? 1 : 0);
 
-        if ( i_uncommitted > 0 && i_uncommitted < 5 )
+        if ( i_uncommitted > 0 && i_uncommitted < 17 )
         {
            uncmd.msg[3] = 0xf0 /* reset bits */
-                             | ((i_uncommitted - 1) << 2)
-                             | (fe_voltage == SEC_VOLTAGE_13 ? 0 : 2)
-                             | (fe_tone == SEC_TONE_ON ? 1 : 0);
+                             | (i_uncommitted - 1);
            if( ioctl( i_frontend, FE_DISEQC_SEND_MASTER_CMD, &uncmd ) < 0 )
            {
                msg_Err( NULL, "ioctl FE_SEND_MASTER_CMD failed (%s)",
diff --git a/dvblast.1 b/dvblast.1
index 6dbb0f7..5f241f3 100644
--- a/dvblast.1
+++ b/dvblast.1
@@ -102,7 +102,7 @@ Character set used for printing messages (default UTF-8)
 Character set used in output DVB tables (default ISO-8859-1)
 .TP
 \fB\-k\fR, \fB\-\-uncommitted\fR <uncommitted port>
-Port number for uncommitted diseqc (0: no uncommitted diseqc, 1\-4)
+Port number for uncommitted DiSEqC switch (0: no uncommitted DiSEqC swtich, 1\-16)
 .TP
 \fB\-K\fR, \fB\-\-fec-lp\fR
 DVB-T low priority FEC (default auto)
diff --git a/dvblast.c b/dvblast.c
index 84ecabb..bf40565 100644
--- a/dvblast.c
+++ b/dvblast.c
@@ -639,7 +639,7 @@ void usage()
     msg_Raw( NULL, "  -X --transmission     DVB-T transmission (2, 4, 8 or -1 auto, default)" );
     msg_Raw( NULL, "  -s --symbol-rate" );
     msg_Raw( NULL, "  -S --diseqc           satellite number for diseqc (0: no diseqc, 1-4, A or B)" );
-    msg_Raw( NULL, "  -k --uncommitted      port number for uncommitted diseqc (0: no uncommitted diseqc, 1-4)" );
+    msg_Raw( NULL, "  -k --uncommitted      port number for uncommitted DiSEqC switch (0: no uncommitted DiSEqC switch, 1-16)" );
     msg_Raw( NULL, "  -u --budget-mode      turn on budget mode (no hardware PID filtering)" );
     msg_Raw( NULL, "  -v --voltage          voltage to apply to the LNB (QPSK)" );
     msg_Raw( NULL, "  -w --select-pmts      set a PID filter on all PMTs (auto on, when config file is used)" );
@@ -881,7 +881,7 @@ int main( int i_argc, char **pp_argv )
             break;
 
         case 'k':
-            i_uncommitted = strtol( optarg, NULL, 16 );
+            i_uncommitted = strtol( optarg, NULL, 10 );
             break;
 
         case 'v':
-- 
2.7.4


-- 
Kind regards,
Zoran Turalija


More information about the dvblast-devel mailing list