Stop5Watch Script
Webb - all rights reserved - ©2004
spacer
Author - Jann Scheuer
Email: scheuer@coco.ihi.ku.dk
Webpage:

Summary: 5 separate stopwatches in one RPN application

Instructions: Application Stop5Watch

by Jann Scheuer, scheuer@coco.ihi.ku.dk


1 Units
Application Stop5Watch consists of two units (i.e. RPN function sets):
Stop5 and Watch5.


2 Description
Application Stop5Watch features five simultaneous stopwatches that may
be used separately or together (i.e. started or stopped by one stroke).

Lap and split time values may be saved in the RPN stack. Time values
are indexed so that the user can see which of the five watches a time
value relates to.

The five stopwatches may be operated by the scroll buttons, but scroll
buttons may also be used normally, i.e. for functions set scrolling.

Stop5Watch also features sorting functions for the time values.


3 Buttons

Unit Stop5

Stop5
Menu for setting default values for Stop5Watch.
Split - show split time values.
Lap   - show lap time values.
Off   - menu for setting offset value in hundreds of seconds.
Sav   - toggles saving of time values.
But   - toggles function of scroll buttons.

Watch
Calls the Watch5 unit - the function set for displaying and sorting
the results.

^ ^ ^ ^ ^ - start and stop (at split or lap time value)
each watch.

< - start and stop all watches.

v v v v v - reset each watch.

< - reset all watches.

Up scroll button
Function set scrolling or goto next watch.

Down scroll button
Functions set scrolling or start and stop watch.

Unit Watch5

Stop5
Calls the Stop5 unit.

Watch
Calls the Stop5 unit.

Up
Rotates the stack so that values move upwards.

Dn
Rotates the stack the other way around.

Srt
Sorts the stack, either according to indexes or time values.

Cls
Clears the stack.


4 Comments

Offset values
Offset values (in hundreds of seconds) are subtracted from read-out
time values. Offsets go from 0 to 25 hundreds of a second. Initial
value is 0. The idea behind this is to eliminate whatever time it may
take the user to press the buttons and RPN to execute button functions.

Scroll buttons
The Pilot scroll buttons may either function as normal RPN function set
scrolling buttons, or as stopwatch operating buttons. The startup function
is the normal scrolling function. When "Stop5" and "But" is pressed the
buttons operate the stopwatches (and vice versa). The present mode is
not visible to the user in the display. (If you do not know you have to
try and see what happens.)

Indexed time values
Indexes on time values are only used when time value saving is on. So
if no index appears in time values (in the sixth digit after the comma)
split or lap times are not put on the RPN stack.

Active/Inactive watches
Inactive watches show the value -1. Active watches show 0 or a higher
value, if stop has been pressed. Values for inactive watches are deleted
when Stop5 is closed.

Pilot off
Stop5Watch does not run while Pilot is off.

Code:

RPN.2.k \ Stop5
[a]1Cr2Cr3Cr4Cr5Cr1Xj;
{k}xk(d1.)Vv#'11'=0(Uhxj4>(1:xj1+)Xj:v#'12'=0(UhTtXfxjCf))Ud;
{o}11111CaUd;
{c}hV{_vhr@g10>!(d1)}Ud;
[f]Vxi(vg@g10>(hk@:d1))vx@0=0(xfvX@0:xfvx@-xh-#'100'/xi(#'10'6nPv*+))
v1+p@xg(xfvX@);
[r]V0vX@1nv1+p@;
[o]{xhUdD'Offset value (s/100)\Compensates reaction time.|<|Ok|>|'
c(1n:d1B:1)xh+Xhxh0<(0Xh)xh#'25'>(#'25'Xh)d1};
"Stop5"
"Stop5"D'^ - start, split or lab \v - reset, < - all
|Split|Lap|Off|Sav|But|Ok|'c(0Xg:1Xg:Co:xi(0:1)Xi:xk(0:1)Xk:);
"Watch"G'Watch5';
~
"^"TtXf1Cf;
"^"TtXf2Cf;
"^"TtXf3Cf;
"^"TtXf4Cf;
"^"TtXf5Cf;
"<"TtXf1Cf2Cf3Cf4Cf5Cf;
~
"v"1Cr;
"v"2Cr;
"v"3Cr;
"v"4Cr;
"v"5Cr;
"<"Ca;

RPN.2.e \ Watch5
[h]#'100'*fb;
[s]Xe{1Xd0Xah1-V{_vxa1+Xaxag@Xbxa1+g@Xcxec(xbxc>:xbxc<:
xbChxcCh>:xbChxcCh<)(0Xdxcxa1+p@xbxa2+p@)}xd(B)};
"Watch5"
"Stop5"G'Stop5';
"Watch"G'Stop5';
~
"Up"hr@;
"Dn"hk@;
~
"Srt"D'Sort order|Asc|Des|Asc-i|Des-i|'
Cs;
"Cls"hV{_vd1};