transform

package
v0.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2023 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BYTESIZE = 8
)

Variables

View Source
var (
	ErrCartOrdUnknown = errors.New("[ASTERIX Error] CART ORD Unknown")
)
View Source
var (
	// ErrCharUnknown reports which not found equivalent International Alphabet 5 char.
	ErrCharUnknown = errors.New("[ASTERIX Error] char unknown")
)
View Source
var ErrTypeUnknown = errors.New("[ASTERIX Error CAT034] Message TYPE Unknown")
View Source
var TableIA5 = map[uint8]string{
	uint8(1):  "A",
	uint8(2):  "B",
	uint8(3):  "C",
	uint8(4):  "D",
	uint8(5):  "E",
	uint8(6):  "F",
	uint8(7):  "G",
	uint8(8):  "H",
	uint8(9):  "I",
	uint8(10): "J",
	uint8(11): "K",
	uint8(12): "L",
	uint8(13): "M",
	uint8(14): "N",
	uint8(15): "O",
	uint8(16): "P",
	uint8(17): "Q",
	uint8(18): "R",
	uint8(19): "S",
	uint8(20): "T",
	uint8(21): "U",
	uint8(22): "V",
	uint8(23): "W",
	uint8(24): "X",
	uint8(25): "Y",
	uint8(26): "Z",
	uint8(32): " ",
	uint8(48): "0",
	uint8(49): "1",
	uint8(50): "2",
	uint8(51): "3",
	uint8(52): "4",
	uint8(53): "5",
	uint8(54): "6",
	uint8(55): "7",
	uint8(56): "8",
	uint8(57): "9",
}

TableIA5 International Alphabet 5 A - Z = 1 - 26 0 - 9 = 48 - 57 space : 32

View Source
var TableLWV1 = map[uint32]LengthWidth{
	uint32(0):  LengthWidth{Length: "L < 15", Width: "W < 11.5"},
	uint32(1):  LengthWidth{Length: "L < 15", Width: "W < 23"},
	uint32(2):  LengthWidth{Length: "L < 25", Width: "W < 28.5"},
	uint32(3):  LengthWidth{Length: "L < 25", Width: "W < 34"},
	uint32(4):  LengthWidth{Length: "L < 35", Width: "W < 33"},
	uint32(5):  LengthWidth{Length: "L < 35", Width: "W < 38"},
	uint32(6):  LengthWidth{Length: "L < 45", Width: "W < 39.5"},
	uint32(7):  LengthWidth{Length: "L < 45", Width: "W < 45"},
	uint32(8):  LengthWidth{Length: "L < 55", Width: "W < 45"},
	uint32(9):  LengthWidth{Length: "L < 55", Width: "W < 52"},
	uint32(10): LengthWidth{Length: "L < 65", Width: "W < 59.5"},
	uint32(11): LengthWidth{Length: "L < 65", Width: "W < 67"},
	uint32(12): LengthWidth{Length: "L < 75", Width: "W < 72.5"},
	uint32(13): LengthWidth{Length: "L < 75", Width: "W < 80"},
	uint32(14): LengthWidth{Length: "L < 85", Width: "W < 80"},
	uint32(15): LengthWidth{Length: "L < 85", Width: "W > 80"},
}
View Source
var TableLWV2 = map[uint32]LengthWidth{
	uint32(0):  LengthWidth{Length: "L < 15", Width: "W < 11.5"},
	uint32(1):  LengthWidth{Length: "L < 15", Width: "W < 23"},
	uint32(2):  LengthWidth{Length: "L < 25", Width: "W < 28.5"},
	uint32(3):  LengthWidth{Length: "L < 25", Width: "W < 34"},
	uint32(4):  LengthWidth{Length: "L < 35", Width: "W < 33"},
	uint32(5):  LengthWidth{Length: "L < 35", Width: "W < 38"},
	uint32(6):  LengthWidth{Length: "L < 45", Width: "W < 39.5"},
	uint32(7):  LengthWidth{Length: "L < 45", Width: "W < 45"},
	uint32(8):  LengthWidth{Length: "L < 55", Width: "W < 45"},
	uint32(9):  LengthWidth{Length: "L < 55", Width: "W < 52"},
	uint32(10): LengthWidth{Length: "L < 65", Width: "W < 59.5"},
	uint32(11): LengthWidth{Length: "L < 65", Width: "W < 67"},
	uint32(12): LengthWidth{Length: "L < 75", Width: "W < 72.5"},
	uint32(13): LengthWidth{Length: "L < 75", Width: "W < 80"},
	uint32(14): LengthWidth{Length: "L < 85", Width: "W < 80"},
	uint32(15): LengthWidth{Length: "L > 85", Width: "W > 80"},
}

Functions

func FlipEndianness added in v0.4.0

func FlipEndianness(bytes []byte) []byte

func JSONMarshal added in v0.4.0

func JSONMarshal(v interface{}) ([]byte, error)

func WriteModel

func WriteModel(w Writer, record goasterix.Record)

func WriteModelJSON

func WriteModelJSON(w Writer, record goasterix.Record) (j []byte, err error)

func WriteModelXML

func WriteModelXML(w Writer, record goasterix.Record) (x []byte, err error)

Types

type ACASCapaFlightStatus

type ACASCapaFlightStatus struct {
	COM  string `json:"com"`
	STAT string `json:"stat"`
	SI   string `json:"si"`
	MSSC string `json:"mssc"`
	ARC  string `json:"arc"`
	AIC  string `json:"aic"`
	B1A  string `json:"b1a"`
	B1B  string `json:"b1b"`
}

type ACASResolutionAdvisoryReport added in v0.4.0

type ACASResolutionAdvisoryReport struct {
	TYP  int8  `json:"typ,omitempty"`
	STYP int8  `json:"styp,omitempty"`
	ARA  int16 `json:"ara,omitempty"`
	RAC  int16 `json:"rac,omitempty"`
	RAT  int16 `json:"rat,omitempty"`
	MTE  int16 `json:"mte,omitempty"`
	TTI  int8  `json:"tti,omitempty"`
	TID  int32 `json:"tid,omitempty"`
}

