summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhschang <chang@dev3>2015-06-29 08:34:19 (GMT)
committerhschang <chang@dev3>2015-06-29 08:36:56 (GMT)
commit7b7a80a1f979b0bd9c68aa33af968db25bf63f81 (patch)
treedcdd89b9f18c2616c64e567f4f35c3f5edd276ab
parent99e6ea49ff22e993eecce31af689da1b3b85157c (diff)
[unicable] Support JESS(EN50607) and update unicable.xml, thanks to adenin.
-rw-r--r--data/unicable.xml183
-rwxr-xr-xlib/dvb/frontend.cpp2
-rw-r--r--lib/dvb/frontend.h2
-rw-r--r--lib/dvb/idvb.h2
-rw-r--r--lib/dvb/sec.cpp235
-rw-r--r--lib/dvb/sec.h9
-rwxr-xr-xlib/python/Components/NimManager.py326
-rw-r--r--lib/python/Screens/Satconfig.py48
8 files changed, 635 insertions, 172 deletions
diff --git a/data/unicable.xml b/data/unicable.xml
index 33951d7..d461bc5 100644
--- a/data/unicable.xml
+++ b/data/unicable.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<unicable version="20100522">
+<unicable version="20150626">
<!--
structur of tree
unicable (version)
@@ -13,7 +13,7 @@ unicable (version)
| | manufacturer (name)
| | |\
| | | \
- | | | product (name, position, sc11-scr8. lofl, lofh, loft)
+ | | | product (name, position, format, scr1-scr32, lofl, lofh, loft)
| | |
| | |\
| | | \
@@ -59,13 +59,27 @@ unicable (version)
-->
<lnb>
- <manufacturer name="DUR-line">
- <product name="Unicable LNB" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ <manufacturer name="Dura-Sat(DUR-line)">
+ <product name="UK101" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ <product name="UK102" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ </manufacturer>
+ <manufacturer name="EDISON">
+ <product name="SCR-1" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ </manufacturer>
+ <manufacturer name="Fuba">
+ <product name="DEK 342" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
</manufacturer>
<manufacturer name="G-STAR">
<product name="GS-404-L1" scr1="1280" scr2="1382" scr3="1484"/>
<product name="GS-406-L1" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
</manufacturer>
+ <manufacturer name="GT-SAT">
+ <product name="GT-S1-2-3SCR4" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ <product name="dLNB dHello" format="EN50607"
+ scr1="0975" scr2="1025" scr3="1075" scr4="1125" scr5="1175" scr6="1225" scr7="1275" scr8="1325"
+ scr9="1375" scr10="1425" scr11="1475" scr12="1525" scr13="1575" scr14="1625" scr15="1675" scr16="1725"
+ scr17="1775" scr18="1825" scr19="1875" scr20="1925" scr21="1975" scr22="2025" scr23="2075" scr24="2125"/>
+ </manufacturer>
<manufacturer name="Humax">
<product name="150 SCR" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
</manufacturer>
@@ -82,6 +96,18 @@ unicable (version)
<manufacturer name="Radix">
<product name="Unicable LNB" scr1="1680" scr2="1420" scr3="2040" scr4="1210"/>
</manufacturer>
+ <manufacturer name="Sharp">
+ <product name="BS1R8EL600A" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ </manufacturer>
+ <manufacturer name="Schwaiger">
+ <product name="SPS6941 531" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ </manufacturer>
+ <manufacturer name="Telestar">
+ <product name="Skywire HC LNB" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ </manufacturer>
+ <manufacturer name="Triax">
+ <product name="TSC 001" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ </manufacturer>
<manufacturer name="Wisi">
<product name="OC 05" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
</manufacturer>
@@ -101,31 +127,116 @@ unicable (version)
<product name="UCS 92420" positions="2" scr1="1400" scr2="1632" scr3="1284" scr4="1516"/>
<product name="UCS 92440" positions="2" scr1="1400" scr2="1632" scr3="1284" scr4="1516"/>
</manufacturer>
+ <manufacturer name="Astra Strobel">
+ <product name="SEV 103" format="EN50494" positions="1" scr1="1284" scr2="1400" scr3="1514"/>
+ <product name="SEV 108" format="EN50494" positions="1" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ <product name="SEV 208" format="EN50494" positions="2" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ </manufacturer>
+ <manufacturer name="Axing">
+ <product name="SES 556-19" format="EN50494" positions="1" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="SES 556-09" format="EN50494" positions="1" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="SES 996-19" format="EN50494" positions="2" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="SES 996-09" format="EN50494" positions="2" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="SES 46-00" format="EN50494" positions="1" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="SES 86-00" format="EN50494" positions="2" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ </manufacturer>
<manufacturer name="DCT Delta">
- <product name="SUM518" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
+ <product name="SUM518" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096" alias1="SCR0" alias2="SCR1" alias3="SCR2" alias4="SCR3" alias5="SCR4" alias6="SCR5" alias7="SCR6" alias8="SCR7"/>
<product name="SUM918" positions="2" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
<product name="SUM928" positions="2" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
</manufacturer>
- <manufacturer name="Dura-Sat">
+ <manufacturer name="Dura-Sat(Dur-Line)">
+ <product name="Dur-DCR5-1-8(L4/K)" format="JESS" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790" scr7="1892" scr8="1994"/>
+ <product name="DCR 5-2-4" scr1="1280" scr2="1382" scr3="1484" scr4="1586"/>
+ <product name="UCP2" scr1="1400" scr2="1516"/>
+ <product name="UCP3" scr1="1280" scr2="1382" scr3="1484"/>
<product name="UCP18" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
+ <product name="UCP20" scr1="1210" scr2="1420"/>
+ <product name="UCP30" scr1="1210" scr2="1420" scr3="1680"/>
<product name="VDU543NT" scr1="1280" scr2="1382" scr3="1484"/>
<product name="VDU563NT" scr1="1280" scr2="1382" scr3="1484"/>
<product name="VDU583NT" scr1="1280" scr2="1382" scr3="1484"/>
<product name="VDU586NT" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
<product name="VDU983NT" positions="2" scr1="1280" scr2="1382" scr3="1484"/>
</manufacturer>
+ <manufacturer name="EMP-Centauri">
+ <product name="MS4/1(6)EUN-3" positions="1" scr1="1400" scr2="1632" scr3="1284" scr4="1516" scr5="1864" scr6="2096"/>
+ <product name="MS4/1(8)PIN-4" positions="1" scr1="1080" scr2="1176" scr3="1237" scr4="1413" scr5="1555" scr6="1668" scr7="1842" scr8="1960" />
+ <product name="MS8/1(8)PIN-4" positions="2" scr1="1080" scr2="1176" scr3="1237" scr4="1413" scr5="1555" scr6="1668" scr7="1842" scr8="1960"/>
+ <product name="MS5/5+2PIP-4" positions="1" scr1="1080" scr2="1176" scr3="1237" scr4="1413" scr5="1555" scr6="1668" scr7="1842" scr8="1960" />
+ <product name="MS5/5+2PEP-4" positions="1" scr1="1080" scr2="1176" scr3="1237" scr4="1413" scr5="1555" scr6="1668" scr7="1842" scr8="1960" />
+ </manufacturer>
+ <manufacturer name="Fuba">
+ <product name="MCR 212" format="EN50494" positions="1" scr1="1400" scr2="1516"/>
+ <product name="MCR 221" format="EN50607" positions="1" scr1="1280" scr2="1382"/>
+ <product name="MCR 441" format="EN50607" positions="1" scr1="1280" scr2="1382" scr3="1484" scr4="1586"/>
+ <product name="MCR 518" format="EN50494" positions="1" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ <product name="MCR 918" format="EN50494" positions="2" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ </manufacturer>
<manufacturer name="G-STAR">
<product name="GS-506-S1" scr1="1280" scr2="1382" scr3="1484"/>
<product name="GS-516-S1" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
</manufacturer>
+ <manufacturer name="GSS (Grundig SAT-Systems)">
+ <product name="SDUC 502" positions="1" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
+ <product name="SDUC 902" positions="2" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
+ </manufacturer>
<manufacturer name="Inverto">
- <product name="IDLP-UST11O-CUO1O-8PP" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ <product name="IDLP-UST1O1-CUO1O-4PP" format="DiSEqC" positions="1" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ <product name="IDLP-UST11O-CUO1O-8PP" format="DiSEqC" positions="1" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ <product name="IDLP-UST112-CUO1O-8PP" format="DiSEqC" positions="1" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ <product name="IDLP-USS200-CUO10-8PP" format="DiSEqC" positions="2" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ </manufacturer>
+ <manufacturer name="Johansson">
+ <product name="9712A" format="DiSEqC" positions="1" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9730I" format="DiSEqC" positions="1" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ <product name="9740" format="DiSEqC" positions="1" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9740D" format="DiSEqC" positions="1" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9740I" format="DiSEqC" positions="1" scr1="1210" scr2="1420" scr3="1680"/>
+ <product name="9742" format="DiSEqC" positions="1" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9742D" format="DiSEqC" positions="1" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9742I" format="DiSEqC" positions="1" scr1="1210" scr2="1420" scr3="1680"/>
+ <product name="9750" format="DiSEqC" positions="2" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9750D" format="DiSEqC" positions="2" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9750I" format="DiSEqC" positions="2" scr1="1210" scr2="1420" scr3="1680"/>
+ <product name="9752" format="DiSEqC" positions="2" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9752D" format="DiSEqC" positions="2" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9752I" format="DiSEqC" positions="2" scr1="1210" scr2="1420" scr3="1680"/>
+ <product name="9760" format="JESS" positions="4" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9760D" format="JESS" positions="4" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9760I" format="JESS" positions="4" scr1="1210" scr2="1420" scr3="1680"/>
+ <product name="9762" format="JESS" positions="4" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9762D" format="JESS" positions="4" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="9762I" format="JESS" positions="4" scr1="1210" scr2="1420" scr3="1680"/>
</manufacturer>
<manufacturer name="JULTEC">
- <product name="JPS0501-6" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
- <product name="JPS0502-3" scr1="1280" scr2="1382" scr3="1484"/>
- <product name="JPS0502-6" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
- <product name="JPS0504-3" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JPS0501-12" format="JESS" scr1="974" scr2="1076" scr3="1178" scr4="1280" scr5="1382" scr6="1484" scr7="1586" scr8="1688" scr9="1790" scr10="1892" scr11="1994" scr12="2096"/>
+ <product name="JPS0501-8(A/M/T)" format="JESS" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ <product name="JPS0501-6" format="JESS" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="JPS0502-3" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JPS0502-6" format="JESS" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="JPS0504-3" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JPS0506-3" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JPS0508-3" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JRS0502-2+4" format="JESS" scr1="1280" scr2="1382"/>
+ <product name="JRS0504-2" format="JESS" scr1="1280" scr2="1382"/>
+ <product name="JPS0901-6" positions="2" format="JESS" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="JPS0901-12" positions="2" format="JESS" scr1="974" scr2="1076" scr3="1178" scr4="1280" scr5="1382" scr6="1484" scr7="1586" scr8="1688" scr9="1790" scr10="1892" scr11="1994" scr12="2096"/>
+ <product name="JPS0902-3" positions="2" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JPS0902-6" positions="2" format="JESS" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="JPS0904-3" positions="2" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JPS0904-6" positions="2" format="JESS" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="JPS0906-3" positions="2" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JPS0908-3" positions="2" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JRS0902-2+4" positions="2" format="JESS" scr1="1280" scr2="1382"/>
+ <product name="JRS0904-2" positions="2" format="JESS" scr1="1280" scr2="1382"/>
+ <product name="JPS1701-12" positions="4" format="JESS" scr1="974" scr2="1076" scr3="1178" scr4="1280" scr5="1382" scr6="1484" scr7="1586" scr8="1688" scr9="1790" scr10="1892" scr11="1994" scr12="2096"/>
+ <product name="JPS1702-12" positions="4" format="JESS" scr1="974" scr2="1076" scr3="1178" scr4="1280" scr5="1382" scr6="1484" scr7="1586" scr8="1688" scr9="1790" scr10="1892" scr11="1994" scr12="2096"/>
+ <product name="JPS1702-6" positions="4" format="JESS" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="JPS1704-3" positions="4" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JPS1704-6" positions="4" format="JESS" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790"/>
+ <product name="JPS1706-3" positions="4" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="JPS1708-3" positions="4" format="JESS" scr1="1280" scr2="1382" scr3="1484"/>
</manufacturer>
<manufacturer name="Kathrein">
<product name="EXR501" scr1="1400" scr2="1516" scr3="1632" scr4="1748"/>
@@ -142,28 +253,74 @@ unicable (version)
<product name="EXR2942" positions="2" scr1="1284" scr2="1400" scr3="1516" scr4="1632"/>
<product name="EXR2981" positions="2" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
<product name="EXU908" positions="2" scr1="1284" scr2="1400" scr3="1516" scr4="1632"/>
+ <product name="EXE 159" format="SCD2" scr1="974" permpin1="151" scr2="1076" permpin2="052" scr3="1178" permpin3="133" scr4="1280" permpin4="124" scr5="1382" permpin5="205" scr6="1484" permpin6="196" scr7="1586" permpin7="187" scr8="1688" permpin8="178" scr9="1790" permpin9="099"/>
+ <product name="EXE 259" format="SCD2" scr1="974" permpin1="151" scr2="1076" permpin2="052" scr3="1178" permpin3="133" scr4="1280" permpin4="124" scr5="1382" permpin5="205" scr6="1484" permpin6="196" scr7="1586" permpin7="187" scr8="1688" permpin8="178" scr9="1790" permpin9="099"/>
+ </manufacturer>
+ <manufacturer name="Kreiling">
+ <product name="KR 2-1-2 Uni-D" format="DiSEqC" positions="2" scr1="1400" scr2="1516"/>
+ <product name="KR 5-1+4" format="DiSEqC" positions="1" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790" scr7="1892" scr8="1994"/>
+ <product name="KR 5-2+4" format="DiSEqC" positions="1" scr1="1280" scr2="1382" scr3="1484" scr4="1586"/>
+ <product name="KR 5-5-1-8" format="DiSEqC" positions="1" scr1="1280" scr2="1382" scr3="1484" scr4="1586" scr5="1688" scr6="1790" scr7="1892" scr8="1994"/>
+ <product name="KR 5-5-2-4" format="DiSEqC" positions="1" scr1="1280" scr2="1382" scr3="1484" scr4="1586"/>
+ </manufacturer>
+ <manufacturer name="Rogetech">
+ <product name="CMS-518C" format="EN50494" positions="1" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
</manufacturer>
<manufacturer name="ROTEK">
<product name="EKL2/1" scr1="1400" scr2="1516"/>
<product name="EKL2/1E" scr3="1632" scr4="1748"/>
</manufacturer>
+ <manufacturer name="SetOne">
+ <product name="SCR 5/8" positions="1" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
+ </manufacturer>
<manufacturer name="Smart">
- <product name="DPA 51" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
+ <product name="DPA 51" format="DiSEqC" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
+ <product name="DPA 524 L" format="JESS" scr1="1280" scr2="1382" scr3="1484" scr4="1586"/>
+ </manufacturer>
+ <manufacturer name="Spaun">
+ <product name="SUS 21 F" format="EN50494" scr1="1076" scr2="1178"/>
+ <product name="SUS 21 FI" format="EN50494" scr1="1210" scr2="1420"/>
+ <product name="SUS 4441 F" format="EN50494" scr1="1210" scr2="1420" scr3="1680" scr4="2040"/>
+ <product name="SUS 5541 F-NFA" format="EN 50494" scr1="0974" scr2="1076" scr3="1178" scr4="1280"/>
+ <product name="SUS 5581 F-NFA" format="UniSEqC" scr1="0974" scr2="1076" scr3="1178" scr4="1280" scr5="1382" scr6="1484" scr7="1586" scr8="1688"/>
+ <product name="SUS 5581 F-NFA" format="UniSEqC" scr1="0974" scr2="1076" scr3="1178" scr4="1280" scr5="1382" scr6="1484" scr7="1586" scr8="1688"/>
+ <product name="SUS 5581 F-NFA" format="UniSEqC" scr1="0974" scr2="1076" scr3="1178" scr4="1280" scr5="1382" scr6="1484" scr7="1586" scr8="1688"/>
+ <product name="SUS 5581 NF 1x8" format="UniSEqC" scr1="1068" scr2="1284" scr3="1400" scr4="1516" scr5="1632" scr6="1748" scr7="1864" scr8="1980"/>
+ <product name="SUS 5581 NF 3x3 1" format="UniSEqC" scr1="1068" scr2="1284" scr3="1400"/>
+ <product name="SUS 5581 NF 3x3 1" format="UniSEqC" scr1="1516" scr2="1632" scr3="1748"/>
+ <product name="SUS 5581 NF 3x3 1" format="UniSEqC" scr1="1864" scr2="1980" scr3="2096"/>
+ <product name="SUS 5581 NF Leg 1x8" format="UniSEqC" scr1="0974" scr2="1076" scr3="1178" scr4="1280" scr5="1382" scr6="1484" scr7="1586" scr8="1688"/>
+ <product name="SUS 5581 NF Leg 3x3 1" format="UniSEqC" scr1="0974" scr2="1076" scr3="1178"/>
+ <product name="SUS 5581 NF Leg 3x3 1" format="UniSEqC" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="SUS 5581 NF Leg 3x3 1" format="UniSEqC" scr1="1586" scr2="1688" scr3="1790"/>
</manufacturer>
<manufacturer name="Technisat">
+ <product name="TechniRouter Mini 2/1x2" format="EN50494" positions="2" scr1="1284" scr2="1400" permpin1="111" permpin2="222"/>
<product name="TechniRouter 5/1x8" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
<product name="TechniRouter 9/1x8" positions="2" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
<product name="TechniRouter 5/2x4" scr1="1284" scr2="1400" scr3="1516" scr4="1632"/>
<product name="TechniRouter 9/2x4" positions="2" scr1="1284" scr2="1400" scr3="1516" scr4="1632"/>
</manufacturer>
- <manufacturer name="Telstar">
+ <manufacturer name="Telestar">
<product name="SCR 5/1x8" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
<product name="SCR 9/1x8" positions="2" scr1="1284" scr2="1400" scr3="1516" scr4="1632" scr5="1748" scr6="1864" scr7="1980" scr8="2096"/>
<product name="SCR 5/2x4" scr1="1284" scr2="1400" scr3="1516" scr4="1632"/>
<product name="SCR 9/2x4" positions="2" scr1="1284" scr2="1400" scr3="1516" scr4="1632"/>
</manufacturer>
+ <manufacturer name="Triax">
+ <product name="TUM 518" format="EN50494" positions="1" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ <product name="TUM 918" format="EN50494" positions="2" scr1="1076" scr2="1178" scr3="1280" scr4="1382" scr5="1484" scr6="1586" scr7="1688" scr8="1790"/>
+ <product name="TUM 543C" format="EN50607" positions="1" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="TUM 583C" format="EN50607" positions="1" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="TUM 943C" format="EN50607" positions="2" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="TUM 983C" format="EN50607" positions="2" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="TUM 1743C" format="EN50607" positions="4" scr1="1280" scr2="1382" scr3="1484"/>
+ <product name="TUM 1783C" format="EN50607" positions="4" scr1="1280" scr2="1382" scr3="1484"/>
+ </manufacturer>
<manufacturer name="Wisi">
+ <product name="DY 64 1800" scr1="1178" scr2="1280" scr3="1382" scr4="1484" scr5="1586" scr6="1688" scr7="1790" scr8="1892"/>
<product name="DY 64 1810" scr1="1178" scr2="1280" scr3="1382" scr4="1484" scr5="1586" scr6="1688" scr7="1790" scr8="1892"/>
+ <product name="DY 64 2400" scr1="1178" scr2="1280" scr3="1382" scr4="1484"/>
<product name="DY 64 2410" scr1="1178" scr2="1280" scr3="1382" scr4="1484"/>
<product name="DY 68 1810" positions="2" scr1="1178" scr2="1280" scr3="1382" scr4="1484" scr5="1586" scr6="1688" scr7="1790" scr8="1892"/>
<product name="DY 68 2410" positions="2" scr1="1178" scr2="1280" scr3="1382" scr4="1484"/>
diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index cf6ef6f..ae40483 100755
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -666,7 +666,7 @@ int eDVBFrontend::closeFrontend(bool force, bool no_delayed)
{
if (!no_delayed)
{
- m_sec->prepareTurnOffSatCR(*this, m_data[SATCR]);
+ m_sec->prepareTurnOffSatCR(*this);
m_tuneTimer->start(0, true);
if(!m_tuneTimer->isActive())
{
diff --git a/lib/dvb/frontend.h b/lib/dvb/frontend.h
index 3e8cdbd..11c5dfd 100644
--- a/lib/dvb/frontend.h
+++ b/lib/dvb/frontend.h
@@ -64,6 +64,8 @@ public:
CUR_VOLTAGE, // current voltage
CUR_TONE, // current continuous tone
SATCR, // current SatCR
+ DICTION, // current diction
+ PIN, // pin
NUM_DATA_ENTRIES
};
Signal1<void,iDVBFrontend*> m_stateChanged;
diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h
index da844c5..3dd3481 100644
--- a/lib/dvb/idvb.h
+++ b/lib/dvb/idvb.h
@@ -491,7 +491,7 @@ class iDVBSatelliteEquipmentControl: public iObject
{
public:
virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, const eDVBFrontendParametersSatellite &sat, int frontend_id, unsigned int timeout)=0;
- virtual void prepareTurnOffSatCR(iDVBFrontend &frontend, int satcr)=0;
+ virtual void prepareTurnOffSatCR(iDVBFrontend &frontend)=0;
virtual int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *fe, int frontend_id, int *highest_score_lnb=0)=0;
virtual void setRotorMoving(int slotid, bool)=0;
};
diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp
index 851e9b1..08976ef 100644
--- a/lib/dvb/sec.cpp
+++ b/lib/dvb/sec.cpp
@@ -330,7 +330,6 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
lnb_param.guard_offset = 0; //HACK
- frontend.setData(eDVBFrontend::SATCR, lnb_param.SatCR_idx);
if (diseqc13V)
voltage_mode = eDVBSatelliteSwitchParameters::HV;
@@ -400,21 +399,52 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
}
else
{
- int tmp1 = abs(sat.frequency
- -lof)
- + lnb_param.SatCRvco
- - 1400000
- + lnb_param.guard_offset;
- int tmp2 = ((((tmp1 * 2) / 4000) + 1) / 2) * 4000;
- parm.FREQUENCY = lnb_param.SatCRvco - (tmp1-tmp2) + lnb_param.guard_offset;
- lnb_param.UnicableTuningWord = ((tmp2 / 4000)
- | ((band & 1) ? 0x400 : 0) //HighLow
- | ((band & 2) ? 0x800 : 0) //VertHor
- | ((lnb_param.LNBNum & 1) ? 0 : 0x1000) //Umschaltung LNB1 LNB2
- | (lnb_param.SatCR_idx << 13)); //Adresse des SatCR
- eDebug("[prepare] UnicableTuningWord %#04x",lnb_param.UnicableTuningWord);
- eDebug("[prepare] guard_offset %d",lnb_param.guard_offset);
- frontend.setData(eDVBFrontend::FREQ_OFFSET, (lnb_param.UnicableTuningWord & 0x3FF) *4000 + 1400000 + lof - (2 * (lnb_param.SatCRvco - (tmp1-tmp2))) );
+ switch(lnb_param.SatCR_format)
+ {
+ case 1:
+ {
+ eDebug("[prepare] JESS");
+
+ int tmp1 = abs(sat.frequency
+ -lof)
+ - 100000;
+ volatile unsigned int tmp2 = (1000 + 2 * tmp1) / (2 *1000); //round to multiple of 1000
+ parm.FREQUENCY = lnb_param.SatCRvco - (tmp1 - (1000 * tmp2));
+ frontend.setData(eDVBFrontend::FREQ_OFFSET, sat.frequency - lof -(lnb_param.SatCRvco - parm.FREQUENCY));
+
+ lnb_param.UnicableTuningWord =
+ (band & 0x3) //Bit0:HighLow Bit1:VertHor
+ | (((lnb_param.LNBNum - 1) & 0x3F) << 2) //position number (max. 63)
+ | ((tmp2 & 0x7FF)<< 8) //frequency (-100MHz Offset)
+ | ((lnb_param.SatCR_idx & 0x1F) << 19); //adresse of SatCR (max. 32)
+
+ eDebug("[prepare] UnicableTuningWord %#06x",lnb_param.UnicableTuningWord);
+ }
+ break;
+ case 0:
+ default:
+ {
+ eDebug("[prepare] Unicable");
+ int tmp1 = abs(sat.frequency
+ -lof)
+ + lnb_param.SatCRvco
+ - 1400000
+ + lnb_param.guard_offset;
+ volatile unsigned int tmp2 = (4000 + 2 * tmp1) / (2 *4000); //round to multiple of 4000
+
+ parm.FREQUENCY = lnb_param.SatCRvco - (tmp1 - (4000 * tmp2)) + lnb_param.guard_offset;
+ lnb_param.UnicableTuningWord = tmp2
+ | ((band & 1) ? 0x400 : 0) //HighLow
+ | ((band & 2) ? 0x800 : 0) //VertHor
+ | ((lnb_param.LNBNum & 1) ? 0 : 0x1000) //Umschaltung LNB1 LNB2
+ | (lnb_param.SatCR_idx << 13); //Adresse des SatCR
+
+ eDebug("[prepare] UnicableTuningWord %#04x",lnb_param.UnicableTuningWord);
+ eDebug("[prepare] guard_offset %d",lnb_param.guard_offset);
+
+ frontend.setData(eDVBFrontend::FREQ_OFFSET, (lnb_param.UnicableTuningWord & 0x3FF) *4000 + 1400000 + lof - (2 * (lnb_param.SatCRvco - (tmp1 - (4000 * tmp2)))) );
+ }
+ }
voltage = VOLTAGE(13);
}
@@ -711,15 +741,104 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, VOLTAGE(18)) );
sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, iDVBFrontend::toneOff) );
sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_SWITCH_CMDS]) ); // wait 20 ms after voltage change
-
+
eDVBDiseqcCommand diseqc;
memset(diseqc.data, 0, MAX_DISEQC_LENGTH);
- diseqc.len = 5;
- diseqc.data[0] = 0xE0;
- diseqc.data[1] = 0x10;
- diseqc.data[2] = 0x5A;
- diseqc.data[3] = lnb_param.UnicableTuningWord >> 8;
- diseqc.data[4] = lnb_param.UnicableTuningWord;
+
+ long oldSatcr, oldPin, oldDiction;
+ frontend.getData(eDVBFrontend::SATCR, oldSatcr);
+ frontend.getData(eDVBFrontend::PIN, oldPin);
+ frontend.getData(eDVBFrontend::DICTION, oldDiction);
+
+ if((oldSatcr != -1) && (oldSatcr != lnb_param.SatCR_idx))
+ {
+ switch (oldDiction)
+ {
+ case 1:
+ if(oldPin < 1)
+ {
+ diseqc.len = 4;
+ diseqc.data[0] = 0x70;
+ }
+ else
+ {
+ diseqc.len = 5;
+ diseqc.data[0] = 0x71;
+ diseqc.data[4] = oldPin;
+ }
+ diseqc.data[1] = oldSatcr << 3;
+ diseqc.data[2] = 0x00;
+ diseqc.data[3] = 0x00;
+ break;
+ case 0:
+ default:
+ if(oldPin < 1)
+ {
+ diseqc.len = 5;
+ diseqc.data[2] = 0x5A;
+ }
+ else
+ {
+ diseqc.len = 6;
+ diseqc.data[2] = 0x5C;
+ diseqc.data[5] = oldPin;
+ }
+ diseqc.data[0] = 0xE0;
+ diseqc.data[1] = 0x10;
+ diseqc.data[3] = oldSatcr << 5;
+ diseqc.data[4] = 0x00;
+ break;
+ }
+ sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
+ sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_LAST_DISEQC_CMD]) );
+ frontend.setData(eDVBFrontend::SATCR, -1);
+ }
+
+ frontend.setData(eDVBFrontend::DICTION, lnb_param.SatCR_format);
+//TODO frontend.setData(eDVBFrontend::PIN, lnb_param.SatCR_pin);
+
+ long pin = 0; // hack
+
+ switch(lnb_param.SatCR_format)
+ {
+ case 1: //JESS
+ if(pin < 1)
+ {
+ diseqc.len = 4;
+ diseqc.data[0] = 0x70;
+ diseqc.data[1] = lnb_param.UnicableTuningWord >> 16;
+ diseqc.data[2] = lnb_param.UnicableTuningWord >> 8;
+ diseqc.data[3] = lnb_param.UnicableTuningWord;
+ }
+ else
+ {
+ diseqc.len = 5;
+ diseqc.data[0] = 0x71;
+ diseqc.data[4] = pin;
+ }
+ diseqc.data[1] = lnb_param.UnicableTuningWord >> 16;
+ diseqc.data[2] = lnb_param.UnicableTuningWord >> 8;
+ diseqc.data[3] = lnb_param.UnicableTuningWord;
+ break;
+ case 0: //DiSEqC
+ default:
+ if(pin < 1)
+ {
+ diseqc.len = 5;
+ diseqc.data[2] = 0x5A;
+ }
+ else
+ {
+ diseqc.len = 6;
+ diseqc.data[2] = 0x5C;
+ diseqc.data[5] = pin;
+ }
+ diseqc.data[0] = 0xE0;
+ diseqc.data[1] = 0x10;
+ diseqc.data[3] = lnb_param.UnicableTuningWord >> 8;
+ diseqc.data[4] = lnb_param.UnicableTuningWord;
+ }
+ frontend.setData(eDVBFrontend::SATCR, lnb_param.SatCR_idx);
sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_LAST_DISEQC_CMD]) );
@@ -954,8 +1073,9 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
return -1;
}
-void eDVBSatelliteEquipmentControl::prepareTurnOffSatCR(iDVBFrontend &frontend, int satcr)
+void eDVBSatelliteEquipmentControl::prepareTurnOffSatCR(iDVBFrontend &frontend)
{
+ long satcr, diction, pin;
eSecCommandList sec_sequence;
// check if voltage is disabled
@@ -973,12 +1093,48 @@ void eDVBSatelliteEquipmentControl::prepareTurnOffSatCR(iDVBFrontend &frontend,
eDVBDiseqcCommand diseqc;
memset(diseqc.data, 0, MAX_DISEQC_LENGTH);
- diseqc.len = 5;
- diseqc.data[0] = 0xE0;
- diseqc.data[1] = 0x10;
- diseqc.data[2] = 0x5A;
- diseqc.data[3] = satcr << 5;
- diseqc.data[4] = 0x00;
+ frontend.getData(eDVBFrontend::SATCR, satcr);
+ frontend.getData(eDVBFrontend::DICTION, diction);
+ frontend.getData(eDVBFrontend::PIN, pin);
+
+ switch (diction)
+ {
+ case 1:
+ if(pin < 1)
+ {
+ diseqc.len = 4;
+ diseqc.data[0] = 0x70;
+ }
+ else
+ {
+ diseqc.len = 5;
+ diseqc.data[0] = 0x71;
+ diseqc.data[4] = pin;
+ }
+ diseqc.data[1] = satcr << 3;
+ diseqc.data[2] = 0x00;
+ diseqc.data[3] = 0x00;
+ break;
+ case 0:
+ default:
+ if(pin < 1)
+ {
+ diseqc.len = 5;
+ diseqc.data[2] = 0x5A;
+ }
+ else
+ {
+ diseqc.len = 6;
+ diseqc.data[2] = 0x5C;
+ diseqc.data[5] = pin;
+ }
+ diseqc.data[0] = 0xE0;
+ diseqc.data[1] = 0x10;
+ diseqc.data[3] = satcr << 5;
+ diseqc.data[4] = 0x00;
+ break;
+ }
+ frontend.setData(eDVBFrontend::SATCR, -1);
sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_LAST_DISEQC_CMD]) );
@@ -1254,6 +1410,18 @@ RESULT eDVBSatelliteEquipmentControl::setInputpowerDelta(int delta)
}
/* Unicable Specific Parameters */
+RESULT eDVBSatelliteEquipmentControl::setLNBSatCRformat(int SatCR_format)
+{
+ eSecDebug("eDVBSatelliteEquipmentControl::setLNBSatCRformat(%d)", SatCR_format);
+ if(!((SatCR_format >-1) && (SatCR_format < 2)))
+ return -EPERM;
+ if ( currentLNBValid() )
+ m_lnbs[m_lnbidx].SatCR_format = SatCR_format;
+ else
+ return -ENOENT;
+ return 0;
+}
+
RESULT eDVBSatelliteEquipmentControl::setLNBSatCR(int SatCR_idx)
{
eSecDebug("eDVBSatelliteEquipmentControl::setLNBSatCR(%d)", SatCR_idx);
@@ -1299,6 +1467,13 @@ RESULT eDVBSatelliteEquipmentControl::getLNBSatCRpositions()
return -ENOENT;
}
+RESULT eDVBSatelliteEquipmentControl::getLNBSatCRformat()
+{
+ if ( currentLNBValid() )
+ return m_lnbs[m_lnbidx].SatCR_format;
+ return -ENOENT;
+}
+
RESULT eDVBSatelliteEquipmentControl::getLNBSatCR()
{
if ( currentLNBValid() )
diff --git a/lib/dvb/sec.h b/lib/dvb/sec.h
index ef8b1e0..ca3e7f2 100644
--- a/lib/dvb/sec.h
+++ b/lib/dvb/sec.h
@@ -260,11 +260,12 @@ public:
#define guard_offset_min -8000
#define guard_offset_max 8000
#define guard_offset_step 8000
-#define MAX_SATCR 8
-#define MAX_LNBNUM 32
+#define MAX_SATCR 32
+#define MAX_LNBNUM 64
int SatCR_positions;
int SatCR_idx;
+ int SatCR_format;
unsigned int SatCRvco;
unsigned int UnicableTuningWord;
unsigned int UnicableConfigWord;
@@ -323,7 +324,7 @@ public:
#ifndef SWIG
eDVBSatelliteEquipmentControl(eSmartPtrList<eDVBRegisteredFrontend> &avail_frontends, eSmartPtrList<eDVBRegisteredFrontend> &avail_simulate_frontends);
RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, const eDVBFrontendParametersSatellite &sat, int frontend_id, unsigned int tunetimeout);
- void prepareTurnOffSatCR(iDVBFrontend &frontend, int satcr); // used for unicable
+ void prepareTurnOffSatCR(iDVBFrontend &frontend); // used for unicable
int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *, int frontend_id, int *highest_score_lnb=0);
bool currentLNBValid() { return m_lnbidx > -1 && m_lnbidx < (int)(sizeof(m_lnbs) / sizeof(eDVBSatelliteLNBParameters)); }
#endif
@@ -357,9 +358,11 @@ public:
RESULT setInputpowerDelta(int delta); // delta between running and stopped rotor
RESULT setRotorTurningSpeed(int speed); // set turning speed..
/* Unicable Specific Parameters */
+ RESULT setLNBSatCRformat(int SatCR_format); //DiSEqc or JESS (or ...)
RESULT setLNBSatCR(int SatCR_idx);
RESULT setLNBSatCRvco(int SatCRvco);
RESULT setLNBSatCRpositions(int SatCR_positions);
+ RESULT getLNBSatCRformat(); //DiSEqc or JESS (or ...)
RESULT getLNBSatCR();
RESULT getLNBSatCRvco();
RESULT getLNBSatCRpositions();
diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py
index c68e521..ce063b4 100755
--- a/lib/python/Components/NimManager.py
+++ b/lib/python/Components/NimManager.py
@@ -265,7 +265,7 @@ class SecConfigure:
pass
lnbSat = {}
- for x in range(1,37):
+ for x in range(1,69):
lnbSat[x] = []
#wildcard for all satellites ( for rotor )
@@ -282,12 +282,12 @@ class SecConfigure:
print "add", x[0], "to", lnb
lnbSat[lnb].append(x[0])
- for x in range(1,37):
+ for x in range(1,69):
if len(lnbSat[x]) > 0:
currLnb = config.Nims[slotid].advanced.lnb[x]
sec.addLNB()
- if x < 33:
+ if x < 65:
sec.setLNBNum(x)
tunermask = 1 << slotid
@@ -310,24 +310,46 @@ class SecConfigure:
manufacturer_name = configManufacturer.value
manufacturer = ProductDict[manufacturer_name]
product_name = manufacturer.product.value
- sec.setLNBSatCR(manufacturer.scr[product_name].index)
- sec.setLNBSatCRvco(manufacturer.vco[product_name][manufacturer.scr[product_name].index].value*1000)
- sec.setLNBSatCRpositions(manufacturer.positions[product_name][0].value)
- sec.setLNBLOFL(manufacturer.lofl[product_name][0].value * 1000)
- sec.setLNBLOFH(manufacturer.lofh[product_name][0].value * 1000)
- sec.setLNBThreshold(manufacturer.loft[product_name][0].value * 1000)
- configManufacturer.save_forced = True
- manufacturer.product.save_forced = True
- manufacturer.vco[product_name][manufacturer.scr[product_name].index].save_forced = True
-
+ manufacturer_scr = manufacturer.scr
+ manufacturer_positions_value = manufacturer.positions[product_name][0].value
+ position_idx = (x-1) % manufacturer_positions_value
+ if product_name in manufacturer_scr:
+ diction = manufacturer.diction[product_name].value
+ if x <= manufacturer_positions_value or diction !="EN50607": #for every allowed position
+ sec.setLNBSatCR(manufacturer_scr[product_name].index)
+
+ if diction =="EN50607":
+ sec.setLNBSatCRformat(1) #JESS
+ else:
+ sec.setLNBSatCRformat(0) #DiSEqC
+ sec.setLNBSatCRvco(manufacturer.vco[product_name][manufacturer_scr[product_name].index].value*1000)
+ sec.setLNBSatCRpositions(manufacturer_positions_value)
+ sec.setLNBLOFL(manufacturer.lofl[product_name][position_idx].value * 1000)
+ sec.setLNBLOFH(manufacturer.lofh[product_name][position_idx].value * 1000)
+ sec.setLNBThreshold(manufacturer.loft[product_name][position_idx].value * 1000)
+ configManufacturer.save_forced = True
+ manufacturer.product.save_forced = True
+ manufacturer.vco[product_name][manufacturer_scr[product_name].index].save_forced = True
+ else: #positionnumber out of range
+ print "positionnumber out of range"
+ else:
+ print "no product in list"
+
if currLnb.unicable.value == "unicable_user":
#TODO satpositions for satcruser
+ if currLnb.dictionuser.value == "EN50607":
+ sec.setLNBSatCRformat(1)
+ sec.setLNBSatCR(currLnb.satcruserEN50607.index)
+ sec.setLNBSatCRvco(currLnb.satcrvcouserEN50607[currLnb.satcruserEN50607.index].value*1000)
+ else:
+ sec.setLNBSatCRformat(0)
+ sec.setLNBSatCR(currLnb.satcruserEN50494.index)
+ sec.setLNBSatCRvco(currLnb.satcrvcouserEN50494[currLnb.satcruserEN50494.index].value*1000)
+
sec.setLNBLOFL(currLnb.lofl.value * 1000)
sec.setLNBLOFH(currLnb.lofh.value * 1000)
sec.setLNBThreshold(currLnb.threshold.value * 1000)
- sec.setLNBSatCR(currLnb.satcruser.index)
- sec.setLNBSatCRvco(currLnb.satcrvcouser[currLnb.satcruser.index].value*1000)
- sec.setLNBSatCRpositions(1) #HACK
+ sec.setLNBSatCRpositions(64) #HACK
elif currLnb.unicable.value == "unicable_matrix":
setupUnicable(currLnb.unicableMatrixManufacturer, currLnb.unicableMatrix)
elif currLnb.unicable.value == "unicable_lnb":
@@ -452,8 +474,8 @@ class SecConfigure:
# finally add the orbital positions
for y in lnbSat[x]:
self.addSatellite(sec, y)
- if x > 32:
- satpos = x > 32 and (3604-(36 - x)) or y
+ if x > 64:
+ satpos = x > 64 and (3604-(68 - x)) or y
else:
satpos = y
currSat = config.Nims[slotid].advanced.sat[satpos]
@@ -474,7 +496,7 @@ class SecConfigure:
elif currSat.tonemode.value == "off":
sec.setToneMode(switchParam.OFF)
- if not currSat.usals.value and x < 34:
+ if not currSat.usals.value and x < 66:
sec.setRotorPosNum(currSat.rotorposition.value)
else:
sec.setRotorPosNum(0) #USALS
@@ -1122,11 +1144,15 @@ def InitNimManager(nimmgr):
root = doc.getroot()
entry = root.find("lnb")
+ lscr=("scr1","scr2","scr3","scr4","scr5","scr6","scr7","scr8","scr9","scr10",
+ "scr11","scr12","scr13","scr14","scr15","scr16","scr17","scr18","scr19","scr20",
+ "scr21","scr22","scr23","scr24","scr25","scr26","scr27","scr28","scr29","scr30",
+ "scr31","scr32")
for manufacturer in entry.getchildren():
m={}
for product in manufacturer.getchildren():
+ p={} #new dict empty for new product
scr=[]
- lscr=("scr1","scr2","scr3","scr4","scr5","scr6","scr7","scr8")
for i in range(len(lscr)):
scr.append(product.get(lscr[i],"0"))
for i in range(len(lscr)):
@@ -1134,21 +1160,36 @@ def InitNimManager(nimmgr):
scr.pop()
else:
break;
- lof=[]
- lof.append(int(product.get("positions",1)))
- lof.append(int(product.get("lofl",9750)))
- lof.append(int(product.get("lofh",10600)))
- lof.append(int(product.get("threshold",11700)))
- scr.append(tuple(lof))
- m.update({product.get("name"):tuple(scr)})
+
+ p.update({"frequencies":tuple(scr)}) #add scr frequencies to dict product
+
+ diction = product.get("format","EN50494").upper()
+ if diction =="JESS" or diction =="UNICABLE2" or diction =="SCD2" or diction =="EN50607":
+ diction = "EN50607"
+ else:
+ diction = "EN50494"
+ p.update({"diction":tuple([diction])}) #add diction to dict product
+
+ positions=[]
+ positions.append(int(product.get("positions",1)))
+ for cnt in range(positions[0]):
+ lof=[]
+ lof.append(int(product.get("lofl",9750)))
+ lof.append(int(product.get("lofh",10600)))
+ lof.append(int(product.get("threshold",11700)))
+ positions.append(tuple(lof))
+
+ p.update({"positions":tuple(positions)}) #add positons to dict product.
+
+ m.update({product.get("name"):p}) #add dict product to dict manufacturer
unicablelnbproducts.update({manufacturer.get("name"):m})
entry = root.find("matrix")
for manufacturer in entry.getchildren():
m={}
for product in manufacturer.getchildren():
+ p={} #new dict empty for new product
scr=[]
- lscr=("scr1","scr2","scr3","scr4","scr5","scr6","scr7","scr8")
for i in range(len(lscr)):
scr.append(product.get(lscr[i],"0"))
for i in range(len(lscr)):
@@ -1156,14 +1197,29 @@ def InitNimManager(nimmgr):
scr.pop()
else:
break;
- lof=[]
- lof.append(int(product.get("positions",1)))
- lof.append(int(product.get("lofl",9750)))
- lof.append(int(product.get("lofh",10600)))
- lof.append(int(product.get("threshold",11700)))
- scr.append(tuple(lof))
- m.update({product.get("name"):tuple(scr)})
- unicablematrixproducts.update({manufacturer.get("name"):m})
+
+ p.update({"frequencies":tuple(scr)}) #add scr frequencies to dict product
+
+ diction = product.get("format","EN50494").upper()
+ if diction =="JESS" or diction =="UNICABLE2" or diction =="SCD2" or diction =="EN50607":
+ diction = "EN50607"
+ else:
+ diction = "EN50494"
+ p.update({"diction":tuple([diction])}) #add diction to dict product
+
+ positions=[]
+ positions.append(int(product.get("positions",1)))
+ for cnt in range(positions[0]):
+ lof=[]
+ lof.append(int(product.get("lofl",9750)))
+ lof.append(int(product.get("lofh",10600)))
+ lof.append(int(product.get("threshold",11700)))
+ positions.append(tuple(lof))
+
+ p.update({"positions":tuple(positions)}) #add positons to dict product
+
+ m.update({product.get("name"):p}) #add dict product to dict manufacturer
+ unicablematrixproducts.update({manufacturer.get("name"):m}) #add dict manufacturer to dict unicablematrixproducts
UnicableLnbManufacturers = unicablelnbproducts.keys()
UnicableLnbManufacturers.sort()
@@ -1176,8 +1232,14 @@ def InitNimManager(nimmgr):
"unicable_user": "Unicable "+_("User defined")}
unicable_choices_default = "unicable_lnb"
- advanced_lnb_satcruser_choices = [ ("1", "SatCR 1"), ("2", "SatCR 2"), ("3", "SatCR 3"), ("4", "SatCR 4"),
- ("5", "SatCR 5"), ("6", "SatCR 6"), ("7", "SatCR 7"), ("8", "SatCR 8")]
+ advanced_lnb_satcr_user_choicesEN50494 = [("1", "SatCR 1"), ("2", "SatCR 2"), ("3", "SatCR 3"), ("4", "SatCR 4"), ("5", "SatCR 5"), ("6", "SatCR 6"), ("7", "SatCR 7"), ("8", "SatCR 8")]
+
+ advanced_lnb_satcr_user_choicesEN50607 = [("1", "SatCR 1"), ("2", "SatCR 2"), ("3", "SatCR 3"), ("4", "SatCR 4"), ("5", "SatCR 5"), ("6", "SatCR 6"), ("7", "SatCR 7"), ("8", "SatCR 8"),
+ ("9", "SatCR 9"), ("10", "SatCR 10"), ("11", "SatCR 11"), ("12", "SatCR 12"), ("13", "SatCR 13"), ("14", "SatCR 14"), ("15", "SatCR 15"), ("16", "SatCR 16"),
+ ("17", "SatCR 17"), ("18", "SatCR 18"), ("19", "SatCR 19"), ("20", "SatCR 20"), ("21", "SatCR 21"), ("22", "SatCR 22"), ("23", "SatCR 23"), ("24", "SatCR 24"),
+ ("25", "SatCR 25"), ("26", "SatCR 26"), ("27", "SatCR 27"), ("28", "SatCR 28"), ("29", "SatCR 29"), ("30", "SatCR 30"), ("31", "SatCR 31"), ("32", "SatCR 32")]
+
+ advanced_lnb_diction_user_choices = [("EN50494", "Unicable(EN50494)"), ("EN50607", "JESS(EN50607)")]
prio_list = [ ("-1", _("Auto")) ]
prio_list += [(str(prio), str(prio)) for prio in range(65)+range(14000,14065)+range(19000,19065)]
@@ -1203,7 +1265,7 @@ def InitNimManager(nimmgr):
advanced_satlist_choices = nimmgr.satList + [
(3601, _('All Satellites')+' 1', 1), (3602, _('All Satellites')+' 2', 1),
(3603, _('All Satellites')+' 3', 1), (3604, _('All Satellites')+' 4', 1)]
- advanced_lnb_choices = [("0", "not available")] + [(str(y), "LNB " + str(y)) for y in range(1, 33)]
+ advanced_lnb_choices = [("0", "not available")] + [(str(y), "LNB " + str(y)) for y in range(1, 65)]
advanced_voltage_choices = [("polarization", _("Polarization")), ("13V", _("13 V")), ("18V", _("18 V"))]
advanced_tonemode_choices = [("band", _("Band")), ("on", _("On")), ("off", _("Off"))]
advanced_lnb_toneburst_choices = [("none", _("None")), ("A", _("A")), ("B", _("B"))]
@@ -1228,81 +1290,127 @@ def InitNimManager(nimmgr):
if isinstance(section.unicable, ConfigNothing):
if lnb == 1:
section.unicable = ConfigSelection(unicable_choices, unicable_choices_default)
- elif lnb == 2:
- section.unicable = ConfigSelection(choices = {"unicable_matrix": _("Unicable Martix"),"unicable_user": "Unicable "+_("User defined")}, default = "unicable_matrix")
+# elif lnb == 2:
else:
- section.unicable = ConfigSelection(choices = {"unicable_user": _("User defined")}, default = "unicable_user")
-
- def fillUnicableConf(sectionDict, unicableproducts, vco_null_check):
- for y in unicableproducts:
- products = unicableproducts[y].keys()
- products.sort()
- tmp = ConfigSubsection()
- tmp.product = ConfigSelection(choices = products, default = products[0])
- tmp.scr = ConfigSubDict()
- tmp.vco = ConfigSubDict()
- tmp.lofl = ConfigSubDict()
- tmp.lofh = ConfigSubDict()
- tmp.loft = ConfigSubDict()
- tmp.positions = ConfigSubDict()
- for z in products:
+ section.unicable = ConfigSelection(choices = {"unicable_matrix": _("Unicable Martix"),"unicable_user": "Unicable "+_("User defined")}, default = "unicable_matrix")
+# section.unicable = ConfigSelection(choices = {"unicable_user": _("User defined")}, default = "unicable_user")
+ def fillUnicableConf(sectionDict, unicableproducts, vco_null_check):
+ for manufacturer in unicableproducts:
+ products = unicableproducts[manufacturer].keys()
+ products.sort()
+ products_valide = []
+ products_valide_append = products_valide.append
+ tmp = ConfigSubsection()
+ tmp.scr = ConfigSubDict()
+ tmp.vco = ConfigSubDict()
+ tmp.lofl = ConfigSubDict()
+ tmp.lofh = ConfigSubDict()
+ tmp.loft = ConfigSubDict()
+ tmp.positions = ConfigSubDict()
+ tmp.diction = ConfigSubDict()
+ for article in products:
+ positionslist = unicableproducts[manufacturer][article].get("positions")
+ positions = int(positionslist[0])
+ dictionlist = [unicableproducts[manufacturer][article].get("diction")]
+ if lnb <= positions or dictionlist[0][0] !="EN50607":
+ tmp.positions[article] = ConfigSubList()
+ tmp.positions[article].append(ConfigInteger(default=positions, limits = (positions, positions)))
+ tmp.diction[article] = ConfigSelection(choices = dictionlist, default = dictionlist[0][0])
+
scrlist = []
- vcolist = unicableproducts[y][z]
- tmp.vco[z] = ConfigSubList()
- for cnt in range(1,1+len(vcolist)-1):
+ scrlist_append = scrlist.append
+ vcolist=unicableproducts[manufacturer][article].get("frequencies")
+ tmp.vco[article] = ConfigSubList()
+ for cnt in range(1,len(vcolist)+1):
vcofreq = int(vcolist[cnt-1])
if vcofreq == 0 and vco_null_check:
- scrlist.append(("%d" %cnt,"SCR %d " %cnt +_("not used")))
+ scrlist_append(("%d" %cnt,"SCR %d " %cnt +_("not used")))
else:
- scrlist.append(("%d" %cnt,"SCR %d" %cnt))
- tmp.vco[z].append(ConfigInteger(default=vcofreq, limits = (vcofreq, vcofreq)))
- tmp.scr[z] = ConfigSelection(choices = scrlist, default = scrlist[0][0])
-
- positions = int(vcolist[len(vcolist)-1][0])
- tmp.positions[z] = ConfigSubList()
- tmp.positions[z].append(ConfigInteger(default=positions, limits = (positions, positions)))
-
- lofl = vcolist[len(vcolist)-1][1]
- tmp.lofl[z] = ConfigSubList()
- tmp.lofl[z].append(ConfigInteger(default=lofl, limits = (lofl, lofl)))
-
- lofh = int(vcolist[len(vcolist)-1][2])
- tmp.lofh[z] = ConfigSubList()
- tmp.lofh[z].append(ConfigInteger(default=lofh, limits = (lofh, lofh)))
-
- loft = int(vcolist[len(vcolist)-1][3])
- tmp.loft[z] = ConfigSubList()
- tmp.loft[z].append(ConfigInteger(default=loft, limits = (loft, loft)))
- sectionDict[y] = tmp
-
- if lnb < 3:
- print "MATRIX"
- section.unicableMatrix = ConfigSubDict()
- section.unicableMatrixManufacturer = ConfigSelection(UnicableMatrixManufacturers, UnicableMatrixManufacturers[0])
- fillUnicableConf(section.unicableMatrix, unicablematrixproducts, True)
-
- if lnb < 2:
- print "LNB"
- section.unicableLnb = ConfigSubDict()
- section.unicableLnbManufacturer = ConfigSelection(UnicableLnbManufacturers, UnicableLnbManufacturers[0])
- fillUnicableConf(section.unicableLnb, unicablelnbproducts, False)
+ scrlist_append(("%d" %cnt,"SCR %d" %cnt))
+ tmp.vco[article].append(ConfigInteger(default=vcofreq, limits = (vcofreq, vcofreq)))
+
+ tmp.scr[article] = ConfigSelection(choices = scrlist, default = scrlist[0][0])
+
+ tmp.lofl[article] = ConfigSubList()
+ tmp.lofh[article] = ConfigSubList()
+ tmp.loft[article] = ConfigSubList()
+
+ tmp_lofl_article_append = tmp.lofl[article].append
+ tmp_lofh_article_append = tmp.lofh[article].append
+ tmp_loft_article_append = tmp.loft[article].append
+
+ for cnt in range(1,positions+1):
+ lofl = int(positionslist[cnt][0])
+ lofh = int(positionslist[cnt][1])
+ loft = int(positionslist[cnt][2])
+ tmp_lofl_article_append(ConfigInteger(default=lofl, limits = (lofl, lofl)))
+ tmp_lofh_article_append(ConfigInteger(default=lofh, limits = (lofh, lofh)))
+ tmp_loft_article_append(ConfigInteger(default=loft, limits = (loft, loft)))
+ products_valide_append(article)
+
+ if len(products_valide)==0:
+ products_valide_append("None")
+ tmp.product = ConfigSelection(choices = products_valide, default = products_valide[0])
+ sectionDict[manufacturer] = tmp
+
+ if lnb < 65:
+ print "MATRIX"
+ section.unicableMatrix = ConfigSubDict()
+ section.unicableMatrixManufacturer = ConfigSelection(UnicableMatrixManufacturers, UnicableMatrixManufacturers[0])
+ fillUnicableConf(section.unicableMatrix, unicablematrixproducts, True)
+
+ if lnb < 2: #Konfiguration nur fuer LNB1 zulassen
+ print "LNB"
+ section.unicableLnb = ConfigSubDict()
+ section.unicableLnbManufacturer = ConfigSelection(UnicableLnbManufacturers, UnicableLnbManufacturers[0])
+ fillUnicableConf(section.unicableLnb, unicablelnbproducts, False)
#TODO satpositions for satcruser
- section.satcruser = ConfigSelection(advanced_lnb_satcruser_choices, default="1")
- tmp = ConfigSubList()
- tmp.append(ConfigInteger(default=1284, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1400, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1516, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1632, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1748, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1864, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1980, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=2096, limits = (950, 2150)))
- section.satcrvcouser = tmp
-
- nim.advanced.unicableconnected = ConfigYesNo(default=False)
- nim.advanced.unicableconnectedTo = ConfigSelection([(str(id), nimmgr.getNimDescription(id)) for id in nimmgr.getNimListOfType("DVB-S") if id != x])
-
+
+ section.dictionuser = ConfigSelection(advanced_lnb_diction_user_choices, default="EN50494")
+ section.satcruserEN50494 = ConfigSelection(advanced_lnb_satcr_user_choicesEN50494, default="1")
+ section.satcruserEN50607 = ConfigSelection(advanced_lnb_satcr_user_choicesEN50607, default="1")
+
+ tmp = ConfigSubList()
+ tmp.append(ConfigInteger(default=1284, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1400, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1516, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1632, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1748, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1864, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1980, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=2096, limits = (950, 2150)))
+ section.satcrvcouserEN50494 = tmp
+
+ tmp.append(ConfigInteger(default=1284, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1400, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1516, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1632, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1748, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1864, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1980, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=2096, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1284, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1400, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1516, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1632, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1748, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1864, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1980, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=2096, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1284, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1400, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1516, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1632, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1748, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1864, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1980, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=2096, limits = (950, 2150)))
+ section.satcrvcouserEN50607 = tmp
+
+ nim.advanced.unicableconnected = ConfigYesNo(default=False)
+ nim.advanced.unicableconnectedTo = ConfigSelection([(str(id), nimmgr.getNimDescription(id)) for id in nimmgr.getNimListOfType("DVB-S") if id != x])
+
def configDiSEqCModeChanged(configElement):
section = configElement.section
if configElement.value == "1_2" and isinstance(section.longitude, ConfigNothing):
@@ -1333,7 +1441,7 @@ def InitNimManager(nimmgr):
section.increased_voltage = ConfigYesNo(False)
section.toneburst = ConfigSelection(advanced_lnb_toneburst_choices, "none")
section.longitude = ConfigNothing()
- if lnb > 32:
+ if lnb > 64:
tmp = ConfigSelection(advanced_lnb_allsat_diseqcmode_choices, "1_2")
tmp.section = section
configDiSEqCModeChanged(tmp)
@@ -1384,7 +1492,7 @@ def InitNimManager(nimmgr):
tmp.tonemode = ConfigSelection(advanced_tonemode_choices, "band")
tmp.usals = ConfigYesNo(default=True)
tmp.rotorposition = ConfigInteger(default=1, limits=(1, 255))
- lnbnum = 33+x-3601
+ lnbnum = 65+x-3601
lnb = ConfigSelection([("0", "not available"), (str(lnbnum), "LNB %d"%(lnbnum))], "0")
lnb.slot_id = slot_id
lnb.addNotifier(configLNBChanged, initial_call = False)
diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py
index bce6525..c5366f9 100644
--- a/lib/python/Screens/Satconfig.py
+++ b/lib/python/Screens/Satconfig.py
@@ -95,6 +95,7 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen):
self.advancedType = None
self.advancedManufacturer = None
self.advancedSCR = None
+ self.advancedDiction = None
self.advancedConnected = None
if self.nim.isMultiType():
@@ -206,7 +207,7 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen):
checkList = (self.configMode, self.diseqcModeEntry, self.advancedSatsEntry, \
self.advancedLnbsEntry, self.advancedDiseqcMode, self.advancedUsalsEntry, \
self.advancedLof, self.advancedPowerMeasurement, self.turningSpeed, \
- self.advancedType, self.advancedSCR, self.advancedManufacturer, self.advancedUnicable, self.advancedConnected, \
+ self.advancedType, self.advancedSCR, self.advancedDiction, self.advancedManufacturer, self.advancedUnicable, self.advancedConnected, \
self.uncommittedDiseqcCommand, self.cableScanType, self.multiType)
if self["config"].getCurrent() == self.multiType:
from Components.NimManager import InitNimManager
@@ -236,7 +237,7 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen):
def fillListWithAdvancedSatEntrys(self, Sat):
lnbnum = int(Sat.lnb.value)
currLnb = self.nimConfig.advanced.lnb[lnbnum]
-
+ diction = None
if isinstance(currLnb, ConfigNothing):
currLnb = None
@@ -258,34 +259,51 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen):
self.advancedUnicable = getConfigListEntry("Unicable "+_("Configuration Mode"), currLnb.unicable)
self.list.append(self.advancedUnicable)
if currLnb.unicable.value == "unicable_user":
- self.advancedSCR = getConfigListEntry(_("Channel"), currLnb.satcruser)
+ self.advancedDiction = getConfigListEntry(_("Diction"), currLnb.dictionuser)
+ self.list.append(self.advancedDiction)
+
+ if currLnb.dictionuser.value == "EN50494":
+ satcr = currLnb.satcruserEN50494
+ stcrvco = currLnb.satcrvcouserEN50494[currLnb.satcruserEN50494.index]
+ elif currLnb.dictionuser.value == "EN50607":
+ satcr = currLnb.satcruserEN50607
+ stcrvco = currLnb.satcrvcouserEN50607[currLnb.satcruserEN50607.index]
+
+ self.advancedSCR = getConfigListEntry(_("Channel"), satcr)
self.list.append(self.advancedSCR)
- self.list.append(getConfigListEntry(_("Frequency"), currLnb.satcrvcouser[currLnb.satcruser.index]))
+ self.list.append(getConfigListEntry(_("Frequency"), stcrvco))
+
self.list.append(getConfigListEntry(_("LOF/L"), currLnb.lofl))
self.list.append(getConfigListEntry(_("LOF/H"), currLnb.lofh))
self.list.append(getConfigListEntry(_("Threshold"), currLnb.threshold))
elif currLnb.unicable.value == "unicable_matrix":
manufacturer_name = currLnb.unicableMatrixManufacturer.value
manufacturer = currLnb.unicableMatrix[manufacturer_name]
+# if "product" in manufacturer.content:
product_name = manufacturer.product.value
self.advancedManufacturer = getConfigListEntry(_("Manufacturer"), currLnb.unicableMatrixManufacturer)
- self.advancedType = getConfigListEntry(_("Type"), manufacturer.product)
- self.advancedSCR = getConfigListEntry(_("Channel"), manufacturer.scr[product_name])
self.list.append(self.advancedManufacturer)
- self.list.append(self.advancedType)
- self.list.append(self.advancedSCR)
- self.list.append(getConfigListEntry(_("Frequency"), manufacturer.vco[product_name][manufacturer.scr[product_name].index]))
+ if product_name in manufacturer.scr:
+ diction = manufacturer.diction[product_name].value
+ self.advancedType = getConfigListEntry(_("Type"), manufacturer.product)
+ self.advancedSCR = getConfigListEntry(_("Channel"), manufacturer.scr[product_name])
+ self.list.append(self.advancedType)
+ self.list.append(self.advancedSCR)
+ self.list.append(getConfigListEntry(_("Frequency"), manufacturer.vco[product_name][manufacturer.scr[product_name].index]))
elif currLnb.unicable.value == "unicable_lnb":
manufacturer_name = currLnb.unicableLnbManufacturer.value
manufacturer = currLnb.unicableLnb[manufacturer_name]
+# if "product" in manufacturer.content:
product_name = manufacturer.product.value
self.advancedManufacturer = getConfigListEntry(_("Manufacturer"), currLnb.unicableLnbManufacturer)
- self.advancedType = getConfigListEntry(_("Type"), manufacturer.product)
- self.advancedSCR = getConfigListEntry(_("Channel"), manufacturer.scr[product_name])
self.list.append(self.advancedManufacturer)
- self.list.append(self.advancedType)
- self.list.append(self.advancedSCR)
- self.list.append(getConfigListEntry(_("Frequency"), manufacturer.vco[product_name][manufacturer.scr[product_name].index]))
+ if product_name in manufacturer.scr:
+ diction = manufacturer.diction[product_name].value
+ self.advancedType = getConfigListEntry(_("Type"), manufacturer.product)
+ self.advancedSCR = getConfigListEntry(_("Channel"), manufacturer.scr[product_name])
+ self.list.append(self.advancedType)
+ self.list.append(self.advancedSCR)
+ self.list.append(getConfigListEntry(_("Frequency"), manufacturer.vco[product_name][manufacturer.scr[product_name].index]))
choices = []
connectable = nimmanager.canConnectTo(self.slotid)
@@ -303,7 +321,7 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen):
self.list.append(getConfigListEntry(_("Increased voltage"), currLnb.increased_voltage))
self.list.append(getConfigListEntry(_("Tone mode"), Sat.tonemode))
- if lnbnum < 33:
+ if lnbnum < 65 and diction !="EN50607":
self.advancedDiseqcMode = getConfigListEntry(_("DiSEqC mode"), currLnb.diseqcMode)
self.list.append(self.advancedDiseqcMode)
if currLnb.diseqcMode.value != "none":