uint16_t snr=0;
if (ioctl(m_fd, FE_READ_SNR, &snr) < 0 && errno != ERANGE)
eDebug("FE_READ_SNR failed (%m)");
-
-#if defined(DM8000)
+ return snr;
+ }
+ case signalPowerdB: /* this will move into the driver */
+ {
+ uint16_t snr=0;
+ if (ioctl(m_fd, FE_READ_SNR, &snr) < 0 && errno != ERANGE)
+ eDebug("FE_READ_SNR failed (%m)");
unsigned int SDS_SNRE = snr << 16;
static float SNR_COEFF[6] = {
snr_in_db = fval1;
return (int)(snr_in_db * 100.0);
-#endif
- return snr;
}
case signalQuality:
{
PutToDict(dest, "tuner_synced", readFrontendData(synced));
PutToDict(dest, "tuner_bit_error_rate", readFrontendData(bitErrorRate));
PutToDict(dest, "tuner_signal_power", readFrontendData(signalPower));
+ PutToDict(dest, "tuner_signal_power_db", readFrontendData(signalPowerdB));
PutToDict(dest, "tuner_signal_quality", readFrontendData(signalQuality));
}
}
RESULT getData(int num, int &data);
RESULT setData(int num, int val);
- int readFrontendData(int type); // bitErrorRate, signalPower, signalQuality, locked, synced
+ int readFrontendData(int type); // bitErrorRate, signalPower, signalPowerdB, signalQuality, locked, synced
void getFrontendStatus(ePyObject dest);
void getTransponderData(ePyObject dest, bool original);
void getFrontendData(ePyObject dest);
enum { stateIdle, stateTuning, stateFailed, stateLock, stateLostLock };
enum { toneOff, toneOn };
enum { voltageOff, voltage13, voltage18, voltage13_5, voltage18_5 };
- enum { bitErrorRate, signalPower, signalQuality, locked, synced, frontendNumber };
+ enum { bitErrorRate, signalPower, signalQuality, locked, synced, frontendNumber, signalPowerdB };
};
SWIG_IGNORE(iDVBFrontend);
elif self.type == self.SNR:
percent = self.source.snr
elif self.type == self.SNRdB:
- if self.source.snr is None:
+ if self.source.snr_db is None:
return "N/A"
- return "%3.02f dB" % (self.source.snr / 100.0)
+ return "%3.02f dB" % (self.source.snr_db / 100.0)
if percent is None:
return "N/A"
self.poll_timer.start(1000)
def invalidate(self):
- self.snr = self.agc = self.ber = self.lock = None
+ self.snr = self.agc = self.ber = self.lock = self.snr_db = None
def updateFrontendStatus(self):
status = self.getFrontendStatus()
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.ber = status.get("tuner_bit_error_rate")
self.lock = status.get("tuner_locked")
signalQuality,
lockState,
syncState,
- frontendNumber
+ frontendNumber,
+ signalPowerdB,
};
};