type Acceleration added in v0.3.0

type Acceleration struct {
	Ax float32 `json:"ax,omitempty"`
	Ay float32 `json:"ay,omitempty"`
}

type AirSpeed added in v0.4.0

type AirSpeed struct {
	IM       string  `json:"im,omitempty"`
	AirSpeed float64 `json:"airspeed,omitempty"`
}

type AirborneGroundVector added in v0.4.0

type AirborneGroundVector struct {
	RE          string  `json:"re,omitempty"`
	GroundSpeed float64 `json:"groundspeed,omitempty"`
	TrackAngle  float64 `json:"trackangle,omitempty"`
}

type AircraftIdentification added in v0.4.0

type AircraftIdentification struct {
	AircraftIdentifier                 string                     `json:"aircraftIdentifier,omitempty"`
	Mode3ACodeAircraft                 string                     `json:"mode3ACodeAircraft,omitempty"`
	PredictedConflictPositionWGS84     *ConflictPositionWGS84     `json:"predictedConflictPosition,omitempty"`
	PredictedConflictPositionCartesian *ConflictPositionCartesian `json:"predictedConflictPositionCartesian,omitempty"`
	TimeToThreshold                    float64                    `json:"timeToThreshold,omitempty"`
	DistanceToThreshold                float64                    `json:"DistanceToThreshold,omitempty"`
	ModeSIdentifier                    string                     `json:"modeSIdentifier,omitempty"`
	FlightPlanNumber                   uint32                     `json:"flightPlanNumber,omitempty"`
	ClearedFlightLevel                 float64                    `json:"clearedFlightLevel,omitempty"`
	AircraftCharacteristics            *Characteristics           `json:"aircraftCharacteristics,omitempty"`
}

AircraftIdentification Identification & Characteristics of Aircraft 1 Involved in the Conflict.

type AircraftOperationStatus added in v0.4.0

type AircraftOperationStatus struct {
	RA      string `json:"ra,omitempty"`
	TC      string `json:"tc,omitempty"`
	TS      string `json:"ts,omitempty"`
	ARV     string `json:"arv,omitempty"`
	CDTIA   string `json:"cdtia,omitempty"`
	NotTCAS string `json:"nottcas,omitempty"`
	SA      string `json:"sa,omitempty"`
}

type Altic

type Altic struct {
	QNC int16 `json:"qnc,omitempty"`
	Alt int16 `json:"alt,omitempty"`
}

type AreaDefinition added in v0.4.0

type AreaDefinition struct {
	AreaName            string `json:"areaName,omitempty"`
	CrossingAreaName    string `json:"crossingAreaName,omitempty"`
	RunwayDesignatorOne string `json:"runwayDesignatorOne,omitempty"`
	RunwayDesignatorTwo string `json:"runwayDesignatorTwo,omitempty"`
	StopBarDesignator   string `json:"stopBarDesignator,omitempty"`
	GateDesignator      string `json:"gateDesignator,omitempty"`
}

type BarometricAltitude added in v0.3.0

type BarometricAltitude struct {
	QNH      string  `json:"qnh,omitempty"`
	Altitude float64 `json:"altitude,omitempty"`
}

type BiaisRadar

type BiaisRadar struct {
	SacSic        SourceIdentifier `json:"sourceIdentifier"`
	GainDistance  float64          `json:"gainDistance"`
	BiaisDistance float64          `json:"biaisDistance"`
	BiaisAzimut   float64          `json:"biaisAzimut"`
	BiaisDatation float64          `json:"biaisDatation"`
}

type CarteActive

type CarteActive struct {
	Nom string `json:"nom"`
	Ord string `json:"ord"`
}

type CartesianXYPosition

type CartesianXYPosition struct {
	X float64 `json:"x"`
	Y float64 `json:"y"`
}

type Cat004Model added in v0.3.2

type Cat004Model struct {
	SacSic                   *SourceIdentifier         `json:"sourceIdentifier,omitempty"`
	MessageType              *MsgType                  `json:"messageType,omitempty"`
	SDPSIdentifier           []SourceIdentifier        `json:"sdpsIdentifier,omitempty"`
	TimeOfMessage            float64                   `json:"timeOfMessage,omitempty"`
	AlertIdentifier          uint16                    `json:"alertIdentifier"`
	AlertStatus              uint8                     `json:"alertStatus"`
	TrackNumberOne           uint16                    `json:"trackNumberOne,omitempty"`
	VerticalDeviation        int16                     `json:"verticalDeviation,omitempty"`
	AreaDefinition           *AreaDefinition           `json:"areaDefinition,omitempty"`
	TransversalDeviation     float32                   `json:"transversalDeviation,omitempty"`
	ConflictCharacteristics  *ConflictCharacteristics  `json:"conflictCharacteristics,omitempty"`
	ConflictTimingSeparation *ConflictTimingSeparation `json:"ConflictTimingSeparation,omitempty"`
	AircraftOne              *AircraftIdentification   `json:"aircraftOne,omitempty"`
	AircraftTwo              *AircraftIdentification   `json:"aircraftTwo,omitempty"`
	TrackNumberTwo           uint16                    `json:"trackNumberTwo,omitempty"`
}

type Cat021Model added in v0.4.0

