X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FConverter%2FFrontendInfo.py;h=d4788b0b67c6ee99533b2fa1c28deeaf9ddaefe2;hb=67b53c1cb06988394c35a6e965c99b72b67fe1be;hp=c92e2bbb58dd42d47e461f574b74a92c9e43dbc9;hpb=15ff50e3d3a33591b433a5c479798abae4966eb7;p=vuplus_dvbapp diff --git a/lib/python/Components/Converter/FrontendInfo.py b/lib/python/Components/Converter/FrontendInfo.py index c92e2bb..d4788b0 100644 --- a/lib/python/Components/Converter/FrontendInfo.py +++ b/lib/python/Components/Converter/FrontendInfo.py @@ -1,24 +1,30 @@ from Components.Converter.Converter import Converter +from Components.Element import cached class FrontendInfo(Converter, object): BER = 0 SNR = 1 AGC = 2 LOCK = 3 + SNRdB = 4 - def __init__(self, type, *args, **kwargs): - Converter.__init__(self) + def __init__(self, type): + Converter.__init__(self, type) if type == "BER": self.type = self.BER elif type == "SNR": self.type = self.SNR + elif type == "SNRdB": + self.type = self.SNRdB elif type == "AGC": self.type = self.AGC else: self.type = self.LOCK + @cached def getText(self): assert self.type != self.LOCK, "the text output of FrontendInfo cannot be used for lock info" + percent = None if self.type == self.BER: # as count count = self.source.ber if count is not None: @@ -29,14 +35,19 @@ class FrontendInfo(Converter, object): percent = self.source.agc elif self.type == self.SNR: percent = self.source.snr - + elif self.type == self.SNRdB: + if self.source.snr_db is not None: + return "%3.02f dB" % (self.source.snr_db / 100.0) + elif self.source.snr is not None: #fallback to normal SNR... + percent = self.source.snr if percent is None: return "N/A" return "%d %%" % (percent * 100 / 65536) + @cached def getBool(self): - assert self.type in [self.LOCK, selef.BER], "the boolean output of FrontendInfo can only be used for lock or BER info" + assert self.type in [self.LOCK, self.BER], "the boolean output of FrontendInfo can only be used for lock or BER info" if self.type == self.LOCK: return self.source.lock else: @@ -46,6 +57,7 @@ class FrontendInfo(Converter, object): boolean = property(getBool) + @cached def getValue(self): assert self.type != self.LOCK, "the value/range output of FrontendInfo can not be used for lock info" if self.type == self.AGC: