From f9697b22b657762e054bce2e4daa4bfba4066927 Mon Sep 17 00:00:00 2001 From: John Wolfe Date: Thu, 12 Jun 2014 13:31:21 -0700 Subject: [PATCH] #27,#31 - Cleaned up the reset case, providing a better distribution of intelligence and layering of control. This version works fine in Verifier with the watch GUI. It also fixes the problem with the GPS timeout events mentioned for the previous commit. --- ...ener_in_idle_to_monitoring__Transition.oal | Bin 596 -> 0 bytes .../monitoring__State_Machine_State.oal | Bin 580 -> 0 bytes .../GPS Watch/Library/Tracking/Tracking.xtuml | 13 ++-- .../displayDistance__State_Machine_State.oal | Bin 560 -> 0 bytes .../displayHeartRate__State_Machine_State.oal | Bin 561 -> 0 bytes .../displayPace__State_Machine_State.oal | Bin 556 -> 0 bytes .../displaySpeed__State_Machine_State.oal | Bin 557 -> 0 bytes .../Tracking/Tracking/TrackLog/TrackLog.xtuml | 13 ++++ .../TrackLog/addLapMarker__Operation.oal | Bin 474 -> 0 bytes .../TrackLog/addTrackPoint__Operation.oal | Bin 475 -> 0 bytes .../Library/Tracking/Tracking/Tracking.xtuml | 34 ++++----- .../WorkoutSession/WorkoutSession.xtuml | 63 +++++++++++++++++ .../InstanceStateMachine.xtuml | 65 +++++++----------- ...ssed_in_stopped_to_running__Transition.oal | Bin 593 -> 0 bytes .../stopped__State_Machine_State.oal | Bin 563 -> 0 bytes .../Tracking/WorkoutTimer/WorkoutTimer.xtuml | 13 ++++ .../heartRateChanged__Required_Signal.oal | Bin 471 -> 0 bytes 17 files changed, 137 insertions(+), 64 deletions(-) delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/HeartRateMonitor/HeartRateMonitor/HeartRateMonitor/ClassStateMachine/HR__registerListener_in_idle_to_monitoring__Transition.oal delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/HeartRateMonitor/HeartRateMonitor/HeartRateMonitor/ClassStateMachine/monitoring__State_Machine_State.oal delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Display/ClassStateMachine/displayDistance__State_Machine_State.oal delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Display/ClassStateMachine/displayHeartRate__State_Machine_State.oal delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Display/ClassStateMachine/displayPace__State_Machine_State.oal delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Display/ClassStateMachine/displaySpeed__State_Machine_State.oal delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/TrackLog/addLapMarker__Operation.oal delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/TrackLog/addTrackPoint__Operation.oal delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/InstanceStateMachine/WorkoutTimer1__startStopPressed_in_stopped_to_running__Transition.oal delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/InstanceStateMachine/stopped__State_Machine_State.oal delete mode 100644 applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/heartRateChanged__Required_Signal.oal diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/HeartRateMonitor/HeartRateMonitor/HeartRateMonitor/ClassStateMachine/HR__registerListener_in_idle_to_monitoring__Transition.oal b/applications/gps/GPS Watch/models/GPS Watch/Library/HeartRateMonitor/HeartRateMonitor/HeartRateMonitor/ClassStateMachine/HR__registerListener_in_idle_to_monitoring__Transition.oal deleted file mode 100644 index f5a40ae84aa0e6cea6a13a6e9c62e55b39e6f301..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcma))!EVz)5Qe8EMHLkn5Jw~*DsjQ<#7*raoGPejCAX>)B#vmj9w&?JU3WdE4u`6J z3=X^j;sxN&o%iTFblp@?36Qv~wEz6Gv;VjIA^~AiiFG|F#Yr2|RS2mC>$ng1lgOl)T3e7!;`I!Hlia^A`!+S6QNJ zW_YryHmr(Z&stn|vNLQJSo1NKbPDINmcUloO`ICz#@$LiURJAeTQOV&uTN&)TV%Ni zZoKs!AyKJCy9^EpEl-i@$Y|xF{fF?Qqg4*zp}KK zKc9a3fuHZe+9C96^^w}j@mfFYx%C0Vb`+<17KNdo%Mkq`4#qyll>6h6#IzsEDDJ1u z=5|pWqV$Jyl=;JWwCl_MPV7fJ=^!UL9_G8_mLWQrP9~P-jw0EPC26vr(w@o+^4NIg oD!F@xiTB2$t`#ez83uQ7{gdA<$5mj4XMg`B(pVC|&weMb0T=nnpa1{> diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/HeartRateMonitor/HeartRateMonitor/HeartRateMonitor/ClassStateMachine/monitoring__State_Machine_State.oal b/applications/gps/GPS Watch/models/GPS Watch/Library/HeartRateMonitor/HeartRateMonitor/HeartRateMonitor/ClassStateMachine/monitoring__State_Machine_State.oal deleted file mode 100644 index bc5af59a5e1e6e0881b54f777e1619767066b1a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcma))y-ve06oqd~K?uYGVnlRcBu;;lG=&KPf=VeubYMiTZCa!J;oLyVfZ#D0cmu=> zz|PKl^c`@T3RMCm7Rx^OT-|#<`DG0AiGpnw1tbt5Mv8Vx2_D@F0|> z<7giM*z559Z5n2MSTZluBsPr`q&~s2e}%VbhZy(lE@>6_c6^vq!dDp)tXAEeRA}#N zje}A)hWQXPI>t!ezynPAuo#sSPm{!q8%s4Bq*c2}33~S7Nw_s{c0 LOEwwMsJ`G|M_#)o diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Display/ClassStateMachine/displayHeartRate__State_Machine_State.oal b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Display/ClassStateMachine/displayHeartRate__State_Machine_State.oal deleted file mode 100644 index e71f1f121623447430febe9db352bdb2f59e85f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmZ{h&raMh5XJ|(Ak>OWD~?EefE#g~?4}BELQnxxK!~lx5lw8f>ym#s6Ug>}#A9&a z4XVBX+!vBuwg*8Jx4uV+{&4Qz-!WvR+2H!Q0}qNsk(w&n2X?3+Dtsnb31M-b!c3)?YbZsy89=C?irF8xf5?W zBSbnjXvXe$gW}Q>{4e%&StK}ickR4#KuGEc#YkuBwZdwu(!^%-rCEqI$m}0-efM|u z{trHUfVo5Hl=`Qt3meP)O~;-e3D&$o$iDA$M+KpDdU0PkJruDMD5WItNk8U2YuogE zF1=09;TIRe>5JHR!anDY_mu}>7$TQ4s0r3(%YC5G(5a=~>Q3OhQ~LHs;LU{aZYtAs U+WiRF+g~qoqu6Xhllok|0D;50vj6}9 diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Display/ClassStateMachine/displayPace__State_Machine_State.oal b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Display/ClassStateMachine/displayPace__State_Machine_State.oal deleted file mode 100644 index c27f520ce9d0babd141d16b2fcd2d244bb8fd06c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmZ`$O-sW-5FNFOC|(qgLJuCzCQTYEdJ+{8QYlvOD3i^$UCo!9iKZR|e})JDf%pgX z?%n^<|KO%6T2NV7X5YNwy?OgGg859r7EdA;iI@__;+%&f&zPUGTrv^`v33%O@F)}| zX+W^*UEwX7A;x{POG?K5Jr5RS;K_^#)~jw#GBo#< z!eI$(!eWRSonj9ujeH2KSIhZ+t zS|;yBk?L4x?`ry9BG_!WJZRdsWe9gCFdVWAqxW zp3xL`%fMdKFs!nS1*Fb)c*elG6|+yje!0A>pW3{ KO@}kCFZmbh7`W&F diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Display/ClassStateMachine/displaySpeed__State_Machine_State.oal b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Display/ClassStateMachine/displaySpeed__State_Machine_State.oal deleted file mode 100644 index 000ec1def7055470fd6aff805f341915bf7a4a3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 557 zcmZ`$O-sW-5S`XmMDe0{6e@T$n>1-^)st9}LMp`y9%ZxHwyXJaGttz8;Lq^jKM?nSJwy_vX#Z1geRI9To*7;2}nmgemiRnh-Z8sUXNRB;Cm4{;|(< zMyCw`&k+eCY!uxTg|8n< zNyj;?2unUq@RSDp1|Fc~z)FxSo<)(8n?V&E$3;7f5r+CnuV1^M$VU2}V+HuD;$X=vPTd79-mm}XJtYBuNGGc3<^4NK8l1Iu!E_YAG+ zxwfVTY|S+XEv>;?&8FEj8f;)?2wPs^yC19R{o2%cZRWiAA=Kvr_&1SRGR1BP|0RVd&eZ0>>iNlJ$8SBUz9i%?ND!;)ybOMZePM3^|dIua9l+RT{1nXlrB^5Y_ z#^5lQZNp-K37ujnZ{ZON9G1g;;y~&Kgm1ocl zoeP6vU*%{E8505zb2}6->Z6VMzDdt&oOSJ8A!8VK8vM6QaU22%~1av VV-jbKO0fO+UkPm_n?8Ldz5!7ap5*`l diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/TrackLog/addTrackPoint__Operation.oal b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/TrackLog/addTrackPoint__Operation.oal deleted file mode 100644 index ee9b664b20c1cd289fc58175df2f254d5db29f8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 475 zcmZ{h!Ab)$5QeAPiYQ(b!Hdv?cyhDV){1%(6e(=ASiz&rCTSbp-K^PJ-Fgsw3=h76 z_yT(O?tAnd%(kTz(MuTqf0FtB$=d)*iGeMyLl(-2v|&-o1DPhwk6Ef1$&6T23mKdQ zGVf>{0|0v;e16P8$%7?(GuDwcT1Y*DW$y;>(G4)_x@|Hl>K=M9r-Y{xB3K={DXG9c zG6ws(Y#ZhSOy~?lc?VBW@L(~_Cthf6$Bm^T_2ZG9#RN_FwAC(OA@QC&>`kTwPx%H- z-@P=*Z!N*E!qa2L7A&JQ4D1G0a%`4^u?blA{JsA2g|D+vXh1Phk1~sG_`*Zco(lvU zl}>Hf_j%nBSgkuXf7f?#M+m30SKY^Yr^0<9GJ-V}V#w0cDx!n(c`OZ*(hT2SdZ3>Hq)$ diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Tracking.xtuml b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Tracking.xtuml index baf4b1175..015783ec8 100644 --- a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Tracking.xtuml +++ b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/Tracking.xtuml @@ -719,11 +719,11 @@ INSERT INTO GD_NCS VALUES ("b8bf682c-54fe-4d15-8a5d-d3ce1bba7d47"); INSERT INTO DIM_ND VALUES (241.000000, - 181.000000, + 216.000000, "b8bf682c-54fe-4d15-8a5d-d3ce1bba7d47"); INSERT INTO DIM_GE VALUES (4524.000000, - 2772.000000, + 2749.000000, "b8bf682c-54fe-4d15-8a5d-d3ce1bba7d47", "00000000-0000-0000-0000-000000000000"); INSERT INTO DIM_ELE @@ -742,8 +742,8 @@ INSERT INTO DIM_CON "b8bf682c-54fe-4d15-8a5d-d3ce1bba7d47"); INSERT INTO DIM_CON VALUES ("a849f130-36e3-4242-a3d6-addc4f24fcda", - 4571.000000, - 2953.000000, + 4572.000000, + 2965.000000, "b8bf682c-54fe-4d15-8a5d-d3ce1bba7d47"); INSERT INTO DIM_CON VALUES ("f94db881-c4fb-4667-a7e8-6b7e6475c3f4", @@ -971,8 +971,8 @@ INSERT INTO DIM_ND 0.000000, "2493fded-d366-4959-a593-42aac0cee653"); INSERT INTO DIM_GE - VALUES (4573.000000, - 2954.000000, + VALUES (4574.000000, + 2966.000000, "2493fded-d366-4959-a593-42aac0cee653", "00000000-0000-0000-0000-000000000000"); INSERT INTO DIM_ELE @@ -990,8 +990,8 @@ INSERT INTO DIM_ND 0.000000, "939b4d18-b91e-4e49-9957-5b92b0d7e8ac"); INSERT INTO DIM_GE - VALUES (4533.000000, - 3005.000000, + VALUES (4533.500000, + 3011.000000, "939b4d18-b91e-4e49-9957-5b92b0d7e8ac", "00000000-0000-0000-0000-000000000000"); INSERT INTO DIM_ELE @@ -1025,8 +1025,8 @@ INSERT INTO GD_LS "0da43a5a-ccd1-479c-9012-8562b2bbab22"); INSERT INTO DIM_WAY VALUES ("112545ad-719b-4937-8762-939c7d138f29", - 4571.000000, - 2953.000000, + 4572.000000, + 2965.000000, "0c528f56-b0d4-4087-95ad-1da6bd8c3671", "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000000"); @@ -1525,14 +1525,16 @@ INSERT INTO O_OBJ_PROXY 'WorkoutTimer', 1, 'WorkoutTimer', - 'The WorkoutTimer controls the lifecycle of workouts. There should -never be more than one instance of this class at any time. + 'As a singleton, no more than one instance of this class exists +at any given time. -The WorkoutTimer has the responsibility to start and stop the GPS -upon activation/deactivation of the timer. +Along with managing the stopwatch portion of the application, +this class also knows: +- Track points are stored only when the stopwatch is running. +- How to handle the lap/reset signal based on whether the +stopwatch is currently running. -While being active, the WorkoutTimer should keep track of elapsed -time. Time can only be reset while being inactive. ', +', "00000000-0000-0000-0000-000000000000", "c4cafc68-b5c2-f769-2746-b4aaac0bac84", "00000000-0000-0000-0000-000000000000", diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutSession/WorkoutSession.xtuml b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutSession/WorkoutSession.xtuml index c4f077ab4..ab3208953 100644 --- a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutSession/WorkoutSession.xtuml +++ b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutSession/WorkoutSession.xtuml @@ -79,6 +79,69 @@ self.currentSpeed = 0.0;', 1, '', "0a3c180b-9d9a-457a-ab39-2114964b5908"); +INSERT INTO O_TFR + VALUES ("3c3e9447-7fbe-40c3-835d-aa668b911afa", + "2522ffa2-db69-4807-ab45-06acf4cf893a", + 'create', + '', + "ba5eda7a-def5-0000-0000-000000000000", + 0, + '// Unless a workout session already exists, create and initialize a +// workout session, workout timer, and tracklog, and relate them all. + +select any session from instances of WorkoutSession; + +if ( empty session ) + + // Create a workout session. + create object instance session of WorkoutSession; + session.initialize(); + + // Create a workout timer. + create object instance workoutTimer of WorkoutTimer; + workoutTimer.initialize(); + + // Create a track log. + create object instance trackLog of TrackLog; + trackLog.initialize(); + + // Relate them all together. + relate trackLog to session across R4.''represents path for''; + relate workoutTimer to session across R8.''acts as the stopwatch for''; + +end if; +', + 1, + '', + "56c15cf0-cc7e-4c80-bed9-75d6c2f085dd"); +INSERT INTO O_TFR + VALUES ("a20ddab3-779d-44fd-bea2-d5477b04a7b3", + "2522ffa2-db69-4807-ab45-06acf4cf893a", + 'reset', + '', + "ba5eda7a-def5-0000-0000-000000000000", + 1, + '// Reset this session, including the timer and track log. + +// Reset the timer. +select one workoutTimer related by self->WorkoutTimer[R8.''is timed by'']; +workoutTimer.initialize(); + +// Reset the track log. +select one trackLog related by self->TrackLog[R4.''captures path in'']; +trackLog.clearTrackPoints(); +trackLog.clearLapMarkers(); +trackLog.initialize(); + +// Reset the session. +self.currentSpeed = 0.0; +self.currentHeartRate = 0; +self.accumulatedDistance = 0.0; +self.clearHeartRateSamples(); +', + 1, + '', + "3c3e9447-7fbe-40c3-835d-aa668b911afa"); INSERT INTO O_NBATTR VALUES ("f9ea9144-48ad-45cb-82c6-6320037767b3", "2522ffa2-db69-4807-ab45-06acf4cf893a"); diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/InstanceStateMachine/InstanceStateMachine.xtuml b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/InstanceStateMachine/InstanceStateMachine.xtuml index 806d8164b..8a23d6796 100644 --- a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/InstanceStateMachine/InstanceStateMachine.xtuml +++ b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/InstanceStateMachine/InstanceStateMachine.xtuml @@ -224,22 +224,13 @@ INSERT INTO SM_ACT VALUES ("60d86bf9-08ac-4175-a409-67bec22595c3", "c4cafc68-b5c2-f769-2746-b4aaac0bac84", 1, - '// reset -self.time = 0; -send UI::setTime(time: self.time); - -select one trackLog related by self->WorkoutSession[R8.''acts as the stopwatch for'']->TrackLog[R4.''captures path in'']; -trackLog.clearTrackPoints(); -trackLog.clearLapMarkers(); + '// Reset the session select one session related by self->WorkoutSession[R8.''acts as the stopwatch for'']; -session.clearHeartRateSamples(); - -// notify the UI of this change -generate Display_A2:refresh() to Display class; +session.reset(); -unrelate session from trackLog across R4.''captures path in''; -unrelate self from session across R8.''acts as the stopwatch for''; -delete object instance trackLog;', +// Update the UI. +send UI::setTime(time: self.time); +generate Display_A2:refresh() to Display class;', ''); INSERT INTO SM_MOAH VALUES ("5eef4bed-2b88-4d47-8a15-7a7600a01f7c", @@ -278,17 +269,7 @@ INSERT INTO SM_ACT VALUES ("a9b703ef-5e80-4bc4-a3f9-ab8963f59c86", "c4cafc68-b5c2-f769-2746-b4aaac0bac84", 1, - '// Create and initialize a workout session and relate it to this workout timer. -create object instance session of WorkoutSession; -relate self to session across R8.''acts as the stopwatch for''; -session.initialize(); - -// Create and initialize a track log and relate it to newly created session. -create object instance trackLog of TrackLog; -trackLog.hasLocation = false; -relate trackLog to session across R4.''represents path for''; - -// Start the timer. + '// Start the timer. self.activate();', ''); INSERT INTO SM_TAH @@ -395,11 +376,11 @@ INSERT INTO GD_SHP INSERT INTO GD_NCS VALUES ("8e6563ea-9d7f-4127-b681-f8875cfed071"); INSERT INTO DIM_ND - VALUES (200.000000, - 150.000000, + VALUES (443.000000, + 168.000000, "8e6563ea-9d7f-4127-b681-f8875cfed071"); INSERT INTO DIM_GE - VALUES (4188.000000, + VALUES (4069.000000, 3096.000000, "8e6563ea-9d7f-4127-b681-f8875cfed071", "00000000-0000-0000-0000-000000000000"); @@ -409,7 +390,7 @@ INSERT INTO DIM_ELE "00000000-0000-0000-0000-000000000000"); INSERT INTO DIM_CON VALUES ("3df7e776-d69a-41cd-9306-ed74f6277a4d", - 4388.000000, + 4512.000000, 3126.000000, "8e6563ea-9d7f-4127-b681-f8875cfed071"); INSERT INTO DIM_CON @@ -420,7 +401,7 @@ INSERT INTO DIM_CON INSERT INTO DIM_CON VALUES ("fd311c02-b870-4c32-b866-79bd0b84d244", 4284.000000, - 3246.000000, + 3264.000000, "8e6563ea-9d7f-4127-b681-f8875cfed071"); INSERT INTO GD_GE VALUES ("99d164e6-709c-46e4-98c9-4b6892972d43", @@ -507,7 +488,7 @@ INSERT INTO DIM_ND 24.000000, "2627fdea-ff4b-4567-908b-9030c653614f"); INSERT INTO DIM_GE - VALUES (4148.000000, + VALUES (4272.000000, 2928.000000, "2627fdea-ff4b-4567-908b-9030c653614f", "00000000-0000-0000-0000-000000000000"); @@ -526,7 +507,7 @@ INSERT INTO DIM_ND 36.000000, "2dce6731-5671-4446-ab99-b50371c3aefb"); INSERT INTO DIM_GE - VALUES (4514.000000, + VALUES (4576.000000, 3078.000000, "2dce6731-5671-4446-ab99-b50371c3aefb", "00000000-0000-0000-0000-000000000000"); @@ -561,7 +542,7 @@ INSERT INTO GD_LS "63c9065f-c047-4cae-a6ea-e63e442b4f7a"); INSERT INTO DIM_WAY VALUES ("2ebe9c15-a059-4350-b906-52cf6e3ee0c4", - 4388.000000, + 4512.000000, 3126.000000, "83e96639-9df4-411d-a95a-bdcd0c6a8421", "00000000-0000-0000-0000-000000000000", @@ -792,7 +773,7 @@ INSERT INTO DIM_ND "c589d244-e9a6-4358-8d83-9f4637cd5a92"); INSERT INTO DIM_GE VALUES (4308.000000, - 3364.500000, + 3373.500000, "c589d244-e9a6-4358-8d83-9f4637cd5a92", "00000000-0000-0000-0000-000000000000"); INSERT INTO DIM_ELE @@ -840,7 +821,7 @@ INSERT INTO DIM_WAY INSERT INTO DIM_WAY VALUES ("c146a899-8248-4fb5-a272-796bec7ec395", 4284.000000, - 3246.000000, + 3264.000000, "bcab8b28-f5ee-4440-93e7-012734a36611", "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000000"); @@ -1228,14 +1209,16 @@ INSERT INTO O_OBJ_PROXY 'WorkoutTimer', 1, 'WorkoutTimer', - 'The WorkoutTimer controls the lifecycle of workouts. There should -never be more than one instance of this class at any time. + 'As a singleton, no more than one instance of this class exists +at any given time. -The WorkoutTimer has the responsibility to start and stop the GPS -upon activation/deactivation of the timer. +Along with managing the stopwatch portion of the application, +this class also knows: +- Track points are stored only when the stopwatch is running. +- How to handle the lap/reset signal based on whether the +stopwatch is currently running. -While being active, the WorkoutTimer should keep track of elapsed -time. Time can only be reset while being inactive. ', +', "00000000-0000-0000-0000-000000000000", "c4cafc68-b5c2-f769-2746-b4aaac0bac84", "00000000-0000-0000-0000-000000000000", diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/InstanceStateMachine/WorkoutTimer1__startStopPressed_in_stopped_to_running__Transition.oal b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/InstanceStateMachine/WorkoutTimer1__startStopPressed_in_stopped_to_running__Transition.oal deleted file mode 100644 index d0f4643a1a96a9d345a84505e43781b1e55ce291..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmZ{i!A=`75QYZ`r~+|m)g#g#Dsf@G30abCdO|9yA}uH)NF1xN<0US;_F~Vrn;t6l zF?#45AYOppd*?lP2fPG94)kJ;{`u{h|C6upVcl8S6Q*E=)MPBvmB?k~7%y3+7|EL0 zv6;&JD3^_6^a%ji&HdloRaj49+utmW_Kh*pjNonh6~AGWqrQkHWR<@7n8Jpdrpgh) z`$e}Rl}Crx;=GZ);Z2T?POy+y@Do;2*eaTdr^fhkPg0BK<)U4e1UC9So&@JeVirAm z-I9W$6urwi4j;(Y~P6MUA tX3El+WCB}h?FkG6&q6yz%4mYl6085hdxE&gPO$s>4-v*n_VV@@@c@3g$!h=r diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/InstanceStateMachine/stopped__State_Machine_State.oal b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/InstanceStateMachine/stopped__State_Machine_State.oal deleted file mode 100644 index 0bf348da5e5d36a671ca48678b26446281feb58b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmZ{hu};G<5QYyZ2!U8YY#?=DBn~ZU+QNhcLX`qS6p0aCY?m66I5-zb8IX7k2HpVi z0S`GVQZz$Vu*i)BLEuq5Y^%rh3IELV(VLF`Bi868Bj zbaeIsfW3abzfHqz0892|suSBdLFyAM2UmEDZiLCD+a;rt%iRFxln7Kt1goQNPAYQu zjKM)ETf=;W869IRZ{Pu@0$7a8iKklIabu}MgLKp`QUc>1o^-3{NWAY3z1f5isL-Gp zxMv3WwN3C_oNIHfb2?M8G;Sx!2oo;5gd~rU_f;bQ6j?!e99c{&RuM9B{Y3kvF8H82KPAjxZiTZ2CqB4rr&nzP0x2i4-xrRh`i-ln=g9O zYlynj5a>Hzqt|xATD#_OE}GlI7p+z^EC|*z(rGHiPIVZ&I?g@15!5Cy{L5v`XS5ap Q`}^~`Hj+)U8P*s48wXasH~;_u diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/WorkoutTimer.xtuml b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/WorkoutTimer.xtuml index c238dc684..736a3b9ad 100644 --- a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/WorkoutTimer.xtuml +++ b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/Tracking/WorkoutTimer/WorkoutTimer.xtuml @@ -46,6 +46,19 @@ send HeartRateProvider::unregisterListener();', 1, '', "1363f0df-e630-4deb-a831-ed6cbcc9a974"); +INSERT INTO O_TFR + VALUES ("e8f31568-926d-492c-b21d-afc08ba9b69c", + "8d4b82cf-ec16-4fd9-925b-0e51eb64a2f7", + 'initialize', + '', + "ba5eda7a-def5-0000-0000-000000000000", + 1, + '// Initialize this instance. + +self.time = 0;', + 1, + '', + "e44223c1-ae4c-4d58-a2d6-8d8f3cd56581"); INSERT INTO O_NBATTR VALUES ("fd184578-6989-4116-a696-87c76c28c472", "8d4b82cf-ec16-4fd9-925b-0e51eb64a2f7"); diff --git a/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/heartRateChanged__Required_Signal.oal b/applications/gps/GPS Watch/models/GPS Watch/Library/Tracking/heartRateChanged__Required_Signal.oal deleted file mode 100644 index 1ddffd0f20c738c84665c403dadb4ec5fea7b257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmZ{h%}T>S6oqfK6;a$ME`5;TwoA zpnLbeN8iDTsl|nEhT)tubH6k5GKE^IV2{Tk3q?e+Vo}Bek)_N{SSA^XoY-0HiQps< zMWS~M0PJ=8{BGr(wM4oS&q)OBD+#lG4r-g06YmAJ#9CxNm-E(_exkU4?35 zUMS=@nqa`)(AFtiWJ%jQsI)>*)iZ7opOFYAWwVp6IHTyQ*GS2zEMFr(v~Q zu3@*EXjsDL2J((&xE2?-Xg9sqzMT_n`vMgWki?O%UqN^W^??{?QVFj