Page 1 of 1

ResetTimer to negative values?

Posted: Sun Feb 14, 2021 1:52 pm
by Flinx
Hello all,

Is it permissible to set a timer to negative values? I didn't find a hint in the manual, so I tried. It seemed to work, and there was also an overflow at 2^32-1 (tested under Windows). But in practice there are strange effects when starting with certain values. With full seconds it works. But with values between full seconds it doesn't. GetTimer() returns alternately correct and incorrect values at one-second intervals.
Here is the output of GetTimer() in 100ms intervals for four time values:

Code: Select all

StartTimer(1)
offset=(-500)
ResetTimer(1, offset)
For i=1 To 18
	DebugPrint(GetTimer(1))
	Wait(100,#MILLISECONDS)
Next

Code: Select all

-1000	-800	-500	-200
-914	-710	-405	-101
-814	4294357	-304	-1
-714	4294457	-204	99
-614	4294557	-104	199
-514	4294657	4294963	299
-414	4294757	4295063	4295366
-314	4294857	4295163	4295466
-214	4294957	4295263	599
-114	4295057	4295363	699
-14	190	496	799
86	290	596	899
186	4295357	696	999
286	4295457	796	1099
386	4295557	896	1199
488	4295660	4295963	1302
590	4295761	4296063	4296370
691	4295862	4296163	4296471
What am I doing wrong?

Ralf

Re: ResetTimer to negative values?

Posted: Sun Feb 14, 2021 8:17 pm
by msu
Hello Ralf,
first of all, welcome to the forum. :)
Flinx wrote: Sun Feb 14, 2021 1:52 pm Is it permissible to set a timer to negative values?
ResetTimer says the following:
You can use this function to reset an existing timer to zero or to a specified time. If you want to reset the timer to zero, simply leave out the second argument. Otherwise use the second argument to specify a time in milliseconds for the timer.
I honestly don't understand what you need negative numbers for in the timer?

If it is just a matter of correcting the timer (pure speculation), you could do it like this:

Code: Select all

StartTimer(1)
offset=500
For i=1 To 18
	DebugPrint(GetTimer(1)-offset)
	Wait(100,#MILLISECONDS)
Next

Re: ResetTimer to negative values?

Posted: Sun Feb 14, 2021 10:07 pm
by airsoftsoftwair
I also don't see why anyone would want to use negative values with the timer functions... they were definitely not designed for that. But if you explain why you need this, I might consider implementing it ;)

Re: ResetTimer to negative values?

Posted: Mon Feb 15, 2021 12:58 pm
by Flinx
Hello,

and thank you, but no really need to implement. I have a solution in the meantime, but I thought I should ask, because if negative values are possible, someone else would try to use it too. If it seems to work at first sight...
I'm writing on a lyrics viewer, and there I have to read an offset from a text file. The first idea was to add this offset to the timer. Of course it can be done in another way.

Ralf

Re: ResetTimer to negative values?

Posted: Sat Feb 20, 2021 12:46 am
by airsoftsoftwair
Flinx wrote: Mon Feb 15, 2021 12:58 pm and thank you, but no really need to implement. I have a solution in the meantime, but I thought I should ask, because if negative values are possible, someone else would try to use it too. If it seems to work at first sight...
Yes, that's right. It should error out on negative values and will do so now:

Code: Select all

- Fix: ResetTimer() will no longer accept negative values