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 SpikedResponsedeprecated
- type SpikedResponseV2
- type Stack
- type StrobeRequest
- type StrobeResponse
- 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.
func AspectFromAngle ¶
AspectFromAngle computes target aspect based on the magnetic bearing from an aircraft to the target and the track direction of the target.
func (Aspect) IsCardinal ¶ added in v1.1.3
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 BogeyDopeResponse struct {
// Callsign of the friendly aircraft requesting the BOGEY DOPE.
Callsign string
// Group which is closest to the fighter. If there are no eligible groups, this may be nil.
Group Group
}
BogeyDopeResponse is a response to a BOGEY DOPE request.
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.
func NewBullseye ¶
NewBullseye creates a new Bullseye.
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
ContactCategory is a filter for the type of aircraft to include in a BOGEY DOPE.
const ( // Aircraft is the filter for all aircraft. Aircraft ContactCategory = iota // FixedWing filters for fixed wing aircraft. FixedWing // RotaryWing filters for rotary wing aircraft. RotaryWing )
func (ContactCategory) String ¶ added in v0.6.4
func (c ContactCategory) String() string
type Declaration ¶
type Declaration string
Declaration identifies a contact's friendly status. 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
// IsAmbiguous indicates if the requestor did not explicitly state if they
// were providing Bullseye or BRAA coordinates.
IsAmbiguous 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
// If readback is not nil, the controller should read back the coordinate
// in the response.
Readback *Bullseye
// 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, SPIKED, STROBE and THREAT calls.
Stacks() []Stack
// Track is the group's track direction. This may be UnknownDirection for BOGEY DOPE, SNAPLOCK, SPIKED, STROBE and THREAT calls.
Track() Track
// Aspect is the group's aspect angle relative to another aircraft. This may be nil for BOGEY DOPE, SNAPLOCK, SPIKED, STROBE and some THREAT calls.
Aspect() Aspect
// BRAA is an alternate format for the group's location. This is nil except for BOGEY DOPE, SNAPLOCK, SPIKED, STROBE 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
}
MergedCall is a broadcast notifying a friendly aircraft that has merged with an unfriendly aircraft.
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
}
PictureResponse contains parameters for a PICTURE. 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
}
ShoppingRequest 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
deprecated
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.
Deprecated: Use SpikedResponseV2 instead.
type SpikedResponseV2 ¶ added in v1.1.3
type SpikedResponseV2 struct {
// Callsign of the friendly aircraft calling SPIKED.
Callsign string
// Reported spike bearing. This is used if the response did not correlate to a group.
Bearing bearings.Bearing
// True if the spike was correlated to a contact. False otherwise.
Status bool
// Correleted contact group. If Status is false, this may be nil.
Group Group
}
SpikedResponseV2 reports any contacts within ±30 degrees of a reported radar spike. Reference: ATP 3-52.4 Chapter V section 13.
type StrobeRequest ¶ added in v1.6.0
type StrobeRequest struct {
// Callsign of the friendly aircraft calling STROBE..
Callsign string
// Bearing to the electromagnetic attack.
Bearing bearings.Bearing
}
Strobe is a request to correlate an electromagnetic attack within ±30 degrees. Reference: ATP 3-52.4 Chapter V section 12.
func (StrobeRequest) String ¶ added in v1.6.0
func (r StrobeRequest) String() string
type StrobeResponse ¶ added in v1.6.0
type StrobeResponse struct {
// Callsign of the friendly aircraft calling STROBE..
Callsign string
// Reported attack bearing. This is used if the response did not correlate to a group.
Bearing bearings.Bearing
// True if the attack was correlated to a contact. False otherwise.
Status bool
// Correleted contact group. If Status is false, this may be nil.
Group Group
}
StrobeResponse reports any contacts within ±30 degrees of a reported electromagnetic attack. Reference: ATP 3-52.4 Chapter V section 12.
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