Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for goals to GPS Watch model #27

Open
johnrwolfe opened this issue May 12, 2014 · 0 comments
Open

Add support for goals to GPS Watch model #27

johnrwolfe opened this issue May 12, 2014 · 0 comments

Comments

@johnrwolfe
Copy link
Member

For the xtUML modeling courses, the case study requires additional richness in the class and state models.

johnrwolfe pushed a commit that referenced this issue Jun 5, 2014
johnrwolfe pushed a commit that referenced this issue Jun 10, 2014
support for goal-assessment of heart-rate based goals.
johnrwolfe pushed a commit that referenced this issue Jun 11, 2014
supporting workout goals.  This version runs successfully in Verifier
with the following exceptions:
1. When the workout timer is paused, the class-based state model for the
GPS continues ignoring a timeout event.  Probably this is caused by a
failure to unregister with the GPS when the workout timer is stopped.
2. When the workout timer is reset, the heart-rate samples are cleared,
but not the rest of data in the WorkoutSession such as currentSpeed,
currentPace, accumulatedDistance, and currentHeartRate.
johnrwolfe pushed a commit that referenced this issue Jun 11, 2014
supporting workout goals.  See previous commit comment for details, as
it seems I failed to check the boxes for any of the files during the
previous commit operation.
johnrwolfe pushed a commit that referenced this issue Jun 12, 2014
johnrwolfe pushed a commit that referenced this issue Jun 12, 2014
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.
johnrwolfe pushed a commit that referenced this issue Jun 12, 2014
unnecessary, leaving the question of whether the class should be
deleted.  For now, it will remain.
johnrwolfe pushed a commit that referenced this issue Jun 12, 2014
log, but on a singleton instance of workout session, navigating through
the session to find the associated track log.
johnrwolfe pushed a commit that referenced this issue Jun 13, 2014
johnrwolfe pushed a commit that referenced this issue Jun 13, 2014
failed invocation of timer_cancel() against a recurring timer in
Verifier.  It seems that when timer_cancel() returns a failing return
code when invoked against a recurring timer the recurring timer
continues firing.  This is odd, as the expectation is that a failing
return code indicates that at most a single event is already in flight
when the timer is cancelled, but in any case, the recurring timer is
cancelled.
johnrwolfe pushed a commit that referenced this issue Jun 13, 2014
johnrwolfe pushed a commit that referenced this issue Jun 13, 2014
a square-root function, hence the addition of the MATH EE.  While
rebuilding the project to produce the Math.class file, I hit a
compilation error in UI.java, for a missing constructor, SetData( Float,
Unit ).  For now, I've added that constructor to SetData.java, but it's
not clear precisely when or how this issue was injected.

This commit also includes the following files that were not previously
in the Git index:
Debug/.gitignore
bin/library/UI$GuiConnection.class
bin/library/UI.class
bin/uidatatypes/Unit.class
bin/uiinterfaces/IActionsAndDataFromProvider.class
bin/uiinterfaces/IActionsAndDataToProvider.class
javasrc/lib/MATH.java
bin/lib/MATH.class
I created the final two to provide access to the square-root function,
so I'm confident that adding these into the Git index is correct.
However, I'm less confident about the others, as they may have been
intentionally left out, perhaps because they include path names that are
specific to a particular Eclipse installation.

This version runs fine with Verifier now.
johnrwolfe pushed a commit that referenced this issue Jun 14, 2014
distance between each of the last five track points and dividing by the
elapsed time between the first and last points in the subset.  While
this version runs in Verifier, I still need to:
- determine whether the calculated speed is correct
- fix pace (currently displays as 0)
- test boundary cases (0, 1, 2, and 3 track points)
As part of this work I eliminated the Location structured data type, as
leaving it in place will teach the students bad habits.
johnrwolfe pushed a commit that referenced this issue Jun 16, 2014
simulated GPS.  Fixed calculation errors (kilometers vs. meters) in
distance calculation.  Boundary conditions mentioned in previous commit
tested successfully.  Speed and pace values appear to be valid.
Speed/pace varies immediately after a paused timer, but for now I'll
leave it as is.  This appears to be due to jitter between the GPS update
rate and the timer rate.  Need to decide what to do on this front.  The
specification indicates the watch stores one track point per second, but
the simulated GPS produces a new location every two seconds.
johnrwolfe pushed a commit that referenced this issue Jun 17, 2014
with each tick of the workout timer.  However, there is still a bit of
jitter in the time stamps on track points.
johnrwolfe pushed a commit that referenced this issue Jun 17, 2014
realistic by adding some variation into the distance moved during each
update period.  This version runs well in Verifer.
johnrwolfe pushed a commit that referenced this issue Jun 26, 2014
johnrwolfe pushed a commit that referenced this issue Jul 9, 2014
a bit of OAL that causes an internal parse error.  I will try to isolate
the offending piece of code and open an issue for it.
johnrwolfe pushed a commit that referenced this issue Jul 9, 2014
johnrwolfe pushed a commit that referenced this issue Jul 10, 2014
work includes:
- notify UI of current goal achievement status
- add support to animated watch for indicating goal achievement status
- ensure in-flight goal-achievement timer events are handled properly
after cancellation of timer
- make GoalSpec attribute names follow convention (lower case first
letter)
- test workout goal handling with Verifier
johnrwolfe pushed a commit that referenced this issue Jul 10, 2014
and no side effects, leaving the goal state machine to handle
achievement records and updating of the disposition attribute.
johnrwolfe pushed a commit that referenced this issue Jul 10, 2014
both occur in that state due to the asynchronous nature of button pushes
and timer expirations, but neither event is interesting once the goal
instance is in the completed state.  Small change in invocation of
Goal::create() for the sake of clarity, no semantic change.
johnrwolfe pushed a commit that referenced this issue Jul 10, 2014
operation with startTest operation as is used by the version supplied
with the tool.  Basic capabilities work in Verifier.  Have not yet begun
testing workout goal capabilities.
johnrwolfe pushed a commit that referenced this issue Jul 11, 2014
testing in Verifier.  Have not yet modified Java animation of the watch
to support newly defined indicator (down, flat, up) which will be used
to provide a visual indication of goal achievement.
johnrwolfe pushed a commit that referenced this issue Jul 11, 2014
capabilities work in Verifier on this version, but testing of goals has
not yet begun.
johnrwolfe pushed a commit that referenced this issue Jul 11, 2014
employing lower case for the first letter.
johnrwolfe pushed a commit that referenced this issue Jul 11, 2014
johnrwolfe pushed a commit that referenced this issue Jul 11, 2014
definition and one function for creating a set of goal specs.  Also
added reset support for goals.  Tested with Verifier and basic goal
capaiblities appear to work fine.  A few things to consider include:
1. Goal min/max/disposition/indicator is weird for pace because a lower
number means a faster (higher) speed.  Need to decide whether to change
the way this works.
2. Add a behavioral model of the user with some functions that allow his
speed and heart rate to be manipulated.
3. Convert Display from class-based state model to instance-based
singleton state model, eliminating assignment of interface signals to
transitions, replacing them with port OAL that generates the appropriate
event.
johnrwolfe pushed a commit that referenced this issue Jul 15, 2014
johnrwolfe pushed a commit that referenced this issue Jul 15, 2014
johnrwolfe pushed a commit that referenced this issue Jul 16, 2014
Evaluate currently executing goal only when workout timer is running.
johnrwolfe pushed a commit that referenced this issue Jul 17, 2014
deleted some unused, older code associated with the animated watch.
cortlandstarrett pushed a commit that referenced this issue Oct 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant