Documentation ¶
Index ¶
- Constants
- type AlphaCheckRequest
- type AlphaCheckResponse
- type Aspect
- type BRA
- type BRAA
- type BogeyDopeRequest
- type BogeyDopeResponse
- type Bullseye
- type ContactCategory
- type Declaration
- type DeclareRequest
- type DeclareResponse
- type FadedCall
- type Group
- type NegativeRadarContactResponse
- type PictureRequest
- type PictureResponse
- type RadioCheckRequest
- type RadioCheckResponse
- type SnaplockRequest
- type SnaplockResponse
- type SpikedRequest
- type SpikedResponse
- type SunriseCall
- type ThreatCall
- type Track
Constants ¶
const ( UnknownAspect Aspect = "unknown" // 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 ( // 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 = "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 = "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 = "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 = "hostile" // DeclarationFurball 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 = "furball" // Unable indications that the responder is unable to provide a declaration as requested. // Reference: ATP 1-02.1 Chapter I Table 2 Unable = "unable" // Clean indicates there is no sensor information on the contact. // Reference: ATP 1-02.1 Chapter I Table 2 Clean = "clean" )
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
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() unit.Angle // 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 }
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
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 ContactCategory ¶
type ContactCategory int
const ( Everything ContactCategory = iota Airplanes Helicopters )
type DeclareRequest ¶
type DeclareRequest struct { // Callsign of the friendly aircraft requesting DECLARE. Callsign string // Location of the contact. Location Bullseye // 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
type DeclareResponse ¶
type DeclareResponse struct { // Callsign of the friendly aircraft requesting DECLARE. Callsign string // 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 // 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 altitude above sea level. This may be nil for BOGEY DOPE, SNAPLOCK, and THREAT calls. Altitude() unit.Length // 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. 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 // Heavy is true if the group contacts 3 or more contacts. Heavy() bool // Platform is the NATO reporting name of the group's aircraft platform (for Soviet/Russian/Chinese aircraft) or // an alternative name for other aircraft. Platform() 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 }
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 NegativeRadarContactResponse ¶
type NegativeRadarContactResponse struct {
Callsign string
}
type PictureRequest ¶
type PictureRequest struct { // Callsign of the friendly aircraft requesting the PICTURE. Callsign string // Radius is the distance from the friendly aircraft to search for groups. // This is present to allow server admins to cap the scale of a PICTURE call, since some DCS servers are quite dense. Radius unit.Length }
PictureRequest is a request for an updated PICTURE.
type PictureResponse ¶
type PictureResponse struct { // Groups included in the PICTURE. 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.
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 // Status is true if the RADIO CHECK was correlated to an aircraft on frequency, otherwise false. // If this is false, the RADIO CHECK was received but not fully understood. Status bool }
RadioCheckResponse is a response to a RADIO CHECK.
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 infomation 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
type SnaplockResponse ¶
type SnaplockResponse struct { // Callsign of the friendly aircraft requesting the SNAPLOCK. Callsign string // Status is true if the SNAPLOCK was correlated to a group, otherwise false. Status bool // Group that was identified. If Status is false, 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 unit.Angle }
SpikedRequest is a request to correlate a radar spike within ±30 degrees. Reference: ATP 3-52.4 Chapter V section 13
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 nil. Range *unit.Length // Altitude of the correlated contact. If Status is false, this may be nil. Altitude *unit.Length // Aspect of the correlated contact. If Status is false, this may be UnknownAspect. Aspect Aspect // 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 unit.Angle }
SpikedResponse reports any contacts within ±30 degrees of a reported radar spike. Reference: ATP 3-52.4 Chapter V section 13
type SunriseCall ¶
SunriseCall reports that the GCI is online and ready for requests.
type ThreatCall ¶
type ThreatCall struct { // Callsign of the friendly aircraft under threat. Callsign 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