syntax = "proto2"; package tm; import "division.proto"; message FieldHwState { enum FieldState { DISABLED = 0; ENABLED = 1; AUTO = 2; DRIVER = 3; TIMEOUT = 4; } enum FieldCause { NONE = 0; MATCH_STARTED = 1; MATCH_ENDED = 2; MATCH_PAUSED = 3; MATCH_RESUMED = 4; MATCH_ENDED_EARLY = 5; MATCH_ABORTED = 6; TRANSITIONED = 7; } optional tm.Field field = 1; optional tm.FieldHwState.FieldState state = 2 [default = DISABLED]; optional tm.FieldHwState.FieldCause cause = 3 [default = NONE]; } message Field { optional string name = 1; optional int32 id = 2; optional int32 fieldSetId = 3; } message FieldSet { enum FieldSetType { USER_DEFINED = 1; SIDE_CHALLENGE = 2; } optional string name = 1; repeated tm.Field fields = 3; optional int32 id = 4; optional tm.FieldSet.FieldSetType type = 5 [default = USER_DEFINED]; } message FieldSetList { repeated tm.FieldSet fieldSets = 1; } message MatchTimeSchedEntry { enum BlockType { TIMER_ONLY = 1; AUTONOMOUS = 2; DRIVER_CTRL = 3; PAUSE = 4; } optional int32 seconds = 1; optional tm.MatchTimeSchedEntry.BlockType type = 2; optional string name = 3; } message MatchTimeSchedList { enum MatchType { NORMAL = 1; AUTO_CHALLENGE = 2; DRIVER_CHALLENGE = 3; } repeated tm.MatchTimeSchedEntry entries = 1; optional tm.MatchTimeSchedList.MatchType matchType = 2; } message FieldTime { optional tm.Field field = 1; optional tm.MatchTimeSchedList blockList = 2; optional int32 currentBlock = 3; optional double currentBlockStart = 4; optional double currentBlockEnd = 5; } message AssignedObjectType { enum AssignedObjectEnum { MATCH = 1; SC = 2; TIME_OUT = 3; } } message FieldControlTeamStatus { enum State { READY = 1; ERROR = 2; NO_CONNECTION = 3; } enum ErrorCondition { NO_FIELD_CONNECTION = 1; PARTNER_CONNECTED = 2; BAD_RADIO_TYPE = 3; NO_RADIO_LINK = 4; BAD_CONTROLLER_FW = 5; BAD_BRAIN_FW = 6; BAD_CONTROLLER_RADIO_FW = 7; BAD_BRAIN_RADIO_FW = 8; USER_PGM_NOT_RUNNING = 9; NOT_COMP_CHANNEL = 10; NOT_SMARTFIELD = 11; } optional tm.FieldControlTeamStatus.State state = 1; optional tm.FieldControlTeamStatus.ErrorCondition err = 2; optional string details = 3; optional string teamNum = 4; } message FieldControlStatus { enum State { INVALID = 0; INACTIVE = 1; ACTIVE = 2; } optional tm.FieldControlStatus.State state = 1; repeated tm.FieldControlTeamStatus teams = 2; }