FMS to Driver Station
UDP
Sent to the DS every 500ms on UDP port 1121 by the normal FMS, or to UDP port 1120 by the offseason FMS. Sending to 1120 causes the DS to display a prompt asking to approve FMS control, whereas sending to 1121 starts FMS control immediatley.
Field |
Length |
Type |
Comment |
|---|---|---|---|
Sequence Num |
2 |
uint16 |
|
Comm Version |
1 |
uint8 |
Only 0x00 has been observed |
Control Byte |
1 |
Contains control bits |
|
Request Byte |
1 |
Request |
Stays at 0x00, not used |
Alliance Station |
1 |
Represents the station the DS connects to |
|
Tournament Level |
1 |
What level of competition this is |
|
Match Number |
2 |
uint16 |
Represents the number of current match |
Play Number |
1 |
uint8 |
Increments if there’s a replay |
Date |
10 |
||
Remaining Time |
2 |
uint16 |
Time left in current mode |
Tags |
n |
Tags |
Offseason FMS has code for sending tags but none to send |
Control
Field |
Mask |
Comment |
E-Stop |
|
0: Normal, 1: Emergency Stopped |
Enabled |
|
0: Disabled, 1: Enabled |
Mode |
|
0: TeloOp, 1: Test, 2: Autonomous |
Alliance Station
Computed by taking station [1, 3] and subtracting 1 for red, or adding 2 for blue.
Color is Red if value < 3, else Blue. Position is value % 3 + 1
Tournament Level
Level |
Value |
Comment |
|---|---|---|
Match Test |
0 |
Only used during FMS setup for testing purposes |
Practice |
1 |
|
Qualification |
2 |
|
Playoff |
3 |
Date
Field |
Length |
Type |
Comment |
|---|---|---|---|
Microseconds |
4 |
uint32 |
|
Second |
1 |
uint8 |
|
Minute |
1 |
uint8 |
|
Hour |
1 |
uint8 |
In UTC? |
Day |
1 |
uint8 |
|
Month |
1 |
uint8 |
0 is January |
Year |
1 |
uint8 |
Year (starting at 1900) |
TCP
10.0.100.5, listening on TCP port 1750.
Field |
Length |
Type |
Comment |
|---|---|---|---|
Size |
2 |
uint16 |
Including ID |
ID |
1 |
uint8 |
See table below (only of Size > 0) |
Tags |
n |
Depends on tag type |