diff --git a/letter_display.lua b/letter_display.lua index 441ccd6..40a3369 100644 --- a/letter_display.lua +++ b/letter_display.lua @@ -1,30 +1,48 @@ client = mqtt.client("Player", "mqtt.leizour.fr", 8883, true) client:connect("student", "O99Rq8$F12NXzhL5caya") - -- CLK (clock) : D15 -- DT (data) : D2 -- SW (Bouton): D4 -- dir = direction de tournage de l'encodeur --- counter = nombre de cran tourner +-- counter = nombre de crans tournés -- button = bouton poussoir +playing = false mot = "" last_clicked = 0 function action(dir, counter, button) cls() lettre = string.char((counter % 26)+65) if button==1 then - if os.time() - last_clicked > 1 then - mot = mot..lettre - last_clicked = os.time() - else - client:publish("pendu/mot", mot, mqtt.QOS0) - mot = "" + if playing then + client:publish("pendu/lettre", lettre, mqtt.QOS0) + else + if os.time() - last_clicked > 1 then + mot = mot..lettre + last_clicked = os.time() + else + client:publish("pendu/mot", mot, mqtt.QOS0) + mot = "" + end end end console("Choix lettre : "..lettre) - console("Mot : "..mot) + if not playing then + console("Mot : "..mot) + end end +function handle_message(len, message, topic_len, topic_name) + if topic_name == "pendu/gamestate" then + if message == "PLAYING" then + playing = true + elseif message == "WAITING" then + playing = false + mot = "" + end + end +end + +client:subscribe("pendu/gamestate", mqtt.QOS0, handle_message) enc = encoder.attach(pio.GPIO15, pio.GPIO2, pio.GPIO4, action)