On 04.12.2012 20:35, cedric.dewijs@telfort.nl wrote:
Hi All,
I use an USB DVB-T receiver. This works ok, but the snr meter at the bottom of the screen is never filled more than a few pixels, no matter how good the signal is. The problem with this receiver is that the snr figure never goes above 0x00d0. Is there a way to adjust the scaling of the signal and snr bars? I would like the snr bar to be fully filled when the figure is 0x00ff
Best regards, Cedric
$ lsusb Bus 001 Device 004: ID 2013:0245 PCTV Systems PCTV 73ESE
$ tzap -a 0 -r 'Nederland 1' using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' reading channels from file '/home/cedric/.tzap/channels.conf' tuning to 474000000 Hz video pid 0x1b63, audio pid 0x1b64 status 1b | signal 0dbd | snr 00a2 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
$ dmesg [ 3.519233] dvb-usb: found a 'Pinnacle PCTV 73e SE' in cold state, will try to load a firmware [ 3.529962] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw' [ 3.871202] dib0700: firmware started successfully. [ 4.373456] dvb-usb: found a 'Pinnacle PCTV 73e SE' in warm state. [ 4.373567] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [ 4.373732] DVB: registering new adapter (Pinnacle PCTV 73e SE) [ 4.568680] DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)... [ 4.766795] DiB0070: successfully identified [ 4.830021] Registered IR keymap rc-dib0700-rc5 [ 4.831325] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:10.4/usb1/1-6/rc/rc0/input6 [ 4.831485] rc0: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:10.4/usb1/1-6/rc/rc0 [ 4.831681] dvb-usb: schedule remote query interval to 50 msecs. [ 4.831688] dvb-usb: Pinnacle PCTV 73e SE successfully initialized and connected.
It's a real pitty that the DVB drivers don't provide a standardized way of getting signal strength and quality. They all deliver some bogus values in various different ranges, which are pretty useless to applications. That's why VDR's cDvbTuner tries to work around this deficiency in its cDvbTuner::GetSignalStrength() and cDvbTuner::GetSignalQuality() functions by scaling the individual values so that they fall into a defined range of 0..100. See these functions in dvbdevice.c and how they use the subsystemId to set an individual maximum value for the "TT-budget S2-3200". Maybe you can do something similar for your device. Please send me a proper patch if you have any success with this.
Klaus
P.S.: ceterum censeo: the DVB drivers should finally get an interface that delivers these values right away. After all, the driver is the only place where this can be done reasonably. It wouldn't even matter whether the range is 0..100, 0x0000..0xFFFF or anything else - just the *same* for all drivers! Or does this already exist and I just missed it?