Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / other / dvb-signal @ a8909ec6

Historique | Voir | Annoter | Télécharger (2,89 ko)

1
#!/bin/bash
2
#
3
# Reads the signal strength from a DVB-c/s/t tuner
4
#
5
# (c) 2009 i.dobson@planet-ian.com
6
#
7
# 24.11.2009 Version 1.1 added support for multiple tuners
8
# 22.11.2009 Version 1.0 added check that femon iinstalled
9
# 21.11.2009 Version 0.9 added adapter number
10
# 20.11.2009 Version 0.8 first version
11
#
12
# Magic markers (optional):
13
#%# family=auto
14
#%# capabilities=autoconf suggest
15

    
16
#Starting point for tuner to watch
17
Tuner=0
18

    
19
case $1 in
20
    autoconf|detect)
21
       REQ=`which femon`
22
       if [ "$REQ" = "" ]; then
23
          echo "no (femon not installed)"
24
          exit 1
25
       fi
26

    
27
       if [ -e  /dev/dvb/adapter$Tuner/ ]; then
28
          echo yes
29
          exit 0
30
       else
31
          echo "no (dvb tuner $Tuner not found)"
32
          exit 1
33
       fi;;
34

    
35
    config)
36
      echo "graph_title  DVB signal strength"
37
      echo 'graph_args --base 1000 -l 0'
38
      echo 'graph_vlabel Signal Strength %'
39
      echo 'graph_category mythtv'
40
      echo 'graph_scale no'
41
      while [ -e  /dev/dvb/adapter$Tuner/ ]; do
42
         Tuner=$[$Tuner+1]
43
      done
44

    
45
      TunerLoop=0
46
      while [ $TunerLoop -lt $Tuner ] ; do
47
        echo "signal$TunerLoop.label Signal strength for tuner $TunerLoop"
48
        echo "signal$TunerLoop.draw LINE1"
49
        echo "signal$TunerLoop.min 0"
50
        TunerLoop=$[$TunerLoop+1]
51
      done
52

    
53
      TunerLoop=0
54
      while [ $TunerLoop -lt $Tuner ] ; do
55
        echo "snr$TunerLoop.label Signal to noise for tuner $TunerLoop"
56
        echo "snr$TunerLoop.draw LINE1"
57
        echo "snr$TunerLoop.min 0"
58
        TunerLoop=$[$TunerLoop+1]
59
      done
60

    
61
      TunerLoop=0
62
      while [ $TunerLoop -lt $Tuner ] ; do
63
        echo "ber$TunerLoop.label Bit error rate for tuner $TunerLoop"
64
        echo "ber$TunerLoop.draw LINE1"
65
        echo "ber$TunerLoop.min 0"
66
        echo "ber$TunerLoop.max 200"
67
        TunerLoop=$[$TunerLoop+1]
68
      done
69

    
70
      TunerLoop=0
71
      while [ $TunerLoop -lt $Tuner ] ; do
72
        echo "unc$TunerLoop.label Uncorrectable errors for tuner $TunerLoop"
73
        echo "unc$TunerLoop.draw LINE1"
74
        echo "unc$TunerLoop.min 0"
75
        echo "unc$TunerLoop.max 200"
76
        TunerLoop=$[$TunerLoop+1]
77
      done
78
    exit 0;;
79
esac
80
  echo "" > /tmp/dvb-signal.text
81
  echo "" > /tmp/dvb-signal1.text
82
  Tuner=0
83
  while [ -e  /dev/dvb/adapter$Tuner/ ] ; do
84
    check=`femon -c 1 -a $Tuner | grep signal `
85
    echo $check $Tuner| awk '{printf ("signal%.0f.value %.1f\nsnr%.0f.value %.1f\nber%.0f.value %.2f\nunc%.0f.value %.4f\n#raw values Tuner %.0f  %.0f %.0f %.0f %.0f \n",$17,strtonum("0x"$5)/655,$17,strtonum("0x"$8)/655,$17,strtonum("0x"$11),$17,strtonum("0x"$14),$17,strtonum("0x"$5),strtonum("0x"$8),$11,$14)}' >> /tmp/dvb-signal.text
86
    echo  $check >>  /tmp/dvb-signal1.text
87
    Tuner=$[$Tuner+1]
88
  done
89
  cat /tmp/dvb-signal.text | grep signal
90
  cat /tmp/dvb-signal.text | grep snr
91
  cat /tmp/dvb-signal.text | grep ber
92
  cat /tmp/dvb-signal.text | grep unc
93
  cat /tmp/dvb-signal.text | grep raw
94
exit 0