From a13d148fb156086745ab0dc1af4aa5cdb2c4c434 Mon Sep 17 00:00:00 2001 From: Paul Heinrichs Date: Tue, 22 Mar 2016 10:37:07 -0400 Subject: [PATCH] Added Signal Sensor --- html/images/os/cambium.png | Bin 3290 -> 2397 bytes html/includes/collectd/definitions.php | 12 +++ html/includes/graphs/device/signal.inc.php | 7 ++ html/includes/graphs/sensor/signal.inc.php | 22 ++++++ html/includes/print-menubar.php | 4 +- html/pages/device/health.inc.php | 6 ++ html/pages/device/health/signal.inc.php | 7 ++ html/pages/device/overview.inc.php | 1 + .../device/overview/sensors/signal.inc.php | 8 ++ html/pages/health.inc.php | 2 + html/pages/health/signal.inc.php | 7 ++ includes/discovery/functions.inc.php | 11 +++ includes/discovery/sensors.inc.php | 1 + includes/discovery/sensors/signal.inc.php | 2 +- .../discovery/sensors/signal/cambium.inc.php | 73 ++++++++++++++++++ includes/polling/functions.inc.php | 5 ++ includes/polling/sensors.inc.php | 1 + includes/polling/signal/cambium.inc.php | 51 ++++++++++++ 18 files changed, 217 insertions(+), 3 deletions(-) create mode 100644 html/includes/graphs/device/signal.inc.php create mode 100644 html/includes/graphs/sensor/signal.inc.php create mode 100644 html/pages/device/health/signal.inc.php create mode 100644 html/pages/device/overview/sensors/signal.inc.php create mode 100644 html/pages/health/signal.inc.php create mode 100644 includes/discovery/sensors/signal/cambium.inc.php create mode 100644 includes/polling/signal/cambium.inc.php diff --git a/html/images/os/cambium.png b/html/images/os/cambium.png index 941fdbfd54ab76b76c2c5f3bff9bc392ca61bd40..4f1aa055d2cdf6367e7e873f3c1babe609501446 100644 GIT binary patch literal 2397 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 P00000NkvXXu0mjfWg~$8 literal 3290 zcmb_eYfKzf6kaF-S%DVl11Pk^V0rJ(%+lpC?t-wpz_wkwg(cu4mSOg?Oqre8&fH~z zHm%Y4plVzHnEI>H^pA<5(WHs7n$|Y8v5Dd{v6@z`wHjh=)cC^~Q_sxouDg_?ZM+HW z+j!I z3(BL&Iu(wvym9grNeDqFIb`?IzK9Er3%xT68kp$|@G}#9 zTafH%H#??S00<+@5mRANQrRgdspGQntqoHop_||dC)ue5B!+!{!X+z+uv=*hPdC#< zGh=0%Hn+62G!izNp()x%F*Xa+!Zz7hnkM3nY&R1QB{;_RySwATpywpVF^;el6^q5J zu_mjmgea!1txW^5*(_jTQKu!$O<5$hN`o*k+(_jWA%X>2A~Z~HRE}aNNy0plSV=h2 zFNDUinhYVSam_$IYKn_cjFqMo-G)l_4Dv~rNK_GZPC=eRA_^l3tKi0@*?S|H-wZNp zsw6#u9Itz-I7p>h=uvgC(?B9(RNcw!O!@=asEV{v9YqX|Q4m6RPUQ+?sV+uNq^@s~ zvCp@>c{rTLO2wW@&^5kCOA4q4rXz^zN2(lEc;uM`iK_IVK+V_y*2gIm2r@CCL{Vaj z^+9$8In22^45~rmFczAz*z5tOiM88Vx}||;Abk?{J|F9qRLn^{^17WQfLjG2$ToK~ zp6)KYz13!G^#Dd&Yn#hOcQT!B+SX-v*;3ryG9T48FyS7&GxzO~DT2g_cLk#*F5&n` zkwKLUp#W0Csy<^Rb*G4pp3xNrEt6T1lR~gwOAw85Q4y2vE(LK|m_%?2!(mxciB60a zVKk~821}nTX~Rh21x_SHfk%>x9F%rOL?Iqa?Pj zvuy7HQAJ?KBZ7~rSPm0dmc>y{Ap~CI7euNMl9nQoz;aNFLTRDFEpf(E!Y6pg3&HI~ z8WI#Vrf^|IfJAaSp{1B4V09*oBWrBb=;$uQ$2Ul?V_jTmkr46KYpY&z(TRO+Ptzxz zPSPd?OudbXAYr8Fx-TVh5-BPy&nEP52AESPlG~Zi#porZ(A7&-N>k3Luy?+N|976J zQ*or$WLA$QD=rzX8XkM4Fr=7|wYd zJVk*--Y1h-k46wnx%EL3JIN)(5Qh2*GzYbme>x$T9GTWPWP40P%O2}Rl+qpVhEzI& zK?`aR6!u;Ls)jQC9|Y3xBNny@YMql*xk(h%D?C(JV@kN&J0gh?8%F@W{C$)(=EtEr zYgZekJ(jfVES>?kY|SkzHTKS(R^*H^cp$;cj7mPupp$&uAqj#h@O10hntK+WeWlnl zj0fZ~9OD#ZGG1tU()A-QIKBIQ~s?)7gAc=T7IDKj%OCnqN_FR!4WVD;+N8#ivW zSS%Dpty;CJqN1XzkQ@ur?a+cTK87L|J;N9=L&iGB)AFb?;#k|ktesYPU{XL~OZr*o!PtIG+ zHTlDgx!L;%OZPRM-E!girfXNf**bQ3^LK~pI&KDz{NQUf|K4F;c>46!f|_@Jwe0x0 zqE8_X?Ag&GoqfS_`O>ooPXBdKxTmsMynZA{eD%Rh^X$bJ&ph?xn}pf@#>HL}ITUgc zRk`7++Wp?v`ae2Lzk2*|#%q24gV#>FKh3xxobeOsRG#J?UoMR9`20#oS^nJo%DtwcCr&Ip{IZs9UQeHUu50A+zX4v|=>Px# diff --git a/html/includes/collectd/definitions.php b/html/includes/collectd/definitions.php index 932524da1..3ab39e1ce 100644 --- a/html/includes/collectd/definitions.php +++ b/html/includes/collectd/definitions.php @@ -1371,6 +1371,18 @@ function load_graph_definitions($logarithmic = false, $tinylegend = false) { 'GPRINT:temp_avg:AVERAGE:%4.1lf', 'GPRINT:temp_max:MAX:%4.1lf', 'GPRINT:temp_avg:LAST:%4.1lf\l'); + $GraphDefs['signal'] = array( + 'DEF:signal_avg={file}:value:AVERAGE', + 'DEF:signal_min={file}:value:MIN', + 'DEF:signal_max={file}:value:MAX', + 'CDEF:average=signal_avg,0.2,*,PREV,UN,signal_avg,PREV,IF,0.8,*,+', + "AREA:signal_max#$HalfRed", + "AREA:signal_min#$Canvas", + "LINE1:signal_avg#$FullRed:Signal", + 'GPRINT:signal_min:MIN:%4.1lf', + 'GPRINT:signal_avg:AVERAGE:%4.1lf', + 'GPRINT:signal_max:MAX:%4.1lf', + 'GPRINT:signal_avg:LAST:%4.1lf\l'); $GraphDefs['timeleft'] = array( #'-v', 'Minutes', 'DEF:avg={file}:timeleft:AVERAGE', diff --git a/html/includes/graphs/device/signal.inc.php b/html/includes/graphs/device/signal.inc.php new file mode 100644 index 000000000..5bf416ee1 --- /dev/null +++ b/html/includes/graphs/device/signal.inc.php @@ -0,0 +1,7 @@ + '); } -$icons = array('fanspeed'=>'tachometer','humidity'=>'tint','temperature'=>'fire','current'=>'bolt','frequency'=>'line-chart','power'=>'power-off','voltage'=>'bolt','charge'=>'plus-square','dbm'=>'sun-o', 'load'=>'spinner','state'=>'bullseye'); -foreach (array('fanspeed','humidity','temperature') as $item) { +$icons = array('fanspeed'=>'tachometer','humidity'=>'tint','temperature'=>'fire','current'=>'bolt','frequency'=>'line-chart','power'=>'power-off','voltage'=>'bolt','charge'=>'plus-square','dbm'=>'sun-o', 'load'=>'spinner','state'=>'bullseye','signal'=>'wifi'); +foreach (array('fanspeed','humidity','temperature','signal') as $item) { if (isset($menu_sensors[$item])) { echo('
  • '.nicecase($item).'
  • '); unset($menu_sensors[$item]);$sep++; diff --git a/html/pages/device/health.inc.php b/html/pages/device/health.inc.php index 21f41389b..7c04d6ccc 100644 --- a/html/pages/device/health.inc.php +++ b/html/pages/device/health.inc.php @@ -16,6 +16,7 @@ $power = dbFetchCell("select count(*) from sensors WHERE sensor_class='po $dBm = dbFetchCell("select count(*) from sensors WHERE sensor_class='dBm' AND device_id = ?", array($device['device_id'])); $states = dbFetchCell("select count(*) from sensors WHERE sensor_class='state' AND device_id = ?", array($device['device_id'])); $load = dbFetchCell("select count(*) from sensors WHERE sensor_class='load' AND device_id = ?", array($device['device_id'])); +$signal = dbFetchCell("select count(*) from sensors WHERE sensor_class='signal' AND device_id = ?", array($device['device_id'])); unset($datas); $datas[] = 'overview'; @@ -79,6 +80,10 @@ if ($load) { $datas[] = 'load'; } +if ($signal) { + $datas[] = 'signal'; +} + $type_text['overview'] = 'Overview'; $type_text['charge'] = 'Battery Charge'; $type_text['temperature'] = 'Temperature'; @@ -95,6 +100,7 @@ $type_text['power'] = 'Power'; $type_text['dbm'] = 'dBm'; $type_text['state'] = 'State'; $type_text['load'] = 'Load'; +$type_text['signal'] = 'Signal'; $link_array = array( 'page' => 'device', diff --git a/html/pages/device/health/signal.inc.php b/html/pages/device/health/signal.inc.php new file mode 100644 index 000000000..14665c3c8 --- /dev/null +++ b/html/pages/device/health/signal.inc.php @@ -0,0 +1,7 @@ + static-config ? $type_text['overview'] = "Overview"; @@ -31,6 +32,7 @@ $type_text['toner'] = "Toner"; $type_text['dbm'] = "dBm"; $type_text['load'] = "Load"; $type_text['state'] = "State"; +$type_text['signal'] = "Signal"; if (!$vars['metric']) { $vars['metric'] = "processor"; diff --git a/html/pages/health/signal.inc.php b/html/pages/health/signal.inc.php new file mode 100644 index 000000000..8d9d41fd4 --- /dev/null +++ b/html/pages/health/signal.inc.php @@ -0,0 +1,7 @@ + -80) { + $limit = -80; + } + break; }//end switch return $limit; @@ -378,6 +385,10 @@ function sensor_limit($class, $current) { case 'power': $limit = ($current * 1.50); break; + + case 'signal'; + $limit = 0; + break; }//end switch return $limit; diff --git a/includes/discovery/sensors.inc.php b/includes/discovery/sensors.inc.php index 32d4fdd9e..67da5bc8e 100644 --- a/includes/discovery/sensors.inc.php +++ b/includes/discovery/sensors.inc.php @@ -27,3 +27,4 @@ require 'includes/discovery/sensors/charge.inc.php'; require 'includes/discovery/sensors/load.inc.php'; require 'includes/discovery/sensors/states.inc.php'; require 'includes/discovery/sensors/dbm.inc.php'; +require 'includes/discovery/sensors/signal.inc.php'; \ No newline at end of file diff --git a/includes/discovery/sensors/signal.inc.php b/includes/discovery/sensors/signal.inc.php index 55ab39291..39808c4d4 100644 --- a/includes/discovery/sensors/signal.inc.php +++ b/includes/discovery/sensors/signal.inc.php @@ -9,4 +9,4 @@ d_echo($valid['sensor']['signal']); check_valid_sensors($device, 'signal', $valid['sensor']); -echo "\n"; +echo "\n"; \ No newline at end of file diff --git a/includes/discovery/sensors/signal/cambium.inc.php b/includes/discovery/sensors/signal/cambium.inc.php new file mode 100644 index 000000000..9104ab9b8 --- /dev/null +++ b/includes/discovery/sensors/signal/cambium.inc.php @@ -0,0 +1,73 @@ + '%', 'load' => '%', 'state' => '#', + 'signal' => 'dBm', ); foreach ($supported_sensors as $sensor_type => $sensor_unit) { diff --git a/includes/polling/signal/cambium.inc.php b/includes/polling/signal/cambium.inc.php new file mode 100644 index 000000000..41582d93d --- /dev/null +++ b/includes/polling/signal/cambium.inc.php @@ -0,0 +1,51 @@ +