-- ender_master.lua (Gecorrigeerd: 'goto' en 'local' scope)
-- ... (Configuratie, Hulpfuncties, en Initialisatie blijven hetzelfde) ...
local function main()
local ender_modem = initialize()
-- NIEUW: DECLAREER ALLE LOKALE VARIABELEN HIER
local input = nil
local signal_number = nil
local timer_duration = nil -- Deze variabele veroorzaakte de fout
-- Start van de while lus
while true do
display_color_map()
write("Voer signaalnummer in (1 t/m 16, 99, 100) of 'quit': ")
input = read()
if input and string.lower(input) == "quit" then
break
end
-- Gebruik de bestaande lokale variabele, zonder 'local' ervoor.
signal_number = tonumber(input)
if not signal_number or signal_number < 1 or signal_number > 100 or (signal_number > 16 and signal_number < 99) then
print("[FOUT] Ongeldig signaalnummer.")
sleep(1)
goto continue_loop
end
timer_duration = 0 -- Reset naar 0
if signal_number ~= 99 and signal_number ~= 100 then
write("Voer timer (sec) in (0 voor permanente toggle): ")
local timer_input = read()
timer_duration = tonumber(timer_input) or 0
if timer_duration < 0 then timer_duration = 0 end
end
local message_table = {
signal = signal_number,
timer = timer_duration
}
local success, err = pcall(ender_modem.transmit, ender_modem, CHANNEL, message_table)
if success then
print(string.format("[VERZONDEN] Signaal: %d | Timer: %d", signal_number, timer_duration))
if timer_duration > 0 then
print(string.format(" -> %d seconden timer geactiveerd op Slave PC.", timer_duration))
end
else
print(string.format("[FOUT] Fout bij verzenden: %s", err))
end
::continue_loop::
print("\n----------------------------------\n")
end
if ender_modem.close then
ender_modem.close(CHANNEL)
end
print("[INFO] Programma beëindigd. Modem gesloten.")
end
main()