MeOS http://sportident.ca/category/16.aspx MeOS en-CA SPORTident.ca Subtext Version 2.1.2.2 MeOS&ndash;download a second time http://sportident.ca/archive/2023/09/29/meosndashdownload-a-second-time.aspx <p>For minor events a competitor should be allowed to go back on course and fix an error so they are not disqualified.  The main goal is satisfied participants.</p> <p>However, MeOS doesn’t make it that easy to download an SI a second time.  Here’s how to do it:</p> <p>In the <strong>Competitors </strong>section, click on the subsection <strong>Manage Cards</strong>.</p> <p><a href="http://sportident.ca/images/sportident_ca/Open-Live-Writer/MeOSallow_CC89/2023-09-29%2014_45_31-Clipboard_2.png" rel="lightbox"><img title="2023-09-29 14_45_31-Clipboard" style="display: inline; background-image: none;" border="0" alt="2023-09-29 14_45_31-Clipboard" src="http://sportident.ca/images/sportident_ca/Open-Live-Writer/MeOSallow_CC89/2023-09-29%2014_45_31-Clipboard_thumb.png" width="244" height="118" /></a></p> <p>Find the card of the user who wants to download a second time and double-click the entry.  This brings up a sub-window where the card can be moved to another user, or made “Unpaired”.</p> <p><a href="http://sportident.ca/images/sportident_ca/Open-Live-Writer/MeOSallow_CC89/2023-09-29%2014_46_14-Test-20230816%20(local,%20no%20server)%20%E2%80%93%20MeOS_2.png" rel="lightbox"><img title="2023-09-29 14_46_14-Test-20230816 (local, no server) – MeOS" style="display: inline; background-image: none;" border="0" alt="2023-09-29 14_46_14-Test-20230816 (local, no server) – MeOS" src="http://sportident.ca/images/sportident_ca/Open-Live-Writer/MeOSallow_CC89/2023-09-29%2014_46_14-Test-20230816%20(local,%20no%20server)%20%E2%80%93%20MeOS_thumb.png" width="244" height="191" /></a></p> <p>Click on <strong>Unpair</strong>.  Now this card can be deleted.  Select it and press the red X in Table tools</p> <p><a href="http://sportident.ca/images/sportident_ca/Open-Live-Writer/MeOSallow_CC89/2023-09-29%2014_47_55-Test-20230816%20(local,%20no%20server)%20%E2%80%93%20MeOS_2.png" rel="lightbox"><img title="2023-09-29 14_47_55-Test-20230816 (local, no server) – MeOS" style="display: inline; background-image: none;" border="0" alt="2023-09-29 14_47_55-Test-20230816 (local, no server) – MeOS" src="http://sportident.ca/images/sportident_ca/Open-Live-Writer/MeOSallow_CC89/2023-09-29%2014_47_55-Test-20230816%20(local,%20no%20server)%20%E2%80%93%20MeOS_thumb.png" width="244" height="139" /></a></p> <p>Deleting the card is optional, once unpaired, the user can download again.  I would suggest to only unpair when the competitor wants to download, in case they change their mind – once unpaired, MeOS considers the runner “back in the forest”.</p><img src="http://sportident.ca/aggbug/137.aspx" width="1" height="1" /> SPORTident.ca http://sportident.ca/archive/2023/09/29/meosndashdownload-a-second-time.aspx Fri, 29 Sep 2023 18:51:12 GMT http://sportident.ca/archive/2023/09/29/meosndashdownload-a-second-time.aspx#feedback http://sportident.ca/comments/commentRss/137.aspx Timing a GOAT race with MeOS http://sportident.ca/archive/2023/07/10/timing-a-goat-race-with-meos.aspx <p>A Goat race is anorienteering race format where the competitor is allowed to skip one control without penalty (Some background and interesting history about the Billygoat format <a href="https://www.billygoat.org/FAQ.html">here</a> and <a href="http://www.attackpoint.org/discussionthread.jsp?messageid=4727">here</a> – especially PG’s entry starting with “tradition” on the attackpoint page).</p> <p>Anyways, if you want to compute results with MeOS where one missed control does not cause a mispunch, you need to declare a custom result calculation, which is done from the Lists tab:</p> <p><a href="http://sportident.ca/images/sportident_ca/Open-Live-Writer/Timing-a-GOAT-race-with-MeOS_B269/image_2.png" rel="lightbox"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://sportident.ca/images/sportident_ca/Open-Live-Writer/Timing-a-GOAT-race-with-MeOS_B269/image_thumb.png" width="202" height="244" /></a></p> <p>(click on image for full size)</p> <p>Name the module and identifier as you wish.  Pay attention to the <strong>Edit rule for</strong> dropdown:</p> <p>There are 4 rules if it’s a team event and there are 4 rules if it’s an individual competitor event.</p> <ul> <li>Determine Status</li> <li>Compute total time</li> <li>Calculate Score</li> <li>Determine Points</li> </ul> <p>A goat race doesn’t have points, so there is no computation necessary for the last item.  The total time will not change, and the default rule if not specified returns the total time, so this is also not necessary to be specified.  That leaves Status and Score</p> <h4>Determine Status</h4> <p>This method must return one of eight possible values:  StatusOK, StatusDNS, StatusMP, StatusDNF, StatusMAX, StatusUnknown or StatusNotCompeting.</p> <p>If the current status is other than MP, we just return that status, however if it is StatusMP, we count the number of missed controls, and if its only one, we return status OK, else we leave it as MP.  We count the number of missed controls by checking how many split times have a value of –1.  The full code is this: <br /></p> <div style="line-height: 110%; font-family: courier new; font-size: 10px;"> <p>if (Status == StatusMP) { <br />   UnmatchedPunches = 0; <br />   for (i = 0; i &lt; SplitTimes.size(); i++) { <br />      if (SplitTimes[i] == -1) { <br />         UnmatchedPunches = UnmatchedPunches + 1; <br />      } <br />   } <br />   if (UnmatchedPunches == 1) { <br />      return StatusOK; <br />   } <br /> }</p> <p>return Status; <br /></p> </div> <h5>Calculating Score</h5> <p>MeOS has this to say about calculating Score: </p> <blockquote> <p> <br /><font style="background-color: rgb(223, 206, 4);">This is the most important method. It is used to calculate an internal score which is used to sort the competitors or teams and then to assign a place. A lower score means a better place; a negative score is better than any positive score. Equal score implies a shared place. <br />The default method returns <font face="Arial"><tt>Time</tt> if the status is OK, otherwise <tt>900000 + Status</tt>. The fastest time gets the lowest score and wins. If the status is not OK, the score is higher than the score for any runner with status OK.</font></font></p> </blockquote> <p>Here the custom results calculation again counts the number of splits for results with an initial status of MP – and if only one control was missed, it will return the runner’s time, else it returns a really big value – indicating error.  Here’s the code:</p> <div style="line-height: 110%; font-family: courier new; font-size: 10px;"> <p>if (Status == StatusOK) { <br />   return Time; <br /> } <br /> else { <br />   if (Status == StatusMP) { <br />      UnmatchedPunches = 0; <br />      for (i = 0; i &lt; SplitTimes.size(); i++) { <br />         if (SplitTimes[i] == -1) { <br />             UnmatchedPunches = UnmatchedPunches + 1; <br />         } <br />      } <br />      if (UnmatchedPunches == 1) { <br />         return Time; <br />      } <br />   } <br /> } <br /> return Time + (Status * 900000);</p> </div> <p>Now that these two calculations have been added, make sure all classes use your Result Calculation Module. Select it here: <br /><a href="http://sportident.ca/images/sportident_ca/Open-Live-Writer/Timing-a-GOAT-race-with-MeOS_B269/image_4.png" rel="lightbox"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://sportident.ca/images/sportident_ca/Open-Live-Writer/Timing-a-GOAT-race-with-MeOS_B269/image_thumb_1.png" width="190" height="244" /></a></p> <p>(click on image for full size)</p> <p>Thanks to Jay Hann (Western Race Services) for the code.</p> <h2><font style="background-color: rgb(247, 150, 70);">NOTE</font></h2> <p>The calculation module in MeOS is a bit <strong><font size="3">buggy</font></strong> in that it doesn’t always conform to the mathematical rules of precedence (multiplication/division before addition/subtraction).  Even bracketing doesn’t always seem to work.  I suggest keep the math to an absolute minimum, with lots of intermediary variables.  I noticed this with MeOS 3.8U1 in the spring of 2023.</p><img src="http://sportident.ca/aggbug/136.aspx" width="1" height="1" /> SPORTident.ca http://sportident.ca/archive/2023/07/10/timing-a-goat-race-with-meos.aspx Mon, 10 Jul 2023 20:14:51 GMT http://sportident.ca/archive/2023/07/10/timing-a-goat-race-with-meos.aspx#feedback http://sportident.ca/comments/commentRss/136.aspx