You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
QRScout is a web app. To open it, all 3you have to do is visit https://frc2713.github.io/QRScout/
@@ -261,3 +274,96 @@ For example, to include a field diagram in your scouting form:
261
274
```
262
275
263
276
This allows scouts to reference the field layout while recording robot positions or movements during a match.
277
+
278
+
### Using Timer Input
279
+
280
+
The timer input type allows users to measure and record time durations during a match. This is particularly useful for tracking how long robots take to perform specific actions or measuring cycle times for repeated tasks.
281
+
282
+
#### Configuration in config.json
283
+
284
+
To configure a timer field in your `config.json`:
285
+
286
+
```json
287
+
{
288
+
"title": "Climb Time",
289
+
"type": "timer",
290
+
"required": false,
291
+
"code": "climbTime",
292
+
"description": "Time taken to complete climb",
293
+
"formResetBehavior": "reset",
294
+
"defaultValue": 0,
295
+
"outputType": "average"
296
+
}
297
+
```
298
+
299
+
#### Timer Input Properties
300
+
301
+
-**defaultValue**: The initial value of the timer in seconds (typically 0).
302
+
-**description** (optional): A brief explanation of what the timer is measuring.
303
+
-**outputType**: Determines how multiple timer values are processed. Can be either:
304
+
-`"average"` (default): Records the average of all timer values.
305
+
-`"list"`: Records all timer values as a list.
306
+
307
+
#### Using Timer in the Form
308
+
309
+
The timer input provides a simple interface with the following controls:
310
+
311
+
1.**Start/Stop Button**: Toggles the timer on and off
312
+
2.**Reset Button**: Sets the timer back to 0 and records the current time as a lap
313
+
3.**Undo Button**: Resets the timer without recording a lap
314
+
4.**Time Display**: Shows the current elapsed time in seconds
315
+
5.**Average Display**: Shows the average time and number of recorded laps when `outputType` is `"average"`
316
+
6.**List Display**: Shows a list of lap times when `outputType` is `"list"`
317
+
318
+
To use the timer during scouting:
319
+
320
+
1. Click "Start" when the robot begins the action you want to time
321
+
2. Click "Stop" when the action is completed
322
+
3. Click "Reset" to record the time and prepare for another measurement
323
+
4. The final time(s) will be recorded in the QR code data according to the outputType setting
324
+
5. Use "Undo" if you need to restart without recording the current time
325
+
326
+
#### Data Format
327
+
328
+
In the generated QR code, timer values are stored differently based on the outputType:
329
+
330
+
- With `outputType: "average"`: A single numeric value representing the average of all recorded times in seconds.
331
+
- With `outputType: "list"`: A comma-separated list of all recorded times in seconds.
332
+
333
+
For example, if a robot completed three climbs in 12.5, 10.2, and 11.8 seconds:
334
+
335
+
- With `outputType: "average"`, the QR code will contain `11.5` (the average)
336
+
- With `outputType: "list"`, the QR code will contain `12.5,10.2,11.8` (all values)
337
+
338
+
#### FRC Scouting Examples
339
+
340
+
Timer inputs are particularly useful for FRC scouting in scenarios like:
341
+
342
+
-**Climb Time**: Measure how long it takes for a robot to complete a climbing action
343
+
-**Cycle Time**: Track the time between scoring actions to calculate scoring rate
344
+
-**Defense Recovery**: Measure how quickly a robot recovers after being defended
345
+
-**Auto Completion**: Time how long it takes to complete autonomous routines
346
+
-**Intake Speed**: Measure how quickly a robot can intake game pieces
347
+
348
+
For example, to track cycle times for scoring game pieces:
349
+
350
+
```json
351
+
{
352
+
"title": "Scoring Cycle Time",
353
+
"type": "timer",
354
+
"required": false,
355
+
"code": "scoringCycleTime",
356
+
"description": "Time between consecutive scoring actions",
357
+
"formResetBehavior": "reset"
358
+
}
359
+
```
360
+
361
+
This allows scouts to accurately measure and compare the efficiency of different robots' scoring mechanisms and strategies.
362
+
363
+
#### Best Practices for Timer Input
364
+
365
+
1.**Clear Instructions**: Ensure scouts know exactly when to start and stop the timer
366
+
2.**Consistent Measurement**: Define clear start and end points for timed actions
367
+
3.**Multiple Timers**: Consider using separate timers for different phases or actions
368
+
4.**Backup Method**: Have a secondary way to record time in case of user error
369
+
5.**Practice Before Competition**: Make sure scouts are comfortable using the timer function before actual matches
0 commit comments