Giter VIP home page Giter VIP logo

scoutingpass's People

Contributors

aadad578 avatar fuddster avatar jacob6838 avatar jckwik avatar mayabose avatar sawyer-thompson avatar tails618 avatar technicalace avatar zaaj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scoutingpass's Issues

Value error

My team is using ScoutingPASS, and linked our google sheet to record data. However, whenever I set "enable_google_sheets" to true (either in the config file or in scoutingPASS.js), many value errors pop up in the chrome console, and you are not able to go to the next screen in ScoutingPASS. Blue Alliance also stops populating event/match/team data, and you are not able to move to the next ScoutingPASS screen.

I've attached a screenshot of the error from google chrome below, as well as our GS_config file and scoutingPASS.js.

Screenshot 2024-02-23 at 7 48 24 AM

scoutingPASS.txt

crescendo_GS_config.txt

Macro slowness

QR parsing macro slows down after lots of data has been input.

Create videos

Create videos:

  • Demonstrate functionality
  • Show set up
  • Change TBA key
  • Change event code
  • Explain configuration
  • Show off new features (i.e. 2023 new features!)

When the image is "flipped" the box calculation isn't adjusted

For example, for auto start, a robot starting in the lower left corner of the Blue Alliance Community will result in a click in box 62 in a non-flipped image. I you flip the image 180 degrees, clicking the same place in the Blue Alliance Community will result in a click in box 11.

This will result in a starting position in the Loading Zone when box 11 data is applied to a non-flipped image.

This worked in previous years because the field was symmetrical when rotated 180 degrees. The field for 2023 will not allow for this.

Attempting to Set Up Google Sheet Support causes Domain (CORS) Error

While trying to set up the google sheet support and following the instructions I attempted to make the new deployment and ran into this issue.
image
I don't know if this has been seen before by anyone else. This may be a bug and explain why it worked for the creator of this project as they have an account from the same domain or such. Just some ideas. Not one hundred percent sure, but thought I would point it out in this issue to see if anyone has run into this issue.

Big, zoomed in, QR code on Lenovo M8 tablet

First of all, thanks for providing this resource to FRC teams. We used an early version of your code in our competition last weekend. Not all the time, but sometimes, the QR code would be "big" and trying to zoom out didn't work. We were using firefox as the browser on a Lenovo M8 tablet. The bigger QR code is a little harder to scan but we were able to do it. Did anyone have any experience with this? I attached a picture of what the larger QR code looks like. I tested rotating the tablet between portrait and landscape mode and that didn't make it re-occur.
19836

Dan Domen
FRC 1807

Add option to code QR code with output data in tab separated format

This allows entry into an Excel (or any?) spreadsheet without need for a VBA script to parse the input.

It will not automatically set up the table or columns, but will make input easier once they are set up.

Caution, the cursor needs to be in the first field of the spreadsheet for it to work correctly.

Will help to have a "Copy Column Names" button, to start the table with column names.

Thanks to Team 2713 - iRaiders for this awesome alternative to VBA parsing.

Updating config does nothing

Hi, after updating the config json for 2022, the changes that I made aren't propagating. I've checked to make sure that I've updated the right file, of course.

I'm updating /2022/RR_config.js

Is there anything that I'm doing wrong? I've checked to make sure that the json is valid, and no errors are being thrown. The app just looks the same as before.

Thanks for the help,
Team 6560, Charging Champions

This is the updated file:

var config_data = `
{
	"title": "Scouting PASS 2022",
	"page_title": "Rapid React",
	"elements": {
		"prematch": {
			"Scouter Initials": {
				"code": "s",
				"type": "scouter",
				"size": 5,
				"maxSize": 5,
				"required": "true"
			},
			"Event": {
				"code": "e",
				"type": "event",
				"defaultValue": "2022flwp",
				"required": "true",
				"disabled": "true"
			},
			"Match Level": {
				"code": "l",
				"type": "level",
				"choices": {
					"qm": "Quals<br>",
					"ef": "Eighth-Final<br>",
					"qf": "Quarter-Final<br>",
					"sf": "Semi-Final<br>",
					"f": "Final"
				},
				"defaultValue": "qm",
				"required": "true"
			},
			"Match #": {
				"code": "m",
				"type": "match",
				"min": 1,
				"max": 100,
				"required": "true"
			},
			"Robot": {
				"code": "r",
				"type": "robot",
				"choices": {
					"r1": "Red-1",
					"b1": "Blue-1<br>",
					"r2": "Red-2",
					"b2": "Blue-2<br>",
					"r3": "Red-3",
					"b3": "Blue-3"
				},
				"required": "true"
			},
			"Team #": {
				"code": "t",
				"type": "team",
				"min": 1,
				"max": 99999
			},
			"Auto Start Position": {
				"code": "as",
				"title": "Auto Start Position",
				"type": "field_image",
				"required": "false",
				"filename": "2022/field_image.png"
			}
		},
		"auton": {
			"Taxi": {
				"code": "at",
				"title": "Taxied?",
				"type": "bool"
			},
			"Upper Cargo Scored": {
				"code": "au",
				"title": "Uppoer Cargo Scored",
				"type": "counter"
			},
			"Lower Cargo Scored": {
				"code": "al",
				"title": "Lower Cargo Scored",
				"type": "counter"
			},
			"Auto Aquired Cargo": {
				"code": "ac",
				"title": "Picked up more cargo?",
				"type": "bool"
			}
		},
		"teleop": {
			"Upper Cargo Scored": {
				"code": "tu",
				"title": "Uppoer Cargo Scored",
				"type": "counter"
			},
			"Lower Cargo Scored": {
				"code": "tl",
				"title": "Lower Cargo Scored",
				"type": "counter"
			},
			"Was Defended": {
				"code": "wd",
				"title": "Was Defended",
				"type": "bool"
			},
			"Wallbot?": {
				"code": "wbt",
				"title": "Wallbot?",
				"type": "bool"
			},
			"Cargo Intake From": {
				"code": "cif",
				"title": "Cargo Intake From",
				"type": "radio",
				"choices": {
					"t": "Terminal<br>",
					"g": "Ground<br>",
					"b": "Both<br>",
					"x": "Not Attempted"
				},
				"defaultValue": "x"
			},
			"Shooting Spot": {
				"code": "ss",
				"title": "Shooting Spot",
				"type": "field_image",
				"filename": "2022/field_image.png"
			}
		},
		"endgame": {
			"Climb": {
				"code": "c",
				"title": "Climb",
				"type": "radio",
				"choices": {
					"1": "Low<br>",
					"2": "Mid<br>",
					"3": "High<br>",
					"4": "Traversal<br>",
					"a": "Attempted but failed<br>",
					"x": "Not attempted"
				},
				"defaultValue": "x"
			},
			"If climb failed,<br>Last successful rung,<br>if any": {
				"code": "lsr",
				"title": "If climb failed,<br>last attempted rung,<br>if any",
				"type": "radio",
				"choices": {
					"1": "Low<br>",
					"2": "Mid<br>",
					"3": "High<br>",
					"4": "Traversal<br>",
					"n": "No successful rung<br>",
					"x": "n/a"
				},
				"defaultValue": "x"
			},
			"Started Climb before Endgame": {
				"code": "be",
				"title": "Started climb before EndGame",
				"type": "bool"
			},
			"Num of Robots Climbed": {
				"code": "cn",
				"title": "# of alliance bots climbed",
				"type": "counter"
			}
		},
		"postmatch": {
			"Alliance Won?": {
				"code": "wl",
				"title": "Alliance Won?",
				"type": "boolean"
			},
			"Climb Ranking Point": {
				"code": "crp",
				"title": "Climb Ranking Point",
				"type": "boolean"
			},
			"Shooter Ranking Point": {
				"code": "srp",
				"title": "Shooter Ranking Point",
				"type": "boolean"
			},
			"Driver Skill": {
				"code": "ds",
				"title": "Driver Skill",
				"type": "radio",
				"choices": {
					"n": "Not Effective<br>",
					"a": "Average<br>",
					"v": "Very Effective<br>",
					"x": "Not Observed"
				},
				"defaultValue": "x"
			},
			"Defense Rating": {
				"code": "dr",
				"title": "Defense Rating",
				"type": "radio",
				"choices": {
					"n": "Not Effective<br>",
					"a": "Average<br>",
					"v": "Very Effective<br>",
					"x": "Not Observed"
				},
				"defaultValue": "x"
			},
			"Shot enemy balls away?": {
				"code": "ba",
				"title": "Shot enemy balls away?",
				"type": "bool"
			},
			"Died/Tipped": {
				"code": "d",
				"title": "Died/Tipped",
				"type": "bool"
			},
			"Card Foul": {
				"code": "cf",
				"title": "Yellow/Red Card",
				"type": "bool"
			},
			"Make good alliance partner?": {
				"code": "all",
				"title": "Make good alliance partner?",
				"type": "bool"
			},
			"Comments": {
				"code": "co",
				"title": "Comments",
				"type": "text",
				"size": 15,
				"maxSize": 50
			},
			"Confidence Rating": {
				"code": "cnf",
				"title": "Confidence Rating",
				"type": "radio",
				"choices": {
					"v": "Very Confident<br>",
					"a": "Average<br>",
					"n": "Not Confident"
				},
				"defaultValue": "a"
			}
		}
	}
}`;

Create a range/slider element

Use a slider to move through values. At least two labels need to be specified for left side and right side.
input type="range" will create a slider

Only 1st occurrence of ';' is removed from comment

In scoutingPASS.js, there is the following line of code that removes any user entered semicolons so it does not interfere with the parsing of the data after reading the QR code.

str=str+code+'='+e.value.replace(";", "-")

However, it only removes the 1st occurrence. Perhaps replace the above line of code with the following line:

str=str+code+'='+e.value.split(';').join('-')

Limit range of valid inputs for Field Image

Limit where the user can click on in the field image. For example, a robot can only start in the community for 2023. So we would be limited to boxes 26, 27, 38, 50, 62, 63, 34, 35, 47, 59, 70 and 71. (or something close...)

Radio buttons not showing up in QR code

When a radio button does not have a default value and is not manually checked, its code will not show up in the QR code.

The code goes through each element and adds the code only if checked. It should probably add the code anyway and leave it blank if nothing is checked.

It also breaks the "clear form" function.

Clean up config schema

Define version 2.0 for parsing

  • Rename elements to sections
  • Use array (w/o keys) instead of dictionary to hold list of elements within sections

Black text with input boxes with black backgrounds makes it impossible to read

On a PC the input boxes had white backgrounds regardless of page background color. On an android tablet the black background pages would also have black input boxes (maybe they are transparent?). Changing tablet color themes, desktop mode, etc still left it black on black. CSS fix worked for us. I fixed on our fork with this:

line 222-ish
input {
font-size: 16px;
font: roboto;
color: black;
background-color: white;
}

Configurable field images

pirate_raider on Chief Delphi suggested that we create a configurable field image where the number of boxes could be configurable. This would be useful in 2023 where the grid could be represented using a field image, but limiting the boxes to a 9(columns) by 3 (rows) grid. Then each "node" would be a box. A specialized image of the grid would have to be captured or created for this use.

Another way to use this would be to a 9 (column) by 7 (row) grid. Then you could have 2 boxes for the bottom "hybrid" row where either game piece could be scored.

Make it configurable so that any column/row combination can be used. Extra credit if it can limit to one click per box.

Clear button for timer

After playing with your demo, a clear/cancel button to timer could be helpful (e.g., in case the robot dropped its game piece and went to do something else).

Cycle outputs 0 instead of array

Using the default 2023 config and entering ["5.6","10.1","17.9","19.1","2.5","0"] into the cycle times (just clicked the button a bunch for fun) the following was the QR output:

s=JK;e=2023ilch;l=qm;m=1;r=r1;t=;as=[26];am=1;auh=1;aum=0;aul=0;aoh=1;aom=0;aol=0;ad=e;tct=0;tuh=2;tum=0;tul=0;toh=0;tom=1;tol=0;tfc=0;wd=0;lnk=1;cif=g;dt=0;fs=e;cn=1;ds=x;ls=0;dr=x;sd=1;sr=3;d=0;coo=0;all=0;co=;cnf=a

tct=0 should probably include some/all of the values from the cycle times - I'm unsure of the format that I was expecting but I was expecting something.

Grid Inputs

How do you convert the value from the grid inputs into something that you can use? For example Column 3 Top.

Add The Purple Standard (TPS) integration to ScoutingPASS

From kabir (Team 1071) on Chief Delphi:

Hey ScoutingPASS team! In an effort to increase interoperability between scouting apps, we recently announced The Purple Standard (TPS), a unified, community-driven standard for FRC scouting data (see https://chiefdelphi.com/t/the-purple-standard-a-unified-and-community-driven-standard-for-frc-scouting-data/449394 5 and https://thepurplestandard.com/), paving the way for collaborative scouting across apps (which benefits smaller teams and rookies). TPS is modular and completely customizable based on the data you want to collect in your scouting app. Would you be interested in integrating TPS into your app to benefit teams using ScoutingPASS and join the wider network of collaborative scouting data?

Is anyone interested in this implementation in ScoutingPASS? Or better yet volunteer to implement it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.