type Cat021Model struct {
	AircraftOperationStatus                        *AircraftOperationStatus               `json:"aircraftOperationStatus,omitempty"`
	DataSourceIdentification                       *SourceIdentifier                      `json:"DataSourceIdentification,omitempty"`
	ServiceIdentification                          byte                                   `json:"ServiceIdentification,omitempty"`
	ServiceManagement                              float32                                `json:"ServiceManagement,omitempty"`
	EmitterCategory                                string                                 `json:"EmitterCategory,omitempty"`
	TargetReportDescriptor                         *TargetReportDescriptor                `json:"TargetReportDescriptor,omitempty"`
	Mode3ACode                                     *Mode3ACodeInOctal                     `json:"Mode3ACode,omitempty"`
	TimeOfApplicabilityForPosition                 float64                                `json:"timeOfApplicabilityForPosition,omitempty"`
	TimeOfApplicabilityForVelocity                 float64                                `json:"timeOfApplicabilityForVelocity,omitempty"`
	TimeOfMessageReceptionForPosition              float64                                `json:"TimeOfMessageReceptionForPosition,omitempty"`
	TimeOfMessageReceptionForPositionHighPrecision *TimeOfDayHighPrecision                `json:"TimeOfMessageReceptionForPositionHighPrecision,omitempty"`
	TimeOfMessageReceptionForVelocity              float64                                `json:"TimeOfMessageReceptionForVelocity,omitempty"`
	TimeOfMessageReceptionForVelocityHighPrecision *TimeOfDayHighPrecision                `json:"TimeOfMessageReceptionForVelocityHighPrecision,omitempty"`
	TimeOfReportTransmission                       float64                                `json:"TimeOfReportTransmission,omitempty"`
	TargetAddress                                  string                                 `json:"TargetAddress,omitempty"`
	QualityIndicators                              *QualityIndicators                     `json:"QualityIndicators,omitempty"`
	TrajectoryIntent                               string                                 `json:"TrajectoryIntent,omitempty"`
	PositionWGS84                                  *WGS84Coordinates                      `json:"PositionWGS84,omitempty"`
	PositionWGS84HighRes                           *WGS84Coordinates                      `json:"PositionWGS84HighRes,omitempty"`
	MessageAmplitude                               int16                                  `json:"MessageAmplitude,omitempty"`
	GeometricHeight                                *GeometricHeight                       `json:"GeometricHeight,omitempty"`
	FlightLevel                                    float32                                `json:"FlightLevel,omitempty"`
	SelectedAltitude                               *SelectedAltitude                      `json:"SelectedAltitude,omitempty"`
	FinalStateSelectedAltitude                     *StateSelectedAltitude                 `json:"FinalStateSelectedAltitude,omitempty"`
	AirSpeed                                       *AirSpeed                              `json:"AirSpeed,omitempty"`
	TrueAirSpeed                                   *TrueAirSpeed                          `json:"TrueAirSpeed,omitempty"`
	MagneticHeading                                float64                                `json:"MagneticHeading,omitempty"`
	BarometricVerticalRate                         *VerticalRate                          `json:"BarometricVerticalRate,omitempty"`
	GeometricVerticalRate                          float64                                `json:"GeometricVerticalRate,omitempty"`
	AirborneGroundVector                           *AirborneGroundVector                  `json:"AirborneGroundVector,omitempty"`
	TrackNumber                                    uint16                                 `json:"TrackNumber,omitempty"`
	TrackAngleRate                                 float32                                `json:"TrackAngleRate,omitempty"`
	TargetIdentification                           string                                 `json:"TargetIdentification,omitempty"`
	TargetStatus                                   *TargetStatus                          `json:"TargetStatus,omitempty"`
	MOPSVersion                                    *MOPSVersion                           `json:"MOPSVersion,omitempty"`
	MetInformation                                 string                                 `json:"MetInformation,omitempty"`
	RollAngle                                      float64                                `json:"RollAngle,omitempty"`
	ModeSMBData                                    *ModeSMBData                           `json:"ModeSMBData,omitempty"`
	ACASResolutionAdvisoryReport                   *ACASResolutionAdvisoryReport          `json:"ACASResolutionAdvisoryReport,omitempty"`
	SurfaceCapabilitiesAndCharacteristic           *SurfaceCapabilitiesAndCharacteristics `json:"surfacecapabilitiesAndCharacteristics,omitempty"`
	ReceiverID                                     uint8                                  `json:"ReceiverID,omitempty"`
}

type Cat030STRModel

type Cat030STRModel struct {
	SacSic    *SourceIdentifier    `json:"sourceIdentifier,omitempty"`
	Num       *NumPiste            `json:"num,omitempty"`
	Hptu      float64              `json:"hptu,omitempty"`
	Pist      *Pist                `json:"pist,omitempty"`
	Alis      *ModeA               `json:"alis,omitempty"`
	Pos       *CartesianXYPosition `json:"pos,omitempty"`
	Qual      uint8                `json:"qual,omitempty"`
	Flpc      *Flstr               `json:"flpc,omitempty"`
	Flpm      *Flstr               `json:"flpm,omitempty"`
	Vit       *Vit                 `json:"vit,omitempty"`
	Mov       *Mov                 `json:"mov,omitempty"`
	Taux      float64              `json:"taux,omitempty"`
	Spe       *Spe                 `json:"spe,omitempty"`
	RadSacSic *SourceIdentifier    `json:"radSacSic,omitempty"`
	Ivol      string               `json:"ivol,omitempty"`
	Pln       uint16               `json:"pln,omitempty"`
	Av        string               `json:"av,omitempty"`
	Turb      string               `json:"turb,omitempty"`
	Terd      string               `json:"terd,omitempty"`
	Tera      string               `json:"tera,omitempty"`
	Altic     *Altic               `json:"altic,omitempty"`
	Adrs      string               `json:"adrs,omitempty"`
	Ids       string               `json:"ids,omitempty"`
}

type Cat034Model

type Cat034Model struct {
	SacSic                 *SourceIdentifier   `json:"sourceIdentifier,omitempty"`
	MessageType            string              `json:"messageType,omitempty"`
	TimeOfDay              float64             `json:"timeOfDay,omitempty"`
	SectorNumber           float64             `json:"sectorNumber,omitempty"`
	AntennaRotationSpeed   float64             `json:"antennaRotationSpeed,omitempty"`
	SystemConfiguration    *SysConf            `json:"systemConfiguration,omitempty"`
	SystemProcessingMode   *SysProcess         `json:"systemProcessingMode,omitempty"`
	MessageCountValues     []MessageCounter    `json:"messageCountValues,omitempty"`
	GenericPolarWindow     *GenericPolarWindow `json:"genericPolarWindow,omitempty"`
	DataFilter             string              `json:"dataFilter,omitempty"`
	Position3DofDataSource *Pos3D              `json:"position3DofDataSource,omitempty"`
	CollimationError       *collimationError   `json:"collimationError,omitempty"`
	REDataItem             string              `json:"reDataItem,omitempty"`
	SPDataItem             string              `json:"spDataItem,omitempty"`
}

type Cat048Model

type Cat048Model struct {
	SacSic                        *SourceIdentifier     `json:"sourceIdentifier,omitempty"`
	AircraftAddress               string                `json:"aircraftAddress,omitempty"`
	AircraftIdentification        string                `json:"aircraftIdentification,omitempty"`
	TimeOfDay                     float64               `json:"timeOfDay,omitempty"`
	RhoTheta                      *PolarPosition        `json:"rhoTheta,omitempty"`
	CartesianXY                   *CartesianXYPosition  `json:"cartesianXY,omitempty"`
	FlightLevel                   *FL                   `json:"flightLevel,omitempty"`
	RadarPlotCharacteristics      *PlotCharacteristics  `json:"radarPlotCharacteristics,omitempty"`
	Mode3ACode                    *Mode3A               `json:"mode3ACode,omitempty"`
	TrackNumber                   uint16                `json:"trackNumber,omitempty"`
	TrackVelocity                 *Velocity             `json:"trackVelocity,omitempty"`
	TrackStatus                   *Status               `json:"trackStatus,omitempty"`
	BDSRegisterData               []*commbds.Bds        `json:"bdsRegisterData,omitempty"`
	ComACASCapabilityFlightStatus *ACASCapaFlightStatus `json:"comAcasCapabilityFlightStatus,omitempty"`
}

type Cat062Model added in v0.3.0

type Cat062Model struct {
	SacSic                *SourceIdentifier    `json:"sourceIdentifier,omitempty"`
	ServiceIdentification uint8                `json:"serviceIdentification,omitempty"`
	TimeOfDay             float64              `json:"timeOfDay,omitempty"`
	TrackPositionWGS84    *PositionWGS84       `json:"trackPositionWGS84"`
	CartesianXY           *CartesianXYPosition `json:"cartesianXY,omitempty"`
	TrackVelocity         *TrackVelocity       `json:"trackVelocity,omitempty"`
	Acceleration          *Acceleration        `json:"acceleration,omitempty"`
	Mode3ACode            *TrackMode3A         `json:"mode3ACode,omitempty"`
	TargetIdentification  *TargetIdent         `json:"targetIdentification,omitempty"`
	AircraftDerivedData   *DerivedData         `json:"aircraftDerivedData,omitempty"`
	TrackNumber           uint16               `json:"trackNumber,omitempty"`
	TrackStatus           *TrackStatus         `json:"trackStatus,omitempty"`
	ModeOfMovement        *ModeMov             `json:"modeOfmovement,omitempty"`
	FlightLevel           float32              `json:"flightLevel,omitempty"`
	GeometricAltitude     float32              `json:"geometricAltitude,omitempty"`
	BarometricAltitude    *BarometricAltitude  `json:"barometricAltitude,omitempty"`
	RateOfClimbDescent    float32              `json:"rateOfClimbDescent,omitempty"`
}

type Cat063Model added in v0.3.2

type Cat063Model struct {
	SacSic                SourceIdentifier `json:"dataSourceIdentifier"`
	TimeOfMessage         float64          `json:"timeOfMessage"`
	ServiceIdentification uint8            `json:"serviceIdentification,omitempty"`
	SensorIdentifier      SourceIdentifier `json:"sensorIdentifier"`
	SensorConfigStatus    *SensorStatus    `json:"sensorConfigStatus,omitempty"`
	TimeStampingBias      int16            `json:"timeStampingBias"`
	ModeSRangeGainAndBias *ModeSRange      `json:"modeSRangeGainAndBias,omitempty"`
	SSRModeSAzimuthBias   float64          `json:"ssrModeSAzimuthBias,omitempty"`
	PSRRangeGainAndBias   *PSRRange        `json:"psrRangeGainAndBias,omitempty"`
	PSRAzimuthBias        float64          `json:"psrAzimuthBias,omitempty"`
	PSRElevationBias      float64          `json:"psrElevationBias,omitempty"`
}

type Cat255STRModel

type Cat255STRModel struct {
	SacSic *SourceIdentifier `json:"SourceIdentifier,omitempty"`
	Hem    float64           `json:"hem,omitempty"`
	Spe    *PresenceSTPV     `json:"spe,omitempty"`
	Nivc   *NivC             `json:"nivc,omitempty"`
	Txtc   string            `json:"txtc,omitempty"`
	Cart   *CarteActive      `json:"cart,omitempty"`
	Biais  []BiaisRadar      `json:"biais,omitempty"`
}

type Characteristics added in v0.4.0

type Characteristics struct {
	AT   string `json:"at"`
	FR   string `json:"fr"`
	RVSM string `json:"rvsm"`
	HPR  string `json:"hpr"`
	CDM  string `json:"cdm,omitempty"`
	PRI  string `json:"pri,omitempty"`
	GV   string `json:"gv,omitempty"`
}

type ComSysConf

type ComSysConf struct {
	Nogo   string `json:"nogo"`
	Rdpc   string `json:"rdpc"`
	Rdpr   string `json:"rdpr"`
	Ovlrdp string `json:"ovlrdp"`
	Ovlxmt string `json:"ovlxmt"`
	Msc    string `json:"msc"`
	Tsv    string `json:"tsv"`
}

type ComSysPro

type ComSysPro struct {
	Redrdp string `json:"redrdp"`
	Redxmt string `json:"redxmt"`
}

type ConflictCharacteristics added in v0.4.0

