Logitech Lua Sleep Behavior
Insert the following block of code at the beginning of your script, before OnEvent()
function
do
local function busyloop(final_ctr)
final_ctr = final_ctr - final_ctr%1
local ctr, prev_ms, ms0, ctr0 = 0
while ctr ~= final_ctr do
local ms = GetRunningTime()
if prev_ms and ms ~= prev_ms then
if not ms0 then
ms0, ctr0 = ms, ctr
elseif final_ctr < 0 and ms - ms0 > 500 then
return (ctr - ctr0) / (ms - ms0)
end
end
prev_ms = ms
ctr = ctr + 1
end
end
local coefficient = busyloop(-1)
function FastSleep(ms)
return busyloop(ms * coefficient)
end
end
After that you can use function FastSleep(delay)
in your script for small time intervals.
Example:
FastSleep(0.5) -- wait for 0.5 ms
For big time intervals (for example, 30 ms or more) standard Sleep()
is preferred.