Documentation ¶
Overview ¶
package brevity contains types and models for air combat communication brevity
Index ¶
- Constants
- type AlphaCheckRequest
- type AlphaCheckResponse
- type Aspect
- type BRA
- type BRAA
- type BogeyDopeRequest
- type BogeyDopeResponse
- type Bullseye
- type CheckInRequest
- type CheckInResponse
- type ContactCategory
- type Declaration
- type DeclareRequest
- type DeclareResponse
- type FadedCall
- type Group
- type MergedCall
- type NegativeRadarContactResponse
- type PictureRequest
- type PictureResponse
- type RadioCheckRequest
- type RadioCheckResponse
- type SayAgainResponse
- type ShoppingRequest
- type ShoppingResponse
- type SnaplockRequest
- type SnaplockResponse
- type SpikedRequest
- type SpikedResponse
- type Stack
- type SunriseCall
- type ThreatCall
- type Track
- type TripwireRequest
- type TripwireResponse
- type UnableToUnderstandRequest
Constants ¶
const ( UnknownAspect Aspect = "maneuver" // Hot aspect is 0-30° target aspect or 180-150° aspect angle. Hot = "hot" // Flank is 40-70° target aspect or 140-110° aspect angle. Flank = "flank" // Beam is 80-110° target aspect or 100-70° aspect angle. Beam = "beam" // Drag is 120-180° target aspect or 60-0° aspect angle. Drag = "drag" )
const ( // MergeEntryDistance is the distance at which contacts are considered to enter the merge. MergeEntryDistance = 3 * unit.NauticalMile // MergeExitDistance is the distance at which contacts are considered to exit the merge. MergeExitDistance = 5 * unit.NauticalMile )
const LastCaller = "Last caller"
LastCaller is a placeholder callsign used when the actual callsign is unknown.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AlphaCheckRequest ¶
type AlphaCheckRequest struct { // Callsign of the friendly aircraft requesting the ALPHA CHECK. Callsign string }
AlphaCheckRequest is a request for an ALPHA CHECK. An ALPHA CHECK is a request for the friendly aircraft's position. It is used by aircrews to check their position equipment, especially for aircraft without GPS. Reference: ATP 3-52.4 Chapter II section 4.
func (AlphaCheckRequest) String ¶ added in v0.6.0
func (r AlphaCheckRequest) String() string
type AlphaCheckResponse ¶
type AlphaCheckResponse struct { // Callsign of the friendly aircraft requesting the ALPHA CHECK. Callsign string // Status is true if the ALPHA CHECK was correlated to an aircraft on frequency, otherwise false. Status bool // Location of the friendly aircraft. If Status is false, this may be nil. Location Bullseye }
AlphaCheckResponse is a response to an ALPHA CHECK.
type Aspect ¶
type Aspect string
Aspect indicates the target aspect or aspect angle between a contact and fighter. Reference: ATP 3-52.4 Chapter IV section 6, Figure 1.
type BRA ¶
type BRA interface { // Bearing is the heading from the fighter to the contact, rounded to the nearest degree. Bearing() bearings.Bearing // Range is the distance from the fighter to the contact, rounded to the nearest nautical mile. Range() unit.Length // Altitude of the contact above sea level, rounded to the nearest thousands of feet. Altitude() unit.Length // Altitude STACKS of the contact above sea level, rounded to the nearest thousands of feet. Stacks() []Stack }
BRA is an abbreviated form of BRAA without aspect.
type BRAA ¶
BRAA provides target bearing, range, altitude and aspect relative to a specified friendly aircraft. Reference: ATP 3-52.4 Chapter IV section 4 subsection b.
type BogeyDopeRequest ¶
type BogeyDopeRequest struct { // Callsign of the friendly aircraft requesting the BOGEY DOPE. Callsign string // Filter for the type of aircraft to include in the BOGEY DOPE. Filter ContactCategory }
BogeyDopeRequest is a request for a BOGEY DOPE. Reference: ATP 3-52.4 Chapter V section 11.
func (BogeyDopeRequest) String ¶ added in v0.6.0
func (r BogeyDopeRequest) String() string
type BogeyDopeResponse ¶
type Bullseye ¶
type Bullseye struct {
// contains filtered or unexported fields
}
Bullseye is a magnetic bearing and distance from a reference point called the BULLSEYE. Reference: ATP 3-52.4 Chapter IV section 4 subsection a.
type CheckInRequest ¶ added in v0.12.0
type CheckInRequest struct {
Callsign string
}
CheckInRequest is ambiguous.
func (CheckInRequest) String ¶ added in v0.12.0
func (r CheckInRequest) String() string
type CheckInResponse ¶ added in v0.12.0
type CheckInResponse struct {
Callsign string
}
CheckInResponse is sarcasm.
type ContactCategory ¶
type ContactCategory int
const ( Aircraft ContactCategory = iota FixedWing RotaryWing )
func (ContactCategory) String ¶ added in v0.6.4
func (c ContactCategory) String() string
type Declaration ¶
type Declaration string
Reference ATP 3-52.4 Chapter V section 6.
const ( // Bogey indicates the contact's' whose identity is unknown. // Reference: ATP 1-02.1 Chapter I Table 2. Bogey Declaration = "bogey" // Friendly indicates the contact is a positively identified friendly. // Reference: ATP 1-02.1 Chapter I Table 2. Friendly Declaration = "friendly" // Neutral indicates the contact is a positively identified aircraft whose characteristics, behavior, origin or nationality indicate it is neither supporting nor opposing friendly forces. // Reference: ATP 1-02.1 Chapter I Table 2. Neutral Declaration = "neutral" // Bandit indicates the contact is a positively idenfieid enemy in accordance with theater identification criteria. It does not imply direction or authority to engage. // Reference: ATP 1-02.1 Chapter I Table 2. Bandit Declaration = "bandit" // Hostile indicates the contact is a identified as an enemy upon which clearance to fire is authorized in accordance with theater rules of engagement. // Reference: ATP 1-02.1 Chapter I Table 2. Hostile Declaration = "hostile" // Furball indicates that non-friendly and friendly aircraft are inside of 5 nauctical miles of each other. // Reference: ATP 1-02.1 Chapter I Table 2. Furball Declaration = "furball" // Unable indications that the responder is unable to provide a declaration as requested. // Reference: ATP 1-02.1 Chapter I Table 2. Unable Declaration = "unable" // Clean indicates there is no sensor information on the contact. // Reference: ATP 1-02.1 Chapter I Table 2. Clean Declaration = "clean" )
type DeclareRequest ¶
type DeclareRequest struct { // Callsign of the friendly aircraft requesting DECLARE. Callsign string // Sour indicates if the player attempted a DECLARE request without // providing coordinates for the contact. Sour bool // IsBRAA indicates if the contact is provided using Bullseye (false) or BRAA (true). IsBRAA bool // Bullseye of the contact, if provided using Bullseye. Bullseye Bullseye // Bearing of the contact, if provided using BRAA. Bearing bearings.Bearing /// Range to the contact, if provided using BRAA. Range unit.Length // Altitude of the contact above sea level, rounded to the nearest thousands of feet. Altitude unit.Length // Track direction. Optional, used to discriminate between multiple contacts at the same location. Track Track }
DeclareRequest is a DECLARE call. Reference: ATP 3-52.4 Chapter V section 6.
func (DeclareRequest) String ¶ added in v0.6.0
func (r DeclareRequest) String() string
type DeclareResponse ¶
type DeclareResponse struct { // Callsign of the friendly aircraft requesting DECLARE. Callsign string // Sour indicates if the controller is unable to provide a declaration // because the friendly aircraft did not provide coordinates for the // contact. Sour bool // Declaration of the contact. Declaration Declaration // Group that was identified, if a specific one was identifiable. // This may be nil if Declaration is Furball, Unable, or Clean. Group Group }
DeclareResponse is a response to a DECLARE call. Reference: ATP 3-52.4 Chapter V section 6.
type FadedCall ¶
type FadedCall struct { // Group which has faded. Group Group }
FadedCall reports a previously tracked group has not been updated by on or off-board sensors for 30 seconds. Reference: ATP 3-52.4 Chapter V section 19 subsection a.
type Group ¶
type Group interface { // Threat indicates if the THREAT criteria is met. Threat() bool // SetThreat sets the THREAT status. SetThreat(bool) // Contacts is the number of contacts in the group. Contacts() int // Bullseye is the location of the group. This may be nil for BOGEY DOPE, SNAPLOCK, and THREAT calls. Bullseye() *Bullseye // Altitude is the group's highest altitude. This may be zero for BOGEY DOPE, SNAPLOCK, and THREAT calls. Altitude() unit.Length // Stacks are the group's altitude STACKS, ordered from highest to lowest in intervals of at least 10,000 feet. // This may be empty for BOGEY DOPE, SNAPLOCK, and THREAT calls. Stacks() []Stack // Track is the group's track direction. This may be UnknownDirection for BOGEY DOPE, SNAPLOCK, and THREAT calls. Track() Track // Aspect is the group's aspect angle relative to another aircraft. This may be nil for BOGEY DOPE, SNAPLOCK, and some THREAT calls. Aspect() Aspect // BRAA is an alternate format for the group's location. This is nil except for BOGEY DOPE, SNAPLOCK, and some THREAT calls. BRAA() BRAA // Declaration of the group's friend or foe status. Declaration() Declaration // SetDeclaration sets the group's friend or foe status. SetDeclaration(Declaration) // Heavy is true if the group contacts 3 or more contacts. Heavy() bool // Platforms are the NATO reporting names of the group's aircraft platforms (for Soviet/Russian/Chinese aircraft) or // alternative names for other aircraft. Skyeye supports mixed-platform groups, so this returns multiple values. Platforms() []string // High is true if the aircraft altitude is above 40,000 feet. High() bool // Fast is true if the group's speed is 600-900kts ground speed or 1.0-1.5 Mach. Fast() bool // VeryFast is true is the group's speed is above 900kts ground speed or 1.5 Mach. VeryFast() bool // MergedWith is the number of friendlies this group is merged with. MergedWith() int // SetMergedWith sets the number of friendlies this group is merged with. SetMergedWith(int) // String returns a human-readable description of the group. String() string // ObjectIDs returns the object IDs of all contacts in the group. ObjectIDs() []uint64 }
Group describes any number of air contacts within 3 nautical miles in azimuth and range of each other. Groups are distinguished by either a unique name or a location. This implementation only uses location. Location may be either BRAA or Bullseye, altitude and track. Bullseye is preferred except for:
- BOGEY DOPE and SNAPLOCK responses
- THREAT calls that pertain to a single aircraft
Reference: ATP 3-52.4 Chapter IV section 2.
type MergedCall ¶ added in v0.4.0
type MergedCall struct { // Callsigns of the friendly aircraft in the merge. Callsigns []string }
type NegativeRadarContactResponse ¶
type NegativeRadarContactResponse struct { // Callsign of the friendly aircraft that made the request. Callsign string }
NegativeRadarContactResponse provides a response when the GCI controller cannot find the caller on the radar scope.
type PictureRequest ¶
type PictureRequest struct { // Callsign of the friendly aircraft requesting the PICTURE. Callsign string }
PictureRequest is a request for an updated PICTURE.
func (PictureRequest) String ¶ added in v0.6.0
func (r PictureRequest) String() string
type PictureResponse ¶
type PictureResponse struct { // Count is the total number of groups in the PICTURE. Count int // Groups included in the PICTURE. This is a maximum of 3 groups. Groups []Group }
PICTURE is a report to establish a tactical air image. Reference: ATP 3-52.4 Chapter IV section 9.
type RadioCheckRequest ¶
type RadioCheckRequest struct { // Callsign of the friendly aircraft requesting the RADIO CHECK. Callsign string }
RadioCheckRequest is a request for a RADIO CHECK.
func (RadioCheckRequest) String ¶ added in v0.6.0
func (r RadioCheckRequest) String() string
type RadioCheckResponse ¶
type RadioCheckResponse struct { // Callsign of the friendly aircraft requesting the RADIO CHECK. // If the callsign was misheard, this may not be the actual callsign of any actual aircraft. Callsign string // RadarContact indicates whether the callsign was found on the radar scope. RadarContact bool }
RadioCheckResponse is a response to a RADIO CHECK.
type SayAgainResponse ¶
type SayAgainResponse struct { // Callsign of the friendly aircraft that made the request. // This may be empty if the GCI is unsure of the caller's identity. Callsign string }
SayAgainResponse is a generic response asking the caller to repeat their last transmission.
type ShoppingRequest ¶ added in v0.10.0
type ShoppingRequest struct {
Callsign string
}
Shopping is an air-to-ground brevity commonly mistaken as an air-to-air brevity.
func (ShoppingRequest) String ¶ added in v0.10.0
func (r ShoppingRequest) String() string
type ShoppingResponse ¶ added in v0.10.0
type ShoppingResponse struct {
Callsign string
}
ShoppingResponse is reeducation.
type SnaplockRequest ¶
type SnaplockRequest struct { // Callsign of the friendly aircraft requesting the SNAPLOCK. Callsign string // BRA is the location of the contact. BRA BRA }
SnaplockRequest is an abbreviated form of DECLARE used to quickly gain information on a contact inside THREAT range with BEAM or hotter aspect. Aspect is implied to be Beam or greater. Reference ATP 3-52.4 Chapter V section 20.
func (SnaplockRequest) String ¶ added in v0.6.0
func (r SnaplockRequest) String() string
type SnaplockResponse ¶
type SnaplockResponse struct { // Callsign of the friendly aircraft requesting the SNAPLOCK. Callsign string // Declaration of the contact. Declaration Declaration // Group that was identified. If Declaration is Unable or Furball, this may be nil. Group Group }
SnaplockResponse is a response to a SNAPLOCK call. Reference ATP 3-52.4 Chapter V section 20.
type SpikedRequest ¶
type SpikedRequest struct { // Callsign of the friendly aircraft calling SPIKED. Callsign string // Bearing to the radar spike. Bearing bearings.Bearing }
SpikedRequest is a request to correlate a radar spike within ±30 degrees. Reference: ATP 3-52.4 Chapter V section 13.
func (SpikedRequest) String ¶ added in v0.6.0
func (r SpikedRequest) String() string
type SpikedResponse ¶
type SpikedResponse struct { // Callsign of the friendly aircraft calling SPIKED. Callsign string // True if the spike was correlated to a contact. False otherwise. Status bool // Range to the correlated contact. If Status is false, this may be 0. Range unit.Length // Altitude of the correlated contact. If Status is false, this may be 0. Altitude unit.Length // Aspect of the correlated contact. If Status is false, this may be UnknownAspect. Aspect Aspect // Track of the correlated contact. If Status is false, this may be UnknownDirection. Track Track // Declaration of the correlated contact. If Status is false, this may be Clean. Declaration Declaration // Number of contacts in the correlated group. If Status is false, this may be zero. Contacts int // Reported spike bearing. This is used if the response did not correlate to a group. Bearing bearings.Bearing }
SpikedResponse reports any contacts within ±30 degrees of a reported radar spike. Reference: ATP 3-52.4 Chapter V section 13.
type SunriseCall ¶
type SunriseCall struct { // Frequency which the GCI is listening on. Frequencies []unit.Frequency }
SunriseCall reports that the GCI is online and ready for requests.
type ThreatCall ¶
type ThreatCall struct { // Callsigns of the friendly aircraft under threat. Callsigns []string // Group that is threatening the friendly aircraft. Group Group }
ThreatCall reports that a fighter will piece the threat range to a friendly aircraft. THREAT is more complicated in the real world, so this bot offers a simplified version. Reference: ATP 3-52.4 Chapter V section 18.
type Track ¶
type Track string
Track is a compass direction.
func TrackFromBearing ¶
TrackFromBearing computes a track direction based on the given magnetic bearing.
type TripwireRequest ¶
type TripwireRequest struct {
Callsign string
}
TripwireRequest does not exist.
func (TripwireRequest) String ¶ added in v0.6.0
func (r TripwireRequest) String() string
type TripwireResponse ¶
type TripwireResponse struct {
Callsign string
}
TripwireResponse is reeducation.
type UnableToUnderstandRequest ¶
type UnableToUnderstandRequest struct { // Callsign of the friendly aircraft that made the request. // If the callsign was unclear, this field will be empty. Callsign string }
UnableToUnderstandRequest provides a response when the GCI controller cannot understand the caller's request because either the caller's callsign or the request itself is unclear.
func (UnableToUnderstandRequest) String ¶ added in v0.6.0
func (r UnableToUnderstandRequest) String() string