type ConflictCharacteristics struct {
	ConflictNature         *ConflictNature         `json:"conflictNature,omitempty"`
	ConflictClassification *ConflictClassification `json:"ConflictClassification,omitempty"`
	ConflictProbability    float32                 `json:"conflictProbability,omitempty"`
	ConflictDuration       float64                 `json:"conflictDuration,omitempty"`
}

type ConflictClassification added in v0.4.0

type ConflictClassification struct {
	TableId            uint8  `json:"tableId"`
	ConflictProperties uint8  `json:"conflictProperties"`
	CS                 string `json:"cs"`
}

type ConflictNature added in v0.4.0

type ConflictNature struct {
	MAS      string `json:"mas"`
	CAS      string `json:"cas"`
	FLD      string `json:"fld"`
	FVD      string `json:"fvd"`
	Type     string `json:"type"`
	Cross    string `json:"cross"`
	Div      string `json:"div"`
	RRC      string `json:"rrc,omitempty"`
	RTC      string `json:"rtc,omitempty"`
	MRVA     string `json:"mrva,omitempty"`
	VRAMCRM  string `json:"vramcrm,omitempty"`
	VRAMVRM  string `json:"vramvrm,omitempty"`
	VRAMVTM  string `json:"vramvtm,omitempty"`
	HAMHD    string `json:"hamhd,omitempty"`
	HAMRD    string `json:"hamrd,omitempty"`
	HAMVD    string `json:"hamvd,omitempty"`
	DBPSMARR string `json:"dbpsmarr,omitempty"`
	DBPSMDEP string `json:"dbpsmdep,omitempty"`
	DBPSMTL  string `json:"dbpsmtl,omitempty"`
	AIW      string `json:"aiw,omitempty"`
}

type ConflictPositionCartesian added in v0.4.0

type ConflictPositionCartesian struct {
	X float64 `json:"x"`
	Y float64 `json:"y"`
	Z int32   `json:"z"`
}

type ConflictPositionWGS84 added in v0.4.0

type ConflictPositionWGS84 struct {
	Latitude  float64 `json:"latitude"`
	Longitude float64 `json:"longitude"`
	Altitude  int32   `json:"altitude"`
}

type ConflictTimingSeparation added in v0.4.0

type ConflictTimingSeparation struct {
	TimeToConflict              float64 `json:"timeToConflict,omitempty"`
	TimeToClosestApproach       float64 `json:"timeToClosestApproach,omitempty"`
	CurrentHorizontalSeparation float64 `json:"currentHorizontalSeparation,omitempty"`
	MinimumHorizontalSeparation float64 `json:"minimumHorizontalSeparation,omitempty"`
	CurrentVerticalSeparation   uint32  `json:"currentVerticalSeparation,omitempty"`
	MinimumVerticalSeparation   uint32  `json:"minimumVerticalSeparation,omitempty"`
}

type DerivedData added in v0.3.0

type DerivedData struct {
	TargetAddress         string                 `json:"targetAddress,omitempty"`
	TargetIdentification  string                 `json:"targetIdentification,omitempty"`
	MagneticHeading       float64                `json:"magneticHeading,omitempty"`
	IndicatedAirspeedOld  *IAS                   `json:"indicatedAirspeedOld,omitempty"`
	AirSpeed              uint16                 `json:"airSpeed,omitempty"`
	SelectedAltitude      *SelectedAltitude      `json:"selectedAltitude,omitempty"`
	StateSelectedAltitude *StateSelectedAltitude `json:"stateSelectedAltitude,omitempty"`
	MachNumber            float64                `json:"machNumber,omitempty"`
	IndicatedAirSpeed     float64                `json:"indicatedAirSpeed,omitempty"`
}

type FL

type FL struct {
	V     string  `json:"v"`
	G     string  `json:"g"`
	Level float64 `json:"level"`
}

FL Flight Level, unit of altitude (expressed in 100's of feet)

type FirstExtensionQI added in v0.4.0

type FirstExtensionQI struct {
	NICBaro int                `json:"nicbaro,omitempty"`
	SIL     int                `json:"sil,omitempty"`
	NACp    int                `json:"nacp,omitempty"`
	FX      *SecondExtensionQI `json:"fx,omitempty"`
}

type FirstExtensionSCC added in v0.4.0

type FirstExtensionSCC struct {
	LW LengthWidth        `json:"lw,omitempty"`
	FX *FirstExtensionSCC `json:"firstextension,omitempty"`
}

type FirstExtensionTRD added in v0.4.0

type FirstExtensionTRD struct {
	DCR             string              `json:"dcr,omitempty"`
	GBS             string              `json:"gbs,omitempty"`
	SIM             string              `json:"sim,omitempty"`
	TST             string              `json:"tst,omitempty"`
	SAA             string              `json:"saa,omitempty"`
	CL              string              `json:"cl,omitempty"`
	SecondExtension *SecondExtensionTRD `json:"fx,omitempty"`
}

type Flstr added in v0.2.0

type Flstr struct {
	Vc        string  `json:"vc"`
	Gc        string  `json:"gc"`
	NiveauVol float64 `json:"niveauVol"`
}

type GenericPolarWindow

type GenericPolarWindow struct {
	RhoStart   float64 `json:"rhoStart"`
	RhoEnd     float64 `json:"rhoEnd"`
	ThetaStart float64 `json:"thetaStart"`
	ThetaEnd   float64 `json:"thetaEnd"`
}

type GeometricHeight added in v0.4.0

type GeometricHeight struct {
	Height      float64 `json:"height,omitempty"`
	GreaterThan bool    `json:"greaterthan,omitempty"`
}

type IAS added in v0.3.0

type IAS struct {
	IM       string  `json:"im"`
	AirSpeed float64 `json:"airSpeed"`
}

type LengthWidth added in v0.4.0

type LengthWidth struct {
	Length string
	Width  string
}

type MOPSVersion added in v0.4.0

type MOPSVersion struct {
	VNS string `json:"vns,omitempty"`
	VN  string `json:"vn,omitempty"`
	LTT string `json:"ltt,omitempty"`
}

type MdsSysConf

type MdsSysConf struct {
	Ant    string `json:"ant"`
	ChAB   string `json:"chAB"`
	Ovlsur string `json:"ovlsur"`
	Msc    string `json:"msc"`
	Scf    string `json:"scf"`
	Dlf    string `json:"dlf"`
	Ovlscf string `json:"ovlscf"`
	Ovldlf string `json:"ovldlf"`
}

type MdsSysPro

type MdsSysPro struct {
	Redrad string `json:"redrad"`
	Clu    string `json:"clu"`
}

type MessageCounter

type MessageCounter struct {
	Type    string `json:"type"`
	Counter uint16 `json:"counter"`
}

type Mode3A

type Mode3A struct {
	Squawk string `json:"squawk"`
	V      string `json:"v"`
	G      string `json:"g"`
	L      string `json:"l"`
}

type Mode3ACodeInOctal added in v0.4.0

type Mode3ACodeInOctal struct {
	A4 int `json:"a4,omitempty"`
	A2 int `json:"a2,omitempty"`
	A1 int `json:"a1,omitempty"`
	B4 int `json:"b4,omitempty"`
	B2 int `json:"b2,omitempty"`
	B1 int `json:"b1,omitempty"`
	C4 int `json:"c4,omitempty"`
	C2 int `json:"c2,omitempty"`
	C1 int `json:"c1,omitempty"`
	D4 int `json:"d4,omitempty"`
	D2 int `json:"d2,omitempty"`
	D1 int `json:"d1,omitempty"`
}

type ModeA

type ModeA struct {
	V    string `json:"v"`
	G    string `json:"g"`
	C    string `json:"c"`
	Code uint16 `json:"code"`
}

type ModeMov added in v0.3.2

type ModeMov struct {
	TRANS string `json:"trans"`
	LONG  string `json:"long"`
	VERT  string `json:"vert"`
	ADF   string `json:"adf"`
}

type ModeSMB

type ModeSMB struct {
	Rep  uint8
	BDSs []*commbds.Bds
}

func (*ModeSMB) Decode

func (mb *ModeSMB) Decode(data []byte) (err error)

type ModeSMBData added in v0.4.0

type ModeSMBData struct {
	REP  int8   `json:"rep,omitempty"`
	MB   string `json:"mb,omitempty"`
	BDS1 int16  `json:"bds1,omitempty"`
	BDS2 int8   `json:"bds2,omitempty"`
}

type ModeSRange added in v0.3.2

type ModeSRange struct {
	SRG float64 `json:"srg"`
	SRB float64 `json:"srb"`
}

type Mov

type Mov struct {
	Trans string `json:"trans,omitempty"`
	Longi string `json:"longi,omitempty"`
	Verti string `json:"verti,omitempty"`
}

type MsgType added in v0.3.2

type MsgType struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type NIC_Version2OrHigher added in v0.4.0

type NIC_Version2OrHigher struct {
	NIC int    `json:"nic,omitempty"`
	AB  string `json:"ab,omitempty"`
	AC  string `json:"ac,omitempty"`
}

type NivC

type NivC struct {
	NivInf int16 `json:"nivinf"`
	NivSup int16 `json:"nivsup"`
}

type NumPiste

type NumPiste struct {
	Version uint8  `json:"version"`
	Nap     uint8  `json:"nap"`
	ST      string `json:"st"`
	NS      string `json:"ns"`
	Numero  uint16 `json:"numero"`
}

type PIC added in v0.4.0

type PIC struct {
	PIC                       int                   `json:"pic,omitempty"`
	IntegrityContainmentBound float64               `json:"integritycontainmentbound,omitempty"`
	NUCp                      int                   `json:"nucp,omitempty"`
	NIC_DO260A                string                `json:"nic_do260a,omitempty"`
	NIC_Version2OrHigher      *NIC_Version2OrHigher `json:"nic_version2orhigher,omitempty"`
}

type PSRRange added in v0.3.2

type PSRRange struct {
	PRG float64 `json:"prg"`
	PRB float64 `json:"prb"`
}

type Pist

type Pist struct {
	Liv    string `json:"liv,omitempty"`
	Cnf    string `json:"cnf,omitempty"`
	Man    string `json:"man,omitempty"`
	Tva    string `json:"tva,omitempty"`
	Type   string `json:"type,omitempty"`
	Mort   string `json:"mort,omitempty"`
	Cre    string `json:"cre,omitempty"`
	Slr    string `json:"slr,omitempty"`
	Cor    string `json:"cor,omitempty"`
	Ds1ds2 string `json:"ds1ds2,omitempty"`
	For    string `json:"for,omitempty"`
	Ama    string `json:"ama,omitempty"`
	Spi    string `json:"spi,omitempty"`
	Me     string `json:"me,omitempty"`
}

type PlotCharacteristics

type PlotCharacteristics struct {
	SRL float64 `json:"srl,omitempty"`
	SRR uint8   `json:"srr,omitempty"`
	SAM int8    `json:"sam,omitempty"`
	PRL float64 `json:"prl,omitempty"`
	PAM int8    `json:"pam,omitempty"`
	RPD float64 `json:"rpd,omitempty"`
	APD float64 `json:"apd,omitempty"`
}

type PolarPosition

type PolarPosition struct {
	Rho   float64 `json:"rho"`
	Theta float64 `json:"theta"`
}

type Pos3D

type Pos3D struct {
	Latitude  float32 `json:"latitude,omitempty"`
	Longitude float32 `json:"longitude,omitempty"`
	Height    uint16  `json:"height,omitempty"`
}

type PositionWGS84 added in v0.3.0

type PositionWGS84 struct {
	Latitude  float64 `json:"latitude"`
	Longitude float64 `json:"longitude"`
}

type PresenceSTPV

type PresenceSTPV struct {
	Version uint8  `json:"version"`
	Nap     uint8  `json:"nap"`
	NS      string `json:"ns"`
	ST      string `json:"st,omitempty"`
	PS      string `json:"ps,omitempty"`
}

type PsrSsrSysConf

type PsrSsrSysConf struct {
	Ant  string `json:"ant"`
	ChAB string `json:"chAB"`
	Ovl  string `json:"ovl"`
	Msc  string `json:"msc"`
}

type PsrSysPro

type PsrSysPro struct {
	Pol    string `json:"pol"`
	Redrad string `json:"redrad"`
	Stc    string `json:"stc"`
}

type QualityIndicators added in v0.4.0

type QualityIndicators struct {
	NUCrOrNACv int               `json:"nucrornacv,omitempty"`
	NUCpOrNIC  int               `json:"nucpornic,omitempty"`
	FX         *FirstExtensionQI `json:"fx,omitempty"`
}

type SecondExtensionQI added in v0.4.0

type SecondExtensionQI struct {
	SILS string            `json:"sils,omitempty"`
	SDA  int               `json:"sda,omitempty"`
	GVA  int               `json:"gva,omitempty"`
	FX   *ThirdExtensionQI `json:"thirdextension,omitempty"`
}

type SecondExtensionTRD added in v0.4.0

type SecondExtensionTRD struct {
	LLC            string `json:"llc,omitempty"`
	IPC            string `json:"ipc,omitempty"`
	NOGO           string `json:"nogo,omitempty"`
	CPR            string `json:"cpr,omitempty"`
	LDPJ           string `json:"ldpj,omitempty"`
	RCF            string `json:"rcf,omitempty"`
	ThirdExtension byte   `json:"fx,omitempty"`
}

TODO: Write the potential messages/states in const TODO: Look into next extensions ( not clearly defined by spec)

type SelectedAltitude added in v0.3.0

type SelectedAltitude struct {
	SAS      string  `json:"sas"`
	Source   string  `json:"source"`
	Altitude float64 `json:"altitude"`
}

type SensorStatus added in v0.3.2

type SensorStatus struct {
	CON string `json:"con"`
	PSR string `json:"psr"`
	SSR string `json:"ssr"`
	MDS string `json:"mds"`
	ADS string `json:"ads"`
	MLT string `json:"mlt"`
	OPS string `json:"ops,omitempty"`
	ODP string `json:"odp,omitempty"`
	OXT string `json:"oxt,omitempty"`
	MSC string `json:"msc,omitempty"`
	TSV string `json:"tsv,omitempty"`
	NPW string `json:"npw,omitempty"`
}

type SourceIdentifier

type SourceIdentifier struct {
	Sac uint8 `json:"sac" xml:"sac"`
	Sic uint8 `json:"sic" xml:"sic"`
}

type Spe

type Spe struct {
	SY  uint8 `json:"sy"`
	M   uint8 `json:"m"`
	S   uint8 `json:"s"`
	O1  uint8 `json:"o1"`
	O2  uint8 `json:"o2"`
	O3  uint8 `json:"o3"`
	O4  uint8 `json:"o4"`
	O5  uint8 `json:"o5"`
	O6  uint8 `json:"o6"`
	O7  uint8 `json:"o7"`
	O8  uint8 `json:"o8"`
	O9  uint8 `json:"o9"`
	O10 uint8 `json:"o10"`
	O11 uint8 `json:"o11"`
	O12 uint8 `json:"o12"`
	O13 uint8 `json:"o13"`
	O14 uint8 `json:"o14"`
	O15 uint8 `json:"o15"`
	O16 uint8 `json:"o16"`
	O17 uint8 `json:"o17"`
	O18 uint8 `json:"o18"`
	O19 uint8 `json:"o19"`
	R   uint8 `json:"r"`
	C   uint8 `json:"c"`
}

type SsrSysPro

type SsrSysPro struct {
	Redrad string `json:"redrad"`
}

type StateSelectedAltitude added in v0.3.1

type StateSelectedAltitude struct {
	MV       string  `json:"mv"`
	AH       string  `json:"ah"`
	AM       string  `json:"am"`
	Altitude float64 `json:"altitude"`
}

type Status

type Status struct {
	CNF string `json:"cnf,omitempty"`
	RAD string `json:"rad,omitempty"`
	DOU string `json:"dou,omitempty"`
	MAH string `json:"mah,omitempty"`
	CDM string `json:"cdm,omitempty"`
	TRE string `json:"tre,omitempty"`
	GHO string `json:"gho,omitempty"`
	SUP string `json:"sup,omitempty"`
	TCC string `json:"tcc,omitempty"`
}

type SurfaceCapabilitiesAndCharacteristics added in v0.4.0

type SurfaceCapabilitiesAndCharacteristics struct {
	POA   string             `json:"poa,omitempty"`
	CDTIS string             `json:"cdtis,omitempty"`
	B2Low string             `json:"b2low,omitempty"`
	RAS   string             `json:"ras,omitempty"`
	IDENT string             `json:"ident,omitempty"`
	FX    *FirstExtensionSCC `json:"firstextension,omitempty"`
}

type SysConf

type SysConf struct {
	Com *ComSysConf    `json:"com,omitempty"`
	Psr *PsrSsrSysConf `json:"psr,omitempty"`
	Ssr *PsrSsrSysConf `json:"ssr,omitempty"`
	Mds *MdsSysConf    `json:"mds,omitempty"`
}

type SysProcess

type SysProcess struct {
	ComSysPro *ComSysPro `json:"com,omitempty"`
	Psr       *PsrSysPro `json:"psr,omitempty"`
	Ssr       *SsrSysPro `json:"ssr,omitempty"`
	Mds       *MdsSysPro `json:"mds,omitempty"`
}

type TargetIdent added in v0.3.0

type TargetIdent struct {
	Target string `json:"target,omitempty"`
	STI    string `json:"sti,omitempty"`
}

type TargetReportDescriptor added in v0.4.0

type TargetReportDescriptor struct {
	ATP string             `json:"atp,omitempty"`
	ARC string             `json:"arc,omitempty"`
	RC  string             `json:"rc,omitempty"`
	RAB string             `json:"rab,omitempty"`
	FX  *FirstExtensionTRD `json:"fx,omitempty"`
}

type TargetStatus added in v0.4.0

type TargetStatus struct {
	ICF  string `json:"icf,omitempty"`
	LNAV string `json:"lnav,omitempty"`
	ME   bool   `json:"me,omitempty"`
	PS   string `json:"ps,omitempty"`
	SS   string `json:"ss,omitempty"`
}

type ThirdExtensionQI added in v0.4.0

type ThirdExtensionQI struct {
	PIC *PIC `json:"pic,omitempty"`
	FX  byte `json:"fx,omitempty"`
}

type TimeOfDayHighPrecision added in v0.4.0

type TimeOfDayHighPrecision struct {
	FSI             string  `json:"FSI"`
	TimeOfReception float64 `json:"TimeOfReception"`
}

type TrackMode3A added in v0.3.0

type TrackMode3A struct {
	V      string `json:"v"`
	G      string `json:"g"`
	CH     string `json:"ch"`
	Squawk string `json:"squawk"`
}

type TrackStatus added in v0.3.2

type TrackStatus struct {
	MON string `json:"mon"`
	SPI string `json:"spi"`
	MRH string `json:"mrh"`
	SRC string `json:"src"`
	CNF string `json:"cnf"`
	TrackStatusFirstExtent
	TrackStatusSecondExtent
	TrackStatusThirdExtent
	TrackStatusFourthExtent
	TrackStatusFifthExtent
}

type TrackStatusFifthExtent added in v0.3.2

type TrackStatusFifthExtent struct {
	DUPT string `json:"dupt,omitempty"`
	DUPF string `json:"dupf,omitempty"`
	DUPM string `json:"dupm,omitempty"`
	SFC  string `json:"sfc,omitempty"`
	IDD  string `json:"idd,omitempty"`
	IEC  string `json:"iec,omitempty"`
}

type TrackStatusFirstExtent added in v0.3.2

type TrackStatusFirstExtent struct {
	SIM string `json:"sim,omitempty"`
	TSE string `json:"tse,omitempty"`
	TSB string `json:"tsb,omitempty"`
	FPC string `json:"fpc,omitempty"`
	AFF string `json:"aff,omitempty"`
	STP string `json:"stp,omitempty"`
	KOS string `json:"kos,omitempty"`
}

type TrackStatusFourthExtent added in v0.3.2

type TrackStatusFourthExtent struct {
	SDS  string `json:"sds,omitempty"`
	EMS  string `json:"ems,omitempty"`
	PFT  string `json:"pft,omitempty"`
	FPLT string `json:"fplt,omitempty"`
}

type TrackStatusSecondExtent added in v0.3.2

type TrackStatusSecondExtent struct {
	AMA string `json:"ama,omitempty"`
	MD4 string `json:"md4,omitempty"`
	ME  string `json:"me,omitempty"`
	MI  string `json:"mi,omitempty"`
	MD5 string `json:"md5,omitempty"`
}

type TrackStatusThirdExtent added in v0.3.2

type TrackStatusThirdExtent struct {
	CST string `json:"cst,omitempty"`
	PSR string `json:"psr,omitempty"`
	SSR string `json:"ssr,omitempty"`
	MDS string `json:"mds,omitempty"`
	ADS string `json:"ads,omitempty"`
	SUC string `json:"suc,omitempty"`
	AAC string `json:"aac,omitempty"`
}

type TrackVelocity added in v0.3.0

type TrackVelocity struct {
	Vx float32 `json:"vx,omitempty"`
	Vy float32 `json:"vy,omitempty"`
}

type TrajectoryIntent added in v0.4.0

type TrajectoryIntent struct {
	TIS     string                  `json:"tis,omitempty"`
	TISBody *TrajectoryIntentStatus `json:"tisbody,omitempty"`
	TID     string                  `json:"tid,omitempty"`
	TIDBody *TrajectoryIntentData   `json:"tidbody,omitempty"`
	FX      string                  `json:"fx,omitempty"`
}

type TrajectoryIntentData added in v0.4.0

type TrajectoryIntentData struct {
	REP       int8    `json:"rep,omitempty"`
	TCA       int     `json:"tca,omitempty"`
	NC        int     `json:"nc,omitempty"`
	TCPNumber int     `json:"tcpnumber,omitempty"`
	Latitude  float32 `json:"latitude,omitempty"`
	Longitude float32 `json:"longitude,omitempty"`
	PointType int     `json:"pointtype,omitempty"`
	TD        int     `json:"td,omitempty"`
	TRA       int     `json:"tra,omitempty"`
	TOA       int     `json:"toa,omitempty"`
	TOV       string  `json:"tov,omitempty"`
	TTR       string  `json:"ttr,omitempty"`
}

type TrajectoryIntentStatus added in v0.4.0

type TrajectoryIntentStatus struct {
	NAV string `json:"nav,omitempty"`
	NVB string `json:"nvb,omitempty"`
	FX  int    `json:"fx,omitempty"`
}

type TrueAirSpeed added in v0.4.0

type TrueAirSpeed struct {
	RE    int   `json:"re,omitempty"`
	Speed int16 `json:"speed,omitempty"`
}

type Velocity

type Velocity struct {
	GroundSpeed float64 `json:"groundSpeed"`
	Heading     float64 `json:"heading"`
}

type VerticalRate added in v0.4.0

type VerticalRate struct {
	RE           string  `json:"re,omitempty"`
	VerticalRate float32 `json:"verticalrate,omitempty"`
}

type Vit

type Vit struct {
	X float64 `json:"x"`
	Y float64 `json:"y"`
}

type WGS84Coordinates added in v0.4.0

type WGS84Coordinates struct {
	Latitude  float64 `json:"latitude,omitempty"`
	Longitude float64 `json:"longitude,omitempty"`
}

type Writer

type Writer interface {
	// contains filtered or unexported methods
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL