Closed rikkertkoppes closed 8 years ago
I think first the available communication methods per device should be identified.
For handheld devices: -3g connection -Wifi -Bluetooth -Cable connection -Manual input
For the PC, which has as main addition to functionality that results can be printed: -Internet connection -Wifi -Cable -CD -Usb -Manual input
The mission data is a small data set that is only changed once per year. The data for the first year can be supplied along with the software for the PC and handheld device. Data for the next years can be supplied as an file on a server that can be downloaded before the start of the finals for the PC and handheld device. For PC's without internet connection, the mission data can be supplied on a USB stick. For handheld devices without internet connection, the mission data file can be transferred from the PC using a cable.
For now, I suppose the Team data is only a list of team names. This list is dependent on the final that is being played. The full list should be finally available at the PC, such that a final ranking can be determined. Therefore, creating this list on the PC is most logical. Alternatively, a list of team names participating in a final can be available on a server, but this complicates last minute changes in team names, and some PC's will not have an internet connection.
Transferring the list of team names from the PC to the handheld devices can be done by uploading the list to a server and downloading them on the handheld devices using 3g. This, however, requires the PC to have an internet connection and the handheld device to have a 3g connection. Using a wifi connection between PC and handheld device is also an option. The final option is not to transfer the list of team names to the handheld devices at all, in which case the scores recorded using the handheld devices can be given as input manually to the PC.
Thanks for the input. However, the question was more on the technical rather than the functional level. You answer sure helps to flesh out the functional requirements for data communication, but I have some concerns about the technical implementation
The requirements that came out of the team evening were: (correct me when necessary)
nice-to-haves:
In an 'image' of communication scenarios:
Central Client mission data -> teams -> rounds -> <- score
Plus the one-device setup. Everything is done on one device, in which case there is no communication except for maybe a final result upload after tournament.
Also I think the clients should also be able to view the scores.
When writing the notes I actually though of the following scenarios: Two applications:
Two scenarios:
Does this help?
I tried to write up all scenarios I could come up with, came to 5: https://github.com/FirstLegoLeague/fllscoring/wiki/Deployment-scenarios-and-communication
@kmeesters @sleemans Could you review and share thoughts? Feel free to update the wiki page.
Great, thank you I've updated the page to include some remarks and hopefully some answers. I've also added some additional thoughts. Probably not in the best (markdown) way but I hope it is clear.
I think if we keep expanding this page we can even use it for our dissemination.
To Nr 4:
If the central computer can perform some functions if the connection is lost (ie. printing forms etc)/entering scores manually then I think it should be no problem. Perhaps we should consider how you can 'scale down' to another scenario if the following are lost: (1) internet connectivity, (2) local connectivity, (3) the central application, (4) referee interface
There is no fallback possible by the central computer, since devices are on different networks.
This scenario describes a case where the building does not provide wifi, devices are connected via gsm and a central computer optionally via wired network. Hence, internet connectivity is mandatory for communication.
Hence to your failure scenario: 1): a merged ranking cannot be made until all devices have connected. 2) There is none to begin with 3) central can fail, in which case you'll lose printing capabilities. 4) if (all) devices fail, record on paper and enter scores in the central computer
So we need to make sure the individual devices can at least produce a table of the scores they have record (for which team and round) so that if needed we can manually 'export' the data of the devices and use the central application to merge the scores and create the ranking. This is indeed what I meant the 'fallback to the central application'. Or perhaps even better fallback to one the 'lower' scenarios
I have created #17 as a way to be able to transfer important data between devices in case of complete loss off any connectivity. Very low level p2p, but probably viable.
Discussed this also with @robvw. We believe in noting the down the scores on paper in any case as a fallback. This can happen through, we can print from the team overview. Eventually we want to print a schedule per referee/table from the overall tournament schedule so refs always fill the right cells (others are blacked out)
In The Hague, the use small cards that were handed by the referees to the headreferee after each match. We can allow those to printed too from the scorekeepers screen.
This can however wait till after Eindhoven
I think it is a good idea to have some kind of print-score-list-to-be-filled-in, but please don't overengineer this: a blacked-out form means that a changing schedule gets messy.
Lets share some thoughts. Devices should be able to load team and mission data
How do we arrange that? Host a service? Let a desktop instance be a server?
Should the communication go via wifi or gsm? Or cable (how? )