Team 111's scouting system: WildRank

Here is what I did.

  1. used desktop application to create a flash drive with the appropriate folders in it, configured for Central Illinois regional (2015).
  2. put a game.wild file in the USB root (copy of the example game.wild)
  3. installed a fresh copy of the android app on my tablet, with the correct root directory for the flash drive
  4. unplugged tablet from computer plugged in USB OTG and hit “Load tablet data from USB drive”.
  5. Entered super user mode, went to main menu, match scouting. Blank screen (similar to the other empty screens that I posted previously).

Contents of the flash drive (all folders/files are in the root directory):

Thanks for all of your help.

Ah, your choice of event explains everything! The app is designed to function only for events with a non-zero number of matches. Attempting to use it with an event without any matches would cause all sorts of unexplained behavior like you’re seeing. The match schedule for the 2015 Central Illinois regional hasn’t been published, so that explains the behavior you saw. If you want to try any part of the app out, you can use an event from a past year with matches to do so; any regular season event should work just fine. I forget if the year that the desktop app uses to search for matches is something you enter at runtime or if it’s hard coded. If it’s the latter, you may have to dig around in the source to find exactly where it is so you can change it to a previous year.

Just for reference:
The year is not hard coded, it is a runtime variable.

Was it just an oversight to not have a messagebox pop up and warn about zero match events? I did consider this being a source of my problems, but that was as I was ironing out other issues, so I probably dismissed it.

I will try it with a 2014 season regional and see what I get. Thanks for the help.

[EDIT] Is there any other cause of these issues, I am still getting similar screens, I am using 2014 regionals (Wisconsin and Northern lights). Do you know of a regional that for sure works (has a posted match schedule?)

[EDIT EDIT] I used the 2014 Midwest regional, and met with some success. Ill post again when I have some better questions.

[EDIT EDIT EDIT] Met with further success, I believe the app is functioning as intended. I have 2 questions. Will the app work with the practice matches on Thursday (because there is a published schedule)? And is the next step to start rearranging and renaming things with .xml files?

When you did this did you just load the data from the previous regional and sync it to the flashdrive?

I just used team 111’s 2014 regional ( I figured they tested with it) and synced that to the flash drive. I then set up the freshly installed app with that flash drive.

I wouldn’t really call it an oversight. When we were designing it it we thought it would be common sense that you’d only scout at an event with posted matches. We can look into adding a warning, although that isn’t really a priority.

As far as we know the app should work with any past event. The fact that it isn’t is concerning. I have school off tomorrow, so I can try it out with some different events and see how things behave.

With practice matches, I’m not sure, but I’m going to guess no. I don’t think TBA scrapes those schedules, or if FIRST even publishes them in the normal place on the site.

Glad to see you got it working! Yes, the next step is to configure it how you want for the game. For WildRank-specific configuration instruction, check out the documentation. For more general info on how to write Android XML layout files, I’d recommend that you read through the relevant info and tutorials on the Android developer website. Good luck!

As a side note, I was talking with the other primary developer of the app today, and we’re considering rewriting the app from scratch for this season based on everything we learned last year. We’re going to focus on making the code simpler and more robust. If you have anything you’d like to see changed after your brief experience with the app, shoot me a PM.

I now know why I was getting weird readings off of the first two 2014 regionals I tried. In order to get the app running correctly I needed to do a fresh install, setup, etc. Then the app needs to be force stopped. Once this happens it behaves like it should. I have no clue why it needs a force stop, but it is a relatively easy fix and works every time.
I also managed to set up the layout for Recycle Rush, the .xml files are not that difficult to manipulate. I just need to make sure my keys line up so I can do calculations later. I will be sure to give feedback.

[EDIT] question: Where are the arrays stored for drivetrain, shooter, etc?

So what all did you have to do to get the app working? I am still having the same problem even while using last years regional and reinstalling the app on my device.

FMS does not post practice match schedules, so there’s no way for TBA or anything else to scrape them.

Ok, so here is the short and sweet to get the app working. Just ask about any specific step and I will explain in more detail.

  1. get your tablet running in developer mode.
  2. connect your tablet to your computer with ADB driver.
  3. open up android studio and navigate to the constants page
  4. input your filepath to the USB root on your tablet
  5. connect your tablet, run the project, select your device off of the connected devices list.
  6. prepare the flash drive using the desktop app (just run the project in eclipse)
  7. put the default game.wild into the USB root directory
  8. connect the USB OTG adapter to your tablet and use the app
  9. 9453 is the password (wild spelled out) enter super user mode in settings
  10. click through the menu, if it doesn’t work force stop the app.
  11. open up the app and select match scouting first. now match scouting should work.

Hope I helped

You should be able to create a schedule with the wildrank desktop app right?

When you place the game.wild file in the USB root directory, do you just place it into the location you specified in the program as the usb root?

The USB root needs to be the root location of the flash drive, not a folder in the flash drive. The game.wild goes into the root location.

I now have reached a point where I need to export to a CSV file. I synchronize the tablet with the flash drive, then open the desktop app and create CSV. I am using my custom .xml layout and the keys associated with them. What do I need to do to get the CSV generation working? I have included a screenshot of what the CSV looks like.

Image: http://imgur.com/kUCbBhf

what do I need to do to get my data out of the .json files, into a .csv with all of my custom fields?
(Also, where are the arrays located that contain drive trains, shooter types, etc. I need to make a custom array.)
Thanks for any help.

Just wondering, has this thread died? I am so close to getting this app working to its full potential. It would be a shame if the documentation on getting Wildrank working for the average user ended here.

Sorry, I stopped getting email notifications for some reason so I never saw your question. I’ll post a response tomorrow when I’m more awake :slight_smile:

Okay I’m a little rusty but this is a pretty simple part, so in order to create a csv file you need a game file. This file tells wildrank what all the variables are that need to be mapped. This file is called game.wild and is located in the root of the local location (see lines 79-89 in Setup.java for more on saving). This file is read with the GameReader.java. It’s pretty simple how it works you start with a tag that ends with a colon then some data.

You always need to start with game-name: [current game name]
This tells it what the current game is.

Then you need a main-key: [whatever]
I really don’t remember what this is for and it appears that it doesn’t actually do anything, so just put whatever you want.

Then you need different sections each sections starts with section-key: [auto/teleop/post]
This sets the section of the chart whether you are in autonomous, teleop, or post-match. But you can make the sections names whatever you want.

After this is where you put all the data item: [datapoint-name],[datapoint-key];[num/bool/text]
The name is whatever you want it labeled in the chart, the key is what it is defined as in json, and the num/bool/text is whether it is a integer, boolean, or string.

Hope this helped, feel free to ask if you have any questions!
Also look at ConfigCreator.java, this is designed to automatically generate these config files.

I have a weird problem, I am not able to get the app to recognize the USB drive to update/sync. The only two reasons that the “Connect a Flash Drive” message pops up are due to the USB root being wrong in the code, or not physically having a USB Drive installed. I am 99% sure the root is right (because it was working a few days ago) and the flash drive is defiantly connected. What could be the problem?

Thanks for any help in advance.
(hopefully this “heals” itself by morning, I give up for tonight.)

Ya we have had that problem a lot in the past. It seems some days OTG wants to work and other days it doesn’t. A couple things you could try are rebooting, manually mounting the flash drive (Storage/USB Storage/Mount SD card, you could also try doing it via terminal), or even reformatting the flash drive.

You can also try navigation to the flash drive in your file explorer of choice. If it’s mounted and you can see its contents, that means you probably have the root configured wrong in the code. Otherwise, I’d try the things mail929 suggested.