signal quality is SNR, signal power is AGC
authorFelix Domke <tmbinc@elitedvb.net>
Tue, 11 Mar 2008 22:45:54 +0000 (22:45 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Tue, 11 Mar 2008 22:45:54 +0000 (22:45 +0000)
lib/dvb/frontend.cpp
lib/dvb/frontend.h
lib/dvb/idvb.h
lib/python/Components/Sources/FrontendStatus.py
lib/python/Components/TunerInfo.py
lib/service/iservice.h

index af821cdbfffbed67136789cf8f4ca828c804ad4e..c8d6d15fe074879200f0f49b5285162c56c8ba5a 100644 (file)
@@ -617,14 +617,14 @@ int eDVBFrontend::readFrontendData(int type)
                                eDebug("FE_READ_BER failed (%m)");
                        return ber;
                }
                                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;
                }
                {
                        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)
                {
                        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);
                        {
                                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;
                }
                        } /* 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)
                {
                        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_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);
                {
                        ePyObject obj=Py_None;
                        Py_INCREF(obj);
-                       PutToDict(dest, "tuner_signal_power_db", obj);
+                       PutToDict(dest, "tuner_signal_quality_db", obj);
                }
                else
                }
                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));
        }
 }
 
        }
 }
 
index 5821e54da3efca6dd84b692a4401e5f7a132e11e..41de874b158e7c48b30c20274434439504e7b45b 100644 (file)
@@ -118,7 +118,7 @@ public:
        RESULT getData(int num, int &data);
        RESULT setData(int num, int val);
 
        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);
        void getFrontendStatus(ePyObject dest);
        void getTransponderData(ePyObject dest, bool original);
        void getFrontendData(ePyObject dest);
index c18d2421ca83d9e911213789d5baa2ae397a579d..d16c9b48f893c881879598872e4174b75d0ac411 100644 (file)
@@ -444,7 +444,7 @@ public:
        enum { stateIdle, stateTuning, stateFailed, stateLock, stateLostLock };
        enum { toneOff, toneOn };
        enum { voltageOff, voltage13, voltage18, voltage13_5, voltage18_5 };
        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);
 };
 
 SWIG_IGNORE(iDVBFrontend);
index 8e29030ac5455d3ca6d13dda9287f83b8ec074fa..3e469e0da9b4fc5142bd1c2ca6ca7c340bd58a59 100644 (file)
@@ -20,9 +20,9 @@ class FrontendStatus(Source):
                if not status:
                        self.invalidate()
                else:
                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, ))
                        self.ber = status.get("tuner_bit_error_rate")
                        self.lock = status.get("tuner_locked")
                self.changed((self.CHANGED_ALL, ))
index 24950221ef217cbe19e31fdb341840ed1d78de81..d8b4d064f6c210c247af54535df2f08ab626a68d 100644 (file)
@@ -73,9 +73,9 @@ class TunerInfo(GUIComponent):
        def getValue(self, what):
                if self.statusDict:
                        if what == self.SNR:
        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)
                                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:
                        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:
                                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)
                                                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:
                                        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:
                        frontend = self.frontendfkt()
                        if frontend:
                                if what == self.SNR:
-                                       return frontend.readFrontendData(iFrontendInformation.signalPower)
-                               elif what == self.AGC:
                                        return frontend.readFrontendData(iFrontendInformation.signalQuality)
                                        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:
                                elif what == self.BER:
                                        return frontend.readFrontendData(iFrontendInformation.bitErrorRate)
                                elif what == self.LOCK:
index f367f6ad0af16efb27792abcf128e5c1f64cfdae..462f3dc516f316d036c532c8aea5ac37bf743669 100644 (file)
@@ -355,7 +355,7 @@ public:
                lockState,
                syncState,
                frontendNumber,
                lockState,
                syncState,
                frontendNumber,
-               signalPowerdB,
+               signalQualitydB,
        };
 };
 
        };
 };