diff --git a/2024/crescendo_config.js b/2024/crescendo_config.js new file mode 100644 index 000000000..e604720b8 --- /dev/null +++ b/2024/crescendo_config.js @@ -0,0 +1,189 @@ +var config_data = ` +{ + "dataFormat": "tvs", + "title": "Scouting PASS 2024", + "page_title": "Crescendo", + "checkboxAs": "10", + "prematch": [ + { "name": "Scouter Initials", + "code": "s", + "type": "scouter", + "size": 5, + "maxSize": 5, + "required": "true" + }, + { "name": "Event", + "code": "e", + "type": "event", + "defaultValue": "2023tnkn", + "required": "true" + }, + { "name": "Match Level", + "code": "l", + "type": "level", + "choices": { + "qm": "Quals
", + "sf": "Semifinals
", + "f": "Finals" + }, + "defaultValue": "qm", + "required": "true" + }, + { "name": "Match #", + "code": "m", + "type": "match", + "min": 1, + "max": 150, + "required": "true" + }, + { "name": "Robot", + "code": "r", + "type": "robot", + "choices": { + "r1": "Red-1", + "b1": "Blue-1
", + "r2": "Red-2", + "b2": "Blue-2
", + "r3": "Red-3", + "b3": "Blue-3" + }, + "required":"true" + }, + { "name": "Team #", + "code": "t", + "type": "team", + "min": 1, + "max": 99999 + }, + { "name": "Auto Start Position", + "code": "as", + "type": "clickable_image", + "filename": "2024/field_image.png", + "clickRestriction": "one", + "allowableResponses": "1 12 13 24 25 36 37 48 49 60 61 72", + "shape": "circle 5 black red true" + } + ], + "auton": [ + { "name": "Leave Starting Zone", + "code": "al", + "type": "bool" + }, + { "name": "Amp Scores", + "code": "aas", + "type": "counter" + }, + { "name": "Speaker Scores", + "code": "ass", + "type": "counter" + } + ], + "teleop": [ + { "name": "Amp Scores", + "code": "tas", + "type": "counter" + }, + { "name": "Speaker Scores", + "code": "tss", + "type": "counter" + }, + { "name": "Times Amplified", + "code": "tta", + "type": "counter" + }, + { "name": "Pickup From", + "code": "tpu", + "type": "radio", + "choices": { + "s": "Source
", + "f": "Floor
", + "b": "Both
", + "x": "Not Attempted" + }, + "defaultValue": "x" + } + ], + "endgame": [ + { "name": "Stage Timer", + "code": "dt", + "type": "timer" + }, + { "name": "Final Status", + "code": "fs", + "type":"radio", + "choices": { + "p": "Parked
", + "o": "Onstage
", + "s": "Onstage (Spotlit)
", + "h": "Harmony
", + "a": "Attempted but failed
", + "x": "Not attempted" + }, + "defaultValue": "x" + }, + { "name": "Note in Trap", + "code": "nit", + "type": "bool" + } + ], + "postmatch": [ + { "name": "Driver Skill", + "code": "ds", + "type": "radio", + "choices": { + "n": "Not Effective
", + "a": "Average
", + "v": "Very Effective
", + "x": "Not Observed" + }, + "defaultValue": "x" + }, + { "name": "Defense Rating", + "code": "dr", + "type": "radio", + "choices": { + "b": "Below Average
", + "a": "Average
", + "g": "Good
", + "e": "Excellent
", + "x": "Did not play defense" + }, + "defaultValue": "x" + }, + { "name": "Speed Rating", + "code": "sr", + "type": "radio", + "choices": { + "1": "1 (slow)
", + "2": "2
", + "3": "3
", + "4": "4
", + "5": "5 (fast)" + }, + "defaultValue":"3" + }, + { "name": "Died/Immobilized", + "code": "die", + "type": "bool" + }, + { "name": "Tippy
(almost tipped over)", + "code": "tip", + "type": "bool" + }, + { "name": "Dropped Notes (>2)", + "code": "dn", + "type": "bool" + }, + { "name": "Make good
alliance partner?", + "tooltip": "Would you want this robot on your alliance in eliminations?", + "code": "all", + "type": "bool" + }, + { "name": "Comments", + "code": "co", + "type": "text", + "size": 15, + "maxSize": 55 + } + ] +}`; diff --git a/2024/crescendo_pit_config.js b/2024/crescendo_pit_config.js new file mode 100644 index 000000000..58477b516 --- /dev/null +++ b/2024/crescendo_pit_config.js @@ -0,0 +1,98 @@ +var config_data = ` +{ + "title": "Scouting PASS 2024", + "page_title": "Crescendo", + "pitConfig": "true", + "prematch": [ + { "name": "Team Number", + "code": "t", + "type": "number" + }, + { "name": "Width", + "code": "wid", + "type": "number", + "defaultValue": "0" + }, + { "name": "Weight", + "code": "wei", + "type": "number", + "defaultValue": "0" + }, + { "name": "Drivetrain", + "code": "drv", + "type": "radio", + "choices": { + "s": "Swerve
", + "w": "West Coast/Tank
", + "b": "Butterfly/Grashopper
", + "m": "Mechanum
", + "o": "Other" + }, + "defaultValue": "o" + }, + { "name": "Other Drivetrain", + "code": "odt", + "type": "text", + "size": 20, + "maxSize": 50 + }, + { "name": "Swerve Ratio", + "code": "sr", + "type": "radio", + "choices": { + "1": "L1 (8.14:1)
", + "2": "L2 (6.75:1)
", + "3": "L3 (6.12:1)
", + "4": "L4 (5.14:1)
", + "o": "Other ratio (put in comments)
", + "x": "Not Swerve" + }, + "defaultValue":"x" + }, + { "name": "Drivetrain Motor", + "code": "mot", + "type": "radio", + "choices": { + "n": "Neo
", + "f": "Falcon
", + "c": "CIM
", + "x": "Other
" + }, + "defaultValue":"x" + }, + { "name": "# of Batteries", + "code": "nob", + "type": "number" + }, + { "name": "Floor pickup Notes", + "code": "fpu", + "type": "bool" + }, + { "name": "Autos", + "code": "aut", + "type": "text", + "size": 20, + "maxSize": 250 + }, + { "name": "Scouting Method /
Program (ScoutingPASS?)", + "code": "sct", + "type": "text", + "size": 20, + "maxSize": 250 + }, + { "name": "Comments", + "code": "co", + "type": "text", + "size": 20, + "maxSize": 250 + } + ], + "auton": [ + ], + "teleop": [ + ], + "endgame": [ + ], + "postmatch": [ + ] +}`; diff --git a/2024/field_image.png b/2024/field_image.png new file mode 100644 index 000000000..ef8e6f9ba Binary files /dev/null and b/2024/field_image.png differ diff --git a/index.html b/index.html index 34b22a3a9..fc0fd68bb 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,7 @@ - + diff --git a/pit.html b/pit.html index 729cdabd9..c0d552530 100644 --- a/pit.html +++ b/pit.html @@ -9,7 +9,7 @@ - + diff --git a/resources/js/scoutingPASS.js b/resources/js/scoutingPASS.js index 5105100a7..89b58aad0 100644 --- a/resources/js/scoutingPASS.js +++ b/resources/js/scoutingPASS.js @@ -1093,15 +1093,15 @@ function onFieldClick(event) { let box = ((Math.ceil(event.offsetY / target.height * resY) - 1) * resX) + Math.ceil(event.offsetX / target.width * resX); let coords = event.offsetX + "," + event.offsetY; - let allowableResponses = document.getElementById("allowableResponses" + base).value.split(',').map(Number); - + let allowableResponses = document.getElementById("allowableResponses" + base).value; + if(allowableResponses != "none"){ - if (allowableResponses.indexOf(box)==-1){ + allowableResponsesList = allowableResponses.split(',').map(Number); + if (allowableResponsesList.indexOf(box)==-1){ return; } } - //Cumulating values let changingXY = document.getElementById("XY" + base); let changingInput = document.getElementById("input" + base);