summaryrefslogtreecommitdiff
path: root/mode-leds.lua
diff options
context:
space:
mode:
Diffstat (limited to 'mode-leds.lua')
-rw-r--r--mode-leds.lua53
1 files changed, 49 insertions, 4 deletions
diff --git a/mode-leds.lua b/mode-leds.lua
index 1d49e8b..2c7e61c 100644
--- a/mode-leds.lua
+++ b/mode-leds.lua
@@ -21,9 +21,50 @@
socket = require("socket")
+function set_master_led()
+ os.execute("/sbin/led.sh set master")
+ os.execute("/sbin/led.sh clear standby")
+end
+
+function set_standby_led()
+ os.execute("/sbin/led.sh clear master")
+ os.execute("/sbin/led.sh set standby")
+end
+
+function clear_leds()
+ os.execute("/sbin/led.sh clear master")
+ os.execute("/sbin/led.sh clear standby")
+end
+
function process_cmd(message)
log.printf(log.DEBUG, "received message: '%s'", message)
-
+
+ local capture = string.match(message, "Current Mode: (%a+)")
+ if(capture) then
+ if(capture == "Master") then
+ set_master_led()
+ return 0
+ else
+ if(capture == "Standby") then
+ set_standby_led()
+ return 0
+ end
+ end
+ end
+
+ local capture = string.match(message, "new Mode: (%a+)")
+ if(capture) then
+ if(capture == "master") then
+ set_master_led()
+ return 0
+ else
+ if(capture == "standby") then
+ set_standby_led()
+ return 0
+ end
+ end
+ end
+
return 0
end
@@ -31,10 +72,12 @@ function main_loop(opt)
log.printf(log.NOTICE, "main_loop started")
local sig = signal.init()
local cmdfd = cmd.init()
-
+
cmd.send_string("listen mode");
cmd.send_string("status");
-
+
+ clear_leds()
+
local return_value = 0
while return_value == 0 do
local readable, _, err = socket.select({ sig , cmdfd }, nil)
@@ -63,7 +106,9 @@ function main_loop(opt)
end
end
end
-
+
+ clear_leds()
+
signal.stop()
return return_value
end