-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Zoilo Gomez wrote: > Nico Sabbi wrote: >> Nico Sabbi wrote: >>> Zoilo Gomez wrote: >>> >>>>>> The Diseqc-specs at >>>>>> http://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/bus_spec.pdf >>>>>> (table on page 13) confirm that dvbtune is in fact sending the >>>>>> wrong command. >>>>>> >>>>>> With a patched dvbtune (pol-bit and band-bit both inverted) it >>>>>> works OK, and is also according to the Eutelsat specs. >>>>>> >>>> >>>> I have attached a patch for you. >>>> >>>> The problem is only in dvbtune (version 0.5); you may not have been >>>> using dvbtune (dvbtools); dvbscan and szap (linuxtv-dvb-apps) do not >>>> suffer from this problem. >>>> >>>> Z. >>>> >>>> >>>> ------------------------------------------------------------------------ >>>> >>>> >>>> diff -Naur dvbtune-0.5.orig/tune.c dvbtune-0.5/tune.c >>>> --- dvbtune-0.5.orig/tune.c 2004-02-06 15:00:36.000000000 +0100 >>>> +++ dvbtune-0.5/tune.c 2007-04-30 21:22:53.000000000 +0200 >>>> @@ -203,7 +203,7 @@ >>>> * bits are: option, position, polarizaion, band >>>> */ >>>> cmd.cmd.msg[3] = >>>> - 0xf0 | (((sat_no * 4) & 0x0f) | (hi_lo ? 1 : 0) | (pol ? 0 : >>>> 2)); >>>> + 0xf0 | (((sat_no * 4) & 0x0f) | (hi_lo ? 0 : 1) | (pol ? 2 : >>>> 0)); >>>> >>>> diseqc_send_msg(secfd, pol, >>>> &cmd, hi_lo, >>> >>> >> >> >> I disagree with your changes: >> according to the specs that you linked the fields are: >> *switch-number >> *switch option >> *satellite position >> *polarization >> *frequency_is_in_hi_band >> *bytecode >> >> >> 1 A A V Lo F0 >> 2 A A V Hi F1 >> 3 A A H Lo F2 >> 4 A A H Hi F3 >> 5 A B V Lo F4 >> 6 A B V Hi F5 >> 7 A B H Lo F6 >> 8 A B H Hi F7 >> 9 B A V Lo F8 >> 10 B A V Hi F9 >> 11 B A H Lo FA >> 12 B A H Hi FB >> 13 B B V Lo FC >> 14 B B V Hi FD >> 15 B B H Lo FE >> 16 B B H Hi FF >> >> assuming that in the code "pol" stands for "pol_is_vertical" and that >> "hi_lo" stands for "hi_band" ( frequency above SLOF) and counting bits >> from 8..1 >> - the last bit must be set to 1 when hi_band is 1 >> - the forelast bit (0x2) must be set when the polarization is >> horizontal (this polv is 0). >> >> Please, explain why you believe that the current code is incorrect > > Not so much a matter of believe, but of results. > > My switch was not working, and selecting the wrong input. Hence I looked > into the source, put some printfs and found that the DiSEqC command > being sent was incorrect, i.e. different from the table above. So I > changed the code, then it was working correctly. > > Perhaps it would be better to change the code in the calling function; > your opinion that (hi_lo==1) means high band seems logical, but in that > case the value being passed to the function is wrong. > > (pol==1) meaning "vertical" seems somewhat more ambiguous to me, perhaps > a better name would be "vpol" (in which case however the calling > function is sending the wrong value, inverted) or hpol (in which case > it's OK). > > Z. > > can someone with a DVB-S card checkout the SVN version of rb-download from here: svn checkout https://svn.sourceforge.net/svnroot/redbutton/ and tell me if it works, because I cut'n'pasted the diseqc code from szap too ta! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.4 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGQDJ6mt9ZifioJSwRAr/HAJ476RynqPNj1N6b9T0dRva9AJwMhQCfREEl u8h5ECZEzWNsaL8y+TgpSVY= =XuQO -----END PGP SIGNATURE----- _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb