Frequently asked questions¶
- Table of contents
- Frequently asked questions
Administration¶
What information is needed to create a championship in MicroFLAP?¶
Please provide:- The championship's name
- The venue name
- The dates
- The email address the director uses in his/her Facebook, google or Yahoo account.
This is to grant him/her access to the championship's restricted features.
Why do you need my Facebook/Google/Yahoo email address?¶
MicroFLAP uses OAuth for user authentication. MicroFLAP will ask Facebook/Google/Yahoo if you are who you say you are.
In order to do that, Facebook/Google/Yahoo request you to grant MicroFLAP permissions to see your profile (or part of it depending on the network you selected). Read the permission request carefully. You can always deny permission after granting it, but you'll have to check how to do it in your favourite social network.
MicroFLAP receives your email address and your name from Facebook/Google/Yahoo. Then checks your email address against the one you provided to MicroFLAP's administrator. If it's ok, it will display your name in the top right corner of the page and you'll be able to access the private sections in your championships.
If you log-in with an unregistered email address, you will only see your name in the top right corner, but you won't be granted any rights.
Please note that MicroFLAP will never be able to gain access to your password nor to change any content in your social network.
Why can't I see my championship when I log in using Facebook?¶
Certain users who log in using their Facebook email see their name in the top right corner of MicroFLAP's page but they can't see their championship or they can only see its public sections. The problem is that Facebook accepts the identification but doesn't provide the user's email address, so it can't be checked against the one you provided to MicroFLAP's administrator.
This happens in a small percentage of Facebook users. The problem is described by other developers and explained by Facebook.
Basically, Facebook will never tell client applications (like MicroFLAP) what the reason is for privacy reasons. They simply say it may be caused by one of the following situations:- No Email address on account
- No confirmed email address on account
- No verified email address on account
- User entered a security checkpoint which required them to reconfirm their email address and they have not yet done so
- User's email address is unreachable
You may try to discover what the reason is in your case, or you may just avoid Facebook for logging into MicroFLAP and try one of the alternative methods (Google or Yahoo).
Features¶
What track formats does MicroFLAP accept?¶
MicroFLAP will analyse tracks in IGC-CIMA format downloaded from CIMA-approved loggers (see http://www.fai.org/downloads/cima/SC10_AX6). You will help yourself a lot if you follow the CIMA naming convention for track files (see point 4.9.4 in the mentioned document), vg.: 001T01V1R1_Pilot_Name.igc
Thanks to GPSBabel, it will also analyse tracks in many other formats. This is good for tests but discouraged for official competitions.
Is it possible to add a point directly from the map?¶
Adding a point directly from the Google Map is very convenient and very easy to implement. But that's strictly forbidden, at least in FAI competitions. See Sporting Code Section 10 - Annex 3 - Point 1.13.6:
Where FR data is to be used for scoring, the organizer must have visited every location which could affect the scoring and got a GNSS fix of that position. E.g. turnpoints, hidden gates etc. It is not acceptable to extract positions from a map in any circumstances.
The organiser must always input coordinates taken from a GPS during a visit to the point, so I decided not to implement the possibility of selecting a point from the map as it would encourage a bad practice that has caused problems in old and recent competitions.
Is it possible to score tasks using MicroFLAP?¶
MicroFLAP is an analysis system. It's NOT (yet) a scoring system. You must transfer the results from the analysis into your scoring system, which has to be specifically adapted to the design of each task.
There is a big difference between flight analysis and task scoring. The second is possible only when the task catalogue is fixed, but this doesn't happen because every competition director is a genius who likes to modify tasks according to his own ideas.
A scoring module will be available in the future, but there is a strong condition: a director will only be able to use the scoring system if he just picks tasks exactly as they are defined in the task catalogue.
Is it possible to download crossing times?¶
Yes. Go to the tracks page and select the
icon for the desired competitor. Depending on your browser configuration it will be downloaded or open using a spreadsheet program (LibreOffice, Excel...). Make sure you import the data using the point (.) as the decimal sign and the comma (,) as the field separator.
You will get a table like:
| utcTime | latitude | longitude | height | controlType | controlName | event | distance | property | value |
| 9:55:32 | 44.92611667 | 25.96371667 | 194 | Landing | Airfield | Take off | |||
| 10:00:36 | 44.99055 | 26.04051667 | 544 | TurnPoint | 2a | Enter cylinder | 250 | ||
| 10:00:44 | 44.99238333 | 26.04281667 | 548 | TurnPoint | 2a | Turn point crossed | 18 | ||
| 10:00:52 | 44.99425 | 26.04508333 | 554 | TurnPoint | 2a | Exit cylinder | 250 | ||
| 10:01:04 | 44.99736667 | 26.04803333 | 570 | TurnPoint | p4 | Maximum distance | 17627 | ||
| 10:01:04 | 44.99736667 | 26.04803333 | 570 | TurnPoint | p5 | Maximum distance | 19948 | ||
| 10:04:04 | 45.01723333 | 25.98781667 | 687 | TurnPoint | p1 | Nearest (missed) | 620 | ||
| 10:06:48 | 45.01233333 | 25.93633333 | 602 | TurnPoint | 2b | Enter cylinder | 250 | ||
| 10:07:00 | 45.01188333 | 25.93316667 | 600 | TurnPoint | 2b | Turn point crossed | 8 | ||
| 10:07:08 | 45.01155 | 25.93101667 | 597 | TurnPoint | 2b | Exit cylinder | 250 |
Problems¶
I've got an error message, what shall I do?¶
You may experience ugly messages like the example below. This may be my fault or your fault.
You can:- Click on your browser's back button. This will take you to the previous page. Then you can try something different.
- Or you can look at the first line after "root cause". The example below says "I" record found while reading IGC File. Extensions to B record are not supported. Sorry! which gives you a hint on what's happening.
- Or you can copy the whole message, as you see below, and send it to me.
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
net.sourceforge.stripes.exception.StripesServletException: Unhandled exception in exception handler.
net.sourceforge.stripes.exception.DefaultExceptionHandler.handle(DefaultExceptionHandler.java:179)
net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:263)
root cause
java.lang.RuntimeException: "I" record found while reading IGC File. Extensions to B record are not supported. Sorry!
track.IgcFileReader.processRecordI(IgcFileReader.java:338)
track.IgcFileReader.read(IgcFileReader.java:105)
competition.Flight.getTrack(Flight.java:132)
championship.Json.node(Json.java:566)
championship.Json.add(Json.java:257)
track.TrackAnalyzer.createFlightFile(TrackAnalyzer.java:85)
action.TrackUploadActionBean.uploadIgcFile(TrackUploadActionBean.java:67)
sun.reflect.GeneratedMethodAccessor317.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
net.sourceforge.stripes.controller.DispatcherHelper$6.intercept(DispatcherHelper.java:456)
net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:158)
net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:113)
net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155)
net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:74)
net.sourceforge.stripes.controller.DispatcherHelper.invokeEventHandler(DispatcherHelper.java:454)
net.sourceforge.stripes.controller.DispatcherServlet.invokeEventHandler(DispatcherServlet.java:278)
net.sourceforge.stripes.controller.DispatcherServlet.service(DispatcherServlet.java:160)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:260)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.
Apache Tomcat/7.0.26