Navigation Games is using Easygec with great success in teaching orienteering to schoolchildren.
(Thank you to Cristina and our Italian intern for pointing us in that direction.)
It figures out which course the student ran by matching against a set of courses. If they got all the controls in the right order, they get a happy face, the elapsed time, and a "Yay!" sound plays. If they missed some controls, they get a sad face and an "Oh no!"
This has been amazing for letting the kids self-assess and move on to another course. The teacher's time is freed up to focus on kids who are having problems. We use it successfully with schoolchildren as young as 4 years old, doing courses with pictorial clue sheets. We use it to make sure that every child understands how to go to checkpoints in order.
I'd like to start writing our own code for processing SI times, in order to create different games. It would be really great if we could write for any OS. What are our options for SI upload to a computer at this time, and writing code on top of that - what is your recommendation for getting started quickly?
Seems like it would be more efficient to work with the developer of an existing low-cost solution, e.g. SI Droid or even Easygec, to add support for more variations rather than starting from scratch.
@barb, I agree with Cristina that contacting authors of existing things is probably a better route than starting new - and in fact I don't see any detail in your post above of what new games you have in mind. As an IT guy I'd like to recommend there be a detailed specification of what is the goal before any code is written, otherwise it's wasted time.
Nonetheless, let me answer your question from a technical point of view: reading SI-cards is not overly complicated. There are at least three routes I can think of:
* SPORTident provides a "SI Reader" app which can download data and publish it, for example to text files, sockets or serial streams (this would be Windows only).
* Also, they have a .NET-component that can be imported into software (primarily Windows, but I have reports it works in Mono-based environments, for example Linux and even Android).
* Finally you could go the not actually sooo hard way and implement the serial communication yourself - this consists of binary requests and responses and there is documentation of the data formats. This route has been walked by numerous developers, there are some free libraries out on Github, python code among others. This is by far the most platform-open option, however you are still limited to systems that allow access to USB-connected devices, this rules iOS (iPhone, iPad) out.