From: Felix Domke Date: Tue, 11 Mar 2008 22:45:54 +0000 (+0000) Subject: signal quality is SNR, signal power is AGC X-Git-Tag: 2.6.0~1477 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/0980594e3037839b361eae71646ccf960aaa2659 signal quality is SNR, signal power is AGC --- diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index af821cdb..c8d6d15f 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -617,14 +617,14 @@ int eDVBFrontend::readFrontendData(int type) eDebug("FE_READ_BER failed (%m)"); return ber; } - case signalPower: + case signalQuality: { uint16_t snr=0; if (ioctl(m_fd, FE_READ_SNR, &snr) < 0 && errno != ERANGE) eDebug("FE_READ_SNR failed (%m)"); return snr; } - case signalPowerdB: /* this will move into the driver */ + case signalQualitydB: /* this will move into the driver */ { uint16_t snr=0; if (ioctl(m_fd, FE_READ_SNR, &snr) < 0 && errno != ERANGE) @@ -669,11 +669,14 @@ int eDVBFrontend::readFrontendData(int type) { float snr_in_db=(snr-39075)/1764.7; return (int)(snr_in_db * 100.0); + } else if (!strcmp(m_description, "Alps BSBE2")) + { + return (int)((snr >> 7) * 10.0); } /* else eDebug("no SNR dB calculation for frontendtype %s yet", m_description); */ return 0x12345678; } - case signalQuality: + case signalPower: { uint16_t strength=0; if (ioctl(m_fd, FE_READ_SIGNAL_STRENGTH, &strength) < 0 && errno != ERANGE) @@ -1060,17 +1063,17 @@ void eDVBFrontend::getFrontendStatus(ePyObject dest) PutToDict(dest, "tuner_locked", readFrontendData(locked)); PutToDict(dest, "tuner_synced", readFrontendData(synced)); PutToDict(dest, "tuner_bit_error_rate", readFrontendData(bitErrorRate)); - PutToDict(dest, "tuner_signal_power", readFrontendData(signalPower)); - int sigPowerdB = readFrontendData(signalPowerdB); - if (sigPowerdB == 0x12345678) // not support yet + PutToDict(dest, "tuner_signal_quality", readFrontendData(signalQuality)); + int sigQualitydB = readFrontendData(signalQualitydB); + if (sigQualitydB == 0x12345678) // not support yet { ePyObject obj=Py_None; Py_INCREF(obj); - PutToDict(dest, "tuner_signal_power_db", obj); + PutToDict(dest, "tuner_signal_quality_db", obj); } else - PutToDict(dest, "tuner_signal_power_db", sigPowerdB); - PutToDict(dest, "tuner_signal_quality", readFrontendData(signalQuality)); + PutToDict(dest, "tuner_signal_quality_db", sigQualitydB); + PutToDict(dest, "tuner_signal_power", readFrontendData(signalPower)); } } diff --git a/lib/dvb/frontend.h b/lib/dvb/frontend.h index 5821e54d..41de874b 100644 --- a/lib/dvb/frontend.h +++ b/lib/dvb/frontend.h @@ -118,7 +118,7 @@ public: RESULT getData(int num, int &data); RESULT setData(int num, int val); - int readFrontendData(int type); // bitErrorRate, signalPower, signalPowerdB, signalQuality, locked, synced + int readFrontendData(int type); // bitErrorRate, signalPower, signalQualitydB, signalQuality, locked, synced void getFrontendStatus(ePyObject dest); void getTransponderData(ePyObject dest, bool original); void getFrontendData(ePyObject dest); diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index c18d2421..d16c9b48 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -444,7 +444,7 @@ public: enum { stateIdle, stateTuning, stateFailed, stateLock, stateLostLock }; enum { toneOff, toneOn }; enum { voltageOff, voltage13, voltage18, voltage13_5, voltage18_5 }; - enum { bitErrorRate, signalPower, signalQuality, locked, synced, frontendNumber, signalPowerdB }; + enum { bitErrorRate, signalPower, signalQuality, locked, synced, frontendNumber, signalQualitydB }; }; SWIG_IGNORE(iDVBFrontend); diff --git a/lib/python/Components/Sources/FrontendStatus.py b/lib/python/Components/Sources/FrontendStatus.py index 8e29030a..3e469e0d 100644 --- a/lib/python/Components/Sources/FrontendStatus.py +++ b/lib/python/Components/Sources/FrontendStatus.py @@ -20,9 +20,9 @@ class FrontendStatus(Source): if not status: self.invalidate() else: - self.snr = status.get("tuner_signal_power") - self.snr_db = status.get("tuner_signal_power_db") - self.agc = status.get("tuner_signal_quality") + self.snr = status.get("tuner_signal_quality") + self.snr_db = status.get("tuner_signal_quality_db") + self.agc = status.get("tuner_signal_power") self.ber = status.get("tuner_bit_error_rate") self.lock = status.get("tuner_locked") self.changed((self.CHANGED_ALL, )) diff --git a/lib/python/Components/TunerInfo.py b/lib/python/Components/TunerInfo.py index 24950221..d8b4d064 100644 --- a/lib/python/Components/TunerInfo.py +++ b/lib/python/Components/TunerInfo.py @@ -73,9 +73,9 @@ class TunerInfo(GUIComponent): def getValue(self, what): if self.statusDict: if what == self.SNR: - return self.statusDict.get("tuner_signal_power", 0) - elif what == self.AGC: return self.statusDict.get("tuner_signal_quality", 0) + elif what == self.AGC: + return self.statusDict.get("tuner_signal_power", 0) elif what == self.BER: return self.statusDict.get("tuner_bit_error_rate", 0) elif what == self.LOCK: @@ -86,9 +86,9 @@ class TunerInfo(GUIComponent): feinfo = service.frontendInfo() if feinfo is not None: if what == self.SNR: - return feinfo.getFrontendInfo(iFrontendInformation.signalPower) - elif what == self.AGC: return feinfo.getFrontendInfo(iFrontendInformation.signalQuality) + elif what == self.AGC: + return feinfo.getFrontendInfo(iFrontendInformation.signalPower) elif what == self.BER: return feinfo.getFrontendInfo(iFrontendInformation.bitErrorRate) elif what == self.LOCK: @@ -97,9 +97,9 @@ class TunerInfo(GUIComponent): frontend = self.frontendfkt() if frontend: if what == self.SNR: - return frontend.readFrontendData(iFrontendInformation.signalPower) - elif what == self.AGC: return frontend.readFrontendData(iFrontendInformation.signalQuality) + elif what == self.AGC: + return frontend.readFrontendData(iFrontendInformation.signalPower) elif what == self.BER: return frontend.readFrontendData(iFrontendInformation.bitErrorRate) elif what == self.LOCK: diff --git a/lib/service/iservice.h b/lib/service/iservice.h index f367f6ad..462f3dc5 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -355,7 +355,7 @@ public: lockState, syncState, frontendNumber, - signalPowerdB, + signalQualitydB, }; };