--[[ *********** Author: msl *********** @title USB High Speed Mode @param t USB Time Limit (100ms) @default t 5 @range t 1 15 ]] function restore() if high_speed then if type(set_remote_timing) == "function" then set_remote_timing(0) end if type(enable_remote_hp_timer) == "function" then enable_remote_hp_timer(0) end if type(enable_highspeed_usb) == "function" then enable_highspeed_usb(0) end print("High speed mode disabled") end end high_speed = false if type(set_remote_timing) == "function" then high_speed = set_remote_timing(1000) elseif type(enable_remote_hp_timer) == "function" then high_speed = enable_remote_hp_timer(1000) elseif type(enable_highspeed_usb) == "function" then enable_highspeed_usb(1000) high_speed = true end if high_speed then print("High speed mode enabled") else print("High speed mode n/a") end usb_time_limit = high_speed and t * 100 or t *10 --Starte Hauptskript: --....... --....... restore() --Skriptende --[[ mit type() überprüft man die Art der Variable. Ein Funktionsname ist auch nur eine Variable, der eine Variable zugeordnet wurde. high_speed wird als 'nicht wahr' definiert. Wenn die Funktion 'set_remote_timing' existiert, wird sie ausgeführt und high_speed wird 'wahr'. Ist 'set_remote_timing' nicht verfügbar, erfolgt die gleiche Prozedur mit 'enable_remote_hp_timer' und 'enable_highspeed_usb'. Sind auch diese Funktionen nicht verfügbar, bleibt high_speed 'nicht wahr'. Je nach Zustand von high_speed wird eine Textmeldung ausgegeben. Ist high_speed 'wahr' erhält usb_time_limit den Wert t*100, ansonsten t*10. Diese Konstrukt stellt eine verkürte If-Anweisung dar. Man könnte auch schreiben: if high_speed == true then usb_time_limit = t*100 else usb_time_limit = t*10 end In restore wird, wenn high_speed 'wahr' ist, nur überprüft ob die jeweilige Funktion verfügbar ist. Wenn ja, wird sie deaktiviert. Dabei spielt es keine Rolle, ob sie zuvor aktiviert war oder nicht. ]]