diff options
Diffstat (limited to 'mode-leds.lua')
-rw-r--r-- | mode-leds.lua | 53 |
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 |