From a2b3c8ca6bdbaadf032513d354c3c2658e49fa28 Mon Sep 17 00:00:00 2001 From: jim-p Date: Wed, 10 Aug 2011 16:32:07 -0400 Subject: Add gwled package that lets you use LED2/3 to show a gateway's status. --- config/gwled/gwled.inc | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 config/gwled/gwled.inc (limited to 'config/gwled/gwled.inc') diff --git a/config/gwled/gwled.inc b/config/gwled/gwled.inc new file mode 100644 index 00000000..35038034 --- /dev/null +++ b/config/gwled/gwled.inc @@ -0,0 +1,70 @@ + 0); +} + +function sync_package_gwled() { + global $config; + $gwled_config = $config['installedpackages']['gwled']['config'][0]; + /* kill all instances of gwled */ + if(gwled_running()) { + gwled_stop(); + } + gwled_start(); +} + +function gwled_start() { + global $config; + $gwled_config = $config['installedpackages']['gwled']['config'][0]; + if (!($gwled_config['enable'])) + return; + + if (($gwled_config['enable_led2']) && ($gwled_config['gw_led2']) + || ($gwled_config['enable_led3']) && ($gwled_config['gw_led3'])) + mwexec("/usr/local/bin/minicron 30 /var/run/gwled.pid /usr/local/bin/gwled.php"); +} + +function gwled_stop() { + exec("/bin/pkill -9 -f gwled"); +} + +function validate_form_gwled($post, $input_errors) { + /* Make sure both aren't using the same interface */ + if (($post['gw_led2']) && ($post['gw_led3']) && + (($post['enable_led2']) && ($post['enable_led3'])) && + ($post['gw_led2'] == $post['gw_led3'])) + $input_errors[] = 'You cannot set two LEDs for a single gateway. Please choose seperate interfaces.'; +} + +function gwled_get_gateways() { + $gateways = return_gateways_array(); + + foreach ($gateways as $gateway) { + $tmp["name"] = "{$gateway['name']} (Monitor: {$gateway['monitor']})"; + $tmp["value"] = $gateway['name']; + $gws[] = $tmp; + } + return $gws; +} + +function gwled_set_status($gateway, $led) { + $a_gateways = return_gateways_array(); + $gateways_status = array(); + $gateways_status = return_gateways_status(true); + if ($gateways_status[$gateway]) { + $status = $gateways_status[$gateway]['status']; + if (stristr($status, "down")) + led_blink($led, "veryfast"); + elseif (stristr($status, "loss")) + led_blink($led, "fast"); + elseif (stristr($status, "delay")) + led_blink($led, "medium"); + elseif ($status == "none") + led_on($led); + } else + led_on($led); +} + +?> -- cgit v1.2.3