PikaTimer / pikatimer

PikaTimer: An OpenSource race timing application
GNU General Public License v3.0
37 stars 16 forks source link

Awards Import or results via custom attribute category #34

Closed bighillevents closed 1 year ago

bighillevents commented 5 years ago

Hi John, Thanks for your response about the Date of Birth for Australia format. My event is in 3 weeks now. Any word on that release date?

In my events I have custom Categories that some are based on age and some are open, but all would be in the same event. For example in this running event I have the following categories for people to enter: 10km Open Men 10km Open Female 10km Masters Men - above 40 10km Masters Women - above 40 k910k open - Which is for people running with their dog

Ideally at the participants import I could have a pre-set up awards column and it would import them into those awards and then the results would output via that.

I tried adding custom attribute called Category and have exported that in test results, however it does not order via that custom attribute.

Is there a way that awards could be toggled to be either set via age dates or via import / selection at participant stage to allow for very flexible event category options.

Suggestion with timing section: I see you have the manual timing back up which I understand. I find with volunteers if I give them a pad with a grid layout and say just write down every number as the cross the line they are comfortable. But if I give them a computer and say type these in they freak out at the pressure of typing it wrong.

With another system that I use for my mountain bike events it has a manual entry section where if a chip does not get read you can just quickly type that bib number and hit enter and it enters a record from computer clock time and then you edit that time in the record back to close to the time they crossed the line So then we are just watching our screen for chip reads and seeing that they correspond with what is being written down. if we spot something missing then we just type it in on the spot.

Importing participants to race / wave: Another thing I have noticed whilst playing around is there is no option in the import to match the Race name between import data and your system.

For the above mentioned list of categories I have the same in 5km distance and 2km distance each which are set up as different events

So I either split into separate files for each race of data and import that way, Or I do the bib number mapping. This however creates a complication if you are also taking on the day entries. In this case the rego team just assign the next available number to the next available entry no matter what race / wave / category they are in. We print our on the day entry numbers in a different colour and number sequence. but in testing the system will automatically assign a participant based on bib number if I have defined that for the import.

Suggestion: Allow race/wave import as one of the match-able fields

As I cant write code Im happy to contribute via paying for time for support of your program as I see some great benefits too it.

With my mountain bike races we do have alot of lapped events which your system will not yet handle but look forward to any future adaptions as somebody else has mentioned that would support that

bighillevents commented 5 years ago

Hi John,
After my weekend testing I thought I would elaborate on my setup and what I found with results output.

I set up the event and used the Custom Awards option with Attribute set as 'Category' and then values as each of my categories. Like this below category set up

I then when importing the participants I imported a Category column and it all looks pretty good. I do note that when entering somebody manually as there is no link to awards you cant pick the awards you have set up so have to type them manually which could lead to typing errors on the day. I will probably do all on the day entries to the spreadsheet and import at latest possible time as your import process is very simple and quick. Image of my participants with Category participants

I cloned my file and named one as Start and one as finish and had them on two separate computers with internet link only. I put all my files into a Dropbox folder which updated to both computers. It worked really well with the start file saving its chip reads export and then the finish file using auto import of that file from the dropbox folder. Great result.

Only thing I note here is that you have to have all your participants and their bib numbers in the files, so when working remote with a separate start and finish this adds a logistical challenge. I will again using this drop box just do the import to the start file and then my timing employee at the start line will open the file once dropbox uploads it and thus its a matching set of data. (I did test with no participants in the start file to see if once they got uploaded into the finish file they would search back and find the participants details or when the crossed the line and got a finish read that would happen but it did not appear to be the case. Maybe a consideration for future)

I really like all your options for exporting results!
Don't really see the point for Datatables as the .html responsive file just opened in Chrome is easily searchable for name and even by Category.

The only thing I would say is that since I clicked in the results set up to show awards and custom attributes that these two could be filters beside Age and Sex.

Image of my results results

I have also been thinking about your lap question that another comment made which would also be of great value to me.

I'm not 100% but does the Ultra timing unit allow a setting so that you can set a time for duplicate reads to be ignored. IE, if you set that to 60 seconds, it only send the strongest read to ouput. I notice that in the reads that go into Pika I see many reads for each chip and assume Pika chooses either the first or last of these depending on if its a start or finish read? So if either in your Pika settings or in the Box settings you can have a settable time for duplicate reads. then you only get one entry to the timing for each chip pass. So if laps were say 10mins each and multiple reads were set to 60 seconds you would have a pretty clean set of inputs to count as each lap. Anyway just a thought.

Sadly I don't know squat about coding but if I can make a financial contribution to the project to help you keep developing I would be happy to do so.

I hope my feedback can help. Really like your system and look forward to my event with this on the 3rd march. We are going to print QR codes on our race plates that link to the live results files. I'm sure our participants will find that super cool.

Thanks Rohin

segfaultcoredump commented 5 years ago

There is a lot going on here, so hopefully I won't miss anything:

I do note that when entering somebody manually as there is no link to awards you cant pick the awards you have set up so have to type them manually which could lead to typing errors on the day.

For custom attributes, don't use a "String" but a "List" and then enter in the permitted values. Then when manually adding somebody, you can select it from the drop down list

Don't really see the point for Datatables as the .html responsive file just opened in Chrome is easily searchable for name and even by Category.

The two options for HTML output are there for the edge case when the results need to be viewed without an internet connection. Both use datatables for ease of viewing, but "Responsive" one will blow up and not work at all if the browser is not able to pull the datatables javascript file from the internet. The "Basic" one will still work.

Only thing I note here is that you have to have all your participants and their bib numbers in the files, so when working remote with a separate start and finish this adds a logistical challenge.

I'm a bit confused about what it is that you are doing here. Dropbox is a common way to deposit and exchange the raw data files from remote sites when you don't want to use RFIDTiming's Outreach system. Generally the input file would be just the chip number and then the time. If the remote site is running RFIDServer, the output from that can be dropbox'ed and then pulled in by the timer at the remote location. Personally I use Outreach since it is free and gives me a bit more of a real-time view of what is going on at the remote site; plus I don't have to do much in terms of training for the person running the remote site. I pre-configure the Ultra/Joey to use outreach and then once on site, the person just needs to connect the timing box to the mobile router and hit the "read" button.

I'm not 100% but does the Ultra timing unit allow a setting so that you can set a time for duplicate reads to be ignored. IE, if you set that to 60 seconds, it only send the strongest read to output.

Yes, it is called the "gating factor" and is settable up to about 10 seconds or so (beyond that is not a good idea). The Ultra/Joey will only report the strongest read it sees during that time. If PikaTimer is directly communicating with the Ultra/Joey you can set this in the "Advanced Settings" for the timing input. The faster the runners are moving, the lower you can set it. I usually have it at 3 for a finish line and 10 or even 20 for a trail race on a steep uphill. Note that you also need the box to be in "Finish" mode and not "Start" mode (start mode always has a gating of 1 second).

That said, I'm hesitant to use it as a lap race counter. Most major races place two chips on each bib for redundancy, so I often have tow reads per participant at each timing location. They also tend to locate the split readers at aid stations where folks may stop and hang out for a bit to grab a 2nd cup of water. The final issue is that single chip reads are hit or miss. A 99% read rate sounds good until you have 100 runners and discover that you will miss one of them with every lap. Packs of runners are even worse since the human body acts as a great shield for rfid chip reads. You need to assume that you will be missing runners as they go through a gate and have something setup to deal with that occurrence. It is not a matter of if but how many times it will happen during a race.

Careful use of the "Minimum time from previous split" setting in PikaTimer may help mitigate this, but then if you have a race where faster runners are constantly lapping the slower runners then the system will quickly loose track of what is going on.

I hope all of this made sense. If not, just ask away. :-)

--john

bighillevents commented 5 years ago

Hi John, Thanks for Version 1.5.2 Set up and ran some tests tonight using 2 Ultra units. Event is this weekend do doing some close to real testing. Heading to site tomorrow night for final test.

The Date of Birth field however did not import any different. So not sure what went wrong here 10KM ENTRIES.xlsx Attached is a test file for you with Aussie Dates of Birth if you want to try.

Also in my discussion I was talking about what happens if on your start File you dont have the participants entered.

In testing, yes the start file read the chips and saved it to the export file as un registered.
Look at chip 750 start not registered

So then it comes through to the finish file on laptop and assigns it to bib 750 data and fills in, great start and finish reads with auto import file for start

But then I get no result?? When I search results for 750 I get nothing, yet if I go to my timing file and search for 750 I can see all the reads results for 750

Love to know your thoughts on what I may have wrong here. Thanks Rohin

segfaultcoredump commented 5 years ago

Excel munges the display of the dates (Excel is universally known as the destroyer of data, but I digress). When I open it, it shows all dates and times in the en_US format,, so I see everything as M/D/YYYY. Pika cannot import an xls directly, only a CSV. So sending a sample csv this way may help. In particular I'm curious to see if there is a leading zero on the dates and months. It appears that unlike the en_US format, official en_AU date format is DD/MM/YYYY and thus requires a leading zero (e.g., 21/04/2019 and not 21/4/2019).

The fact that bib/chip 750 shows us as "unregistered bib" makes sense at the start line. If you are using Pika as a replacement for the native RFIDServer app, it would display as such until the participant data is merged in.

For the issue about Chris Wade not showing up in the results, is Chris assigned to the 10KM race? It is hard to see what is going on without the final Pika file.

segfaultcoredump commented 1 year ago

Given no responses in a while, I'm going to close this for now.