% % install locaters in map % % process data points, keeping 10 deep history of valid points % "LOD_" &_Sim.PartImei &"_" textwild 0 !counter 0 !LastComm 0 !ShakeComm 0 !CommC 0 !CommD % % cycle LOD's for this tracker from least recent forward % _Arching.Connector empty { % % stack: path seed % nextfile ? %%%"a1 " count - & &" " log() dup !Sim.File % % next upward in time locater data point file % reading % % stack: path seed seed-content % execstr %%%dup logs % % off time must be greater than 2 minutes % _Sim.Msec _LastComm sub _Sim.Msec !LastComm dup 180000 gt exch 240000 lt and { dup ^"measure " logs % % this is the initial gap for data transmit (conditionally) % read this data point as the 3 minute marker in data transmit % 1-3 Low (engine power out if 1-5 Low) % // 1]L3]E>>5]H // 6]8>7]H9]7>10]H12]6>13]H15]5>16]H18]4>19]H21]3>22]H24]2>25]H27]1>28]H30]0> // 31]H33]0L34]H36]L37]H60] ... repeats every 60 minutes % % mark the transition point, will return here if experiment fails % dup !Xper true !Proper % % check for missing data markers over the next 57 minutes % _Sim.Msec "Transition " log() !Transition _Sim.Msec 58 60 mul 1000 mul add "Ender " log() !Ender 1 120 prezero !Biter { % % stack: path seed % nextfile ? "a1 " count - & &" " log() dup !Sim.File % % next upward in time locater data point file % reading % % stack: path seed seed-content % execstr _Sim.Msec _Ender gt ? _Sim.Msec "xper " log() _Transition sub 30000.0 div normint "detect " log() !Bitval _Bitval 1 gt { %%% _Biter _Bitval + + minus left _Biter _Bitval + minus left %%% ^"11" ^"11" %%% _Biter _Bitval + left ^ _Biter _Bitval - left ^ !Biter } if } loop % check for present(1), missing(0) data points at: % 6-7 (!acc) % 9-10 0x80,12-13 0x40,15-16 0x20,18-19 0x10, % 21-22 0x08,24-25 0x04,27-28 0x02 30-31 0x01 % 33-34 Low, 36-37 Low, 38-60 High % %% 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 % 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 % 000111111111000111111111111111111111111111111111100111100110110110110111111111111111111111111111111111111111111111110001 _Biter length logs "2.5 minutes " log() -6 right { dup 1 right "0" eq$ ? -1 right } loop &"1" %% 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 % 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 % 0001111111110001111111111111111111111111111111111001111001101101101101 length logs "signif " log() -6 left 0x0000 exch 11 countup { pop exch 2 mul exch dup 3 left "111" eq$ { exch 0x0001 or exch } if -6 left } for logs "pre-Final " second 16 base & logs dup 0x03 and 0 eq { 4 div normint } { false !Proper "Improper " second 16 base & logs } ifelse "Final " second 16 base & logs !Final _Proper { } { pop _Xper } ifelse } if } loop pop2