bindings

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: May 11, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Rendered for windows/amd64

Overview

Package bindings provides Go bindings for the Microsoft Flight Simulator SimConnect SDK (SimConnect.dll). All functions map 1-to-1 to the C API; see the MSFS SimConnect SDK documentation for parameter semantics.

Index

Constants

View Source
const (
	SIMCONNECT_UNUSED                  = uint32(0xFFFFFFFF)
	SIMCONNECT_OBJECT_ID_MAX           = uint32(0xFFFFFFFF) - 128
	SIMCONNECT_OBJECT_ID_USER          = uint32(0)
	SIMCONNECT_OBJECT_ID_USER_AIRCRAFT = uint32(0)
	SIMCONNECT_OBJECT_ID_USER_AVATAR   = SIMCONNECT_OBJECT_ID_MAX + 1
	SIMCONNECT_OBJECT_ID_USER_CURRENT  = SIMCONNECT_OBJECT_ID_MAX + 2

	SIMCONNECT_CLIENTDATA_MAX_SIZE = uint32(8192)

	SIMCONNECT_CAMERA_IGNORE_FIELD = float32(3.4028234663852886e+38)

	SIMCONNECT_GROUP_PRIORITY_HIGHEST          = uint32(1)
	SIMCONNECT_GROUP_PRIORITY_HIGHEST_MASKABLE = uint32(10000000)
	SIMCONNECT_GROUP_PRIORITY_STANDARD         = uint32(1900000000)
	SIMCONNECT_GROUP_PRIORITY_DEFAULT          = uint32(2000000000)
	SIMCONNECT_GROUP_PRIORITY_LOWEST           = uint32(4000000000)

	MAX_METAR_LENGTH = uint32(2000)
	MAX_THERMAL_SIZE = float32(100000)
	MAX_THERMAL_RATE = float32(1000)

	// AddToClientDataDefinition dwSizeOrType special values (stored as DWORD, so cast from -N)
	SIMCONNECT_CLIENTDATATYPE_INT8    = ^uint32(0) // -1
	SIMCONNECT_CLIENTDATATYPE_INT16   = ^uint32(1) // -2
	SIMCONNECT_CLIENTDATATYPE_INT32   = ^uint32(2) // -3
	SIMCONNECT_CLIENTDATATYPE_INT64   = ^uint32(3) // -4
	SIMCONNECT_CLIENTDATATYPE_FLOAT32 = ^uint32(4) // -5
	SIMCONNECT_CLIENTDATATYPE_FLOAT64 = ^uint32(5) // -6

	SIMCONNECT_CLIENTDATAOFFSET_AUTO  = ^uint32(0) // -1
	SIMCONNECT_OPEN_CONFIGINDEX_LOCAL = ^uint32(0) // -1

	// INITPOSITION airspeed special values
	INITPOSITION_AIRSPEED_CRUISE = ^uint32(0) // -1
	INITPOSITION_AIRSPEED_KEEP   = ^uint32(1) // -2

	SIMCONNECT_CLOUD_STATE_ARRAY_WIDTH = 64
	SIMCONNECT_CLOUD_STATE_ARRAY_SIZE  = SIMCONNECT_CLOUD_STATE_ARRAY_WIDTH * SIMCONNECT_CLOUD_STATE_ARRAY_WIDTH

	// VOR flags
	SIMCONNECT_RECV_ID_VOR_LIST_HAS_NAV_SIGNAL  = uint32(0x00000001)
	SIMCONNECT_RECV_ID_VOR_LIST_HAS_LOCALIZER   = uint32(0x00000002)
	SIMCONNECT_RECV_ID_VOR_LIST_HAS_GLIDE_SLOPE = uint32(0x00000004)
	SIMCONNECT_RECV_ID_VOR_LIST_HAS_DME         = uint32(0x00000008)

	// Waypoint flags
	SIMCONNECT_WAYPOINT_NONE                   = uint32(0x00)
	SIMCONNECT_WAYPOINT_SPEED_REQUESTED        = uint32(0x04)
	SIMCONNECT_WAYPOINT_THROTTLE_REQUESTED     = uint32(0x08)
	SIMCONNECT_WAYPOINT_COMPUTE_VERTICAL_SPEED = uint32(0x10)
	SIMCONNECT_WAYPOINT_ALTITUDE_IS_AGL        = uint32(0x20)
	SIMCONNECT_WAYPOINT_ON_GROUND              = uint32(0x00100000)
	SIMCONNECT_WAYPOINT_REVERSE                = uint32(0x00200000)
	SIMCONNECT_WAYPOINT_WRAP_TO_FIRST          = uint32(0x00400000)
	SIMCONNECT_WAYPOINT_ALWAYS_BACKUP          = uint32(0x00800000)
	SIMCONNECT_WAYPOINT_KEEP_LAST_HEADING      = uint32(0x01000000)
	SIMCONNECT_WAYPOINT_YIELD_TO_USER          = uint32(0x02000000)
	SIMCONNECT_WAYPOINT_CAN_REVERSE            = uint32(0x04000000)

	// Event flags
	SIMCONNECT_EVENT_FLAG_DEFAULT             = uint32(0x00000000)
	SIMCONNECT_EVENT_FLAG_FAST_REPEAT_TIMER   = uint32(0x00000001)
	SIMCONNECT_EVENT_FLAG_SLOW_REPEAT_TIMER   = uint32(0x00000002)
	SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY = uint32(0x00000010)

	// Data request flags
	SIMCONNECT_DATA_REQUEST_FLAG_DEFAULT = uint32(0x00000000)
	SIMCONNECT_DATA_REQUEST_FLAG_CHANGED = uint32(0x00000001)
	SIMCONNECT_DATA_REQUEST_FLAG_TAGGED  = uint32(0x00000002)

	// Data set flags
	SIMCONNECT_DATA_SET_FLAG_DEFAULT = uint32(0x00000000)
	SIMCONNECT_DATA_SET_FLAG_TAGGED  = uint32(0x00000001)

	// Create client data flags
	SIMCONNECT_CREATE_CLIENT_DATA_FLAG_DEFAULT   = uint32(0x00000000)
	SIMCONNECT_CREATE_CLIENT_DATA_FLAG_READ_ONLY = uint32(0x00000001)

	// Client data request flags
	SIMCONNECT_CLIENT_DATA_REQUEST_FLAG_DEFAULT = uint32(0x00000000)
	SIMCONNECT_CLIENT_DATA_REQUEST_FLAG_CHANGED = uint32(0x00000001)
	SIMCONNECT_CLIENT_DATA_REQUEST_FLAG_TAGGED  = uint32(0x00000002)

	// Client data set flags
	SIMCONNECT_CLIENT_DATA_SET_FLAG_DEFAULT = uint32(0x00000000)
	SIMCONNECT_CLIENT_DATA_SET_FLAG_TAGGED  = uint32(0x00000001)

	// View system event data flags
	SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_2D      = uint32(0x00000001)
	SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_VIRTUAL = uint32(0x00000002)
	SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_ORTHOGONAL      = uint32(0x00000004)

	// Sound system event data flags
	SIMCONNECT_SOUND_SYSTEM_EVENT_DATA_MASTER = uint32(0x00000001)

	// Comm bus broadcast targets
	SIMCONNECT_COMM_BUS_BROADCAST_TO_JS                   = uint32(1 << 0)
	SIMCONNECT_COMM_BUS_BROADCAST_TO_WASM                 = uint32(1 << 1)
	SIMCONNECT_COMM_BUS_BROADCAST_TO_SIMCONNECT           = uint32(1 << 3)
	SIMCONNECT_COMM_BUS_BROADCAST_TO_SIMCONNECT_SELF_CALL = uint32(1 << 4)
	SIMCONNECT_COMM_BUS_BROADCAST_TO_DEFAULT              = SIMCONNECT_COMM_BUS_BROADCAST_TO_JS | SIMCONNECT_COMM_BUS_BROADCAST_TO_WASM | SIMCONNECT_COMM_BUS_BROADCAST_TO_SIMCONNECT
	SIMCONNECT_COMM_BUS_BROADCAST_TO_ALL_SIMCONNECT       = SIMCONNECT_COMM_BUS_BROADCAST_TO_SIMCONNECT | SIMCONNECT_COMM_BUS_BROADCAST_TO_SIMCONNECT_SELF_CALL
	SIMCONNECT_COMM_BUS_BROADCAST_TO_ALL                  = SIMCONNECT_COMM_BUS_BROADCAST_TO_JS | SIMCONNECT_COMM_BUS_BROADCAST_TO_WASM | SIMCONNECT_COMM_BUS_BROADCAST_TO_SIMCONNECT | SIMCONNECT_COMM_BUS_BROADCAST_TO_SIMCONNECT_SELF_CALL

	// Camera data mask flags
	SIMCONNECT_CAMERA_DATA_MASK_NONE         = uint32(0)
	SIMCONNECT_CAMERA_DATA_MASK_POSITION     = uint32(1 << 0)
	SIMCONNECT_CAMERA_DATA_MASK_ROTATION     = uint32(1 << 1)
	SIMCONNECT_CAMERA_DATA_MASK_TARGETED     = uint32(1 << 2)
	SIMCONNECT_CAMERA_DATA_MASK_FOV          = uint32(1 << 3)
	SIMCONNECT_CAMERA_DATA_MASK_ALL_ROTATION = SIMCONNECT_CAMERA_DATA_MASK_POSITION | SIMCONNECT_CAMERA_DATA_MASK_ROTATION | SIMCONNECT_CAMERA_DATA_MASK_FOV
	SIMCONNECT_CAMERA_DATA_MASK_ALL_TARGETED = SIMCONNECT_CAMERA_DATA_MASK_POSITION | SIMCONNECT_CAMERA_DATA_MASK_TARGETED | SIMCONNECT_CAMERA_DATA_MASK_FOV

	// Camera flags
	SIMCONNECT_CAMERA_FLAG_INTERACTION  = uint32(0x01)
	SIMCONNECT_CAMERA_FLAG_ABOVE_GROUND = uint32(0x02)
)
View Source
const EnvDLLPath = "SIMCONNECT_DLL"

EnvDLLPath is the environment variable that overrides the DLL location. If set and the file exists, it is loaded instead of the embedded DLL.

View Source
const MAX_PATH = 260

Variables

This section is empty.

Functions

func InsertString

func InsertString(pDest []byte, pSource string) (end unsafe.Pointer, cbStringV uint32, err error)

InsertString inserts a string into a variable-length string buffer.

func LoadDLL added in v0.0.2

func LoadDLL() error

LoadDLL resolves the SimConnect.dll path (override → env var → embedded) and loads it eagerly so failures surface here rather than as opaque HRESULTs later. Safe to call repeatedly; the first call wins.

func RetrieveString

func RetrieveString(pData *SIMCONNECT_RECV, cbData uint32, pStringV unsafe.Pointer) (string, error)

RetrieveString extracts a variable-length string from a received packet.

func SetDLLPath added in v0.0.2

func SetDLLPath(path string)

SetDLLPath sets a process-global override for the SimConnect.dll location. If the file at path exists when LoadDLL runs, it is used instead of the embedded DLL. If it does not exist, the loader logs a notice and falls back to the env-var override or the embedded copy.

Must be called before the first SimConnect call (i.e. before client.Open). Calls after the DLL has been loaded are ignored with a warning.

Types

type BOOL

type BOOL = int32

Windows primitive types used by SimConnect

type BYTE

type BYTE = byte

Windows primitive types used by SimConnect

type DWORD

type DWORD = uint32

Windows primitive types used by SimConnect

type DispatchProc

type DispatchProc func(pData *SIMCONNECT_RECV, cbData uint32, pContext uintptr)

DispatchProc is the callback signature passed to CallDispatch. pData points to the received packet; cbData is its size in bytes; pContext is the user-supplied context value (opaque uintptr).

type GUID

type GUID struct {
	Data1 uint32
	Data2 uint16
	Data3 uint16
	Data4 [8]byte
}

GUID matches the Windows GUID / UUID layout

type HANDLE

type HANDLE = uintptr

Windows primitive types used by SimConnect

type HRESULT

type HRESULT = int32

Windows primitive types used by SimConnect

type HResultError

type HResultError uint32

HResultError wraps an HRESULT value as a Go error.

func (HResultError) Error

func (e HResultError) Error() string

type HWND

type HWND = uintptr

Windows primitive types used by SimConnect

type SIMCONNECT_CAMERA_AVAILABILITY

type SIMCONNECT_CAMERA_AVAILABILITY uint32

SIMCONNECT_CAMERA_AVAILABILITY camera acquisition state.

const (
	SIMCONNECT_CAMERA_NOT_ACQUIRED SIMCONNECT_CAMERA_AVAILABILITY = iota
	SIMCONNECT_CAMERA_ACQUIRED
	SIMCONNECT_CAMERA_ACQUIRED_BY_OTHER
	SIMCONNECT_CAMERA_USER_DISABLED
)

type SIMCONNECT_CAMERA_DATA_MASK

type SIMCONNECT_CAMERA_DATA_MASK = uint32

type SIMCONNECT_CAMERA_DEFINITION_ITEM

type SIMCONNECT_CAMERA_DEFINITION_ITEM struct {
	Str [256]byte
}

SIMCONNECT_CAMERA_DEFINITION_ITEM is a single camera definition name.

type SIMCONNECT_CAMERA_FLAG

type SIMCONNECT_CAMERA_FLAG = uint32

type SIMCONNECT_CAMERA_WORLD_LOCKER_STATUS

type SIMCONNECT_CAMERA_WORLD_LOCKER_STATUS uint32

SIMCONNECT_CAMERA_WORLD_LOCKER_STATUS status of the world locker.

const (
	SIMCONNECT_CAMERA_WORLD_LOCKER_STATUS_NONE SIMCONNECT_CAMERA_WORLD_LOCKER_STATUS = iota
	SIMCONNECT_CAMERA_WORLD_LOCKER_STATUS_START
	SIMCONNECT_CAMERA_WORLD_LOCKER_STATUS_SUCCESS
	SIMCONNECT_CAMERA_WORLD_LOCKER_STATUS_CANCEL
	SIMCONNECT_CAMERA_WORLD_LOCKER_STATUS_FAIL
)

type SIMCONNECT_CLIENT_DATA_DEFINITION_ID

type SIMCONNECT_CLIENT_DATA_DEFINITION_ID = uint32

type SIMCONNECT_CLIENT_DATA_ID

type SIMCONNECT_CLIENT_DATA_ID = uint32

type SIMCONNECT_CLIENT_DATA_PERIOD

type SIMCONNECT_CLIENT_DATA_PERIOD uint32

SIMCONNECT_CLIENT_DATA_PERIOD controls how often client data is sent.

const (
	SIMCONNECT_CLIENT_DATA_PERIOD_NEVER SIMCONNECT_CLIENT_DATA_PERIOD = iota
	SIMCONNECT_CLIENT_DATA_PERIOD_ONCE
	SIMCONNECT_CLIENT_DATA_PERIOD_VISUAL_FRAME
	SIMCONNECT_CLIENT_DATA_PERIOD_ON_SET
	SIMCONNECT_CLIENT_DATA_PERIOD_SECOND
)

type SIMCONNECT_CLIENT_DATA_REQUEST_FLAG

type SIMCONNECT_CLIENT_DATA_REQUEST_FLAG = uint32

type SIMCONNECT_CLIENT_DATA_SET_FLAG

type SIMCONNECT_CLIENT_DATA_SET_FLAG = uint32

type SIMCONNECT_CLIENT_EVENT_ID

type SIMCONNECT_CLIENT_EVENT_ID = uint32

type SIMCONNECT_COMM_BUS_BROADCAST_TO

type SIMCONNECT_COMM_BUS_BROADCAST_TO = uint32

type SIMCONNECT_CONTROLLER_ITEM

type SIMCONNECT_CONTROLLER_ITEM struct {
	DeviceName      [256]byte
	DeviceId        uint32
	ProductId       uint32
	CompositeID     uint32
	HardwareVersion SIMCONNECT_VERSION_BASE_TYPE
}

SIMCONNECT_CONTROLLER_ITEM describes a connected controller.

type SIMCONNECT_CREATE_CLIENT_DATA_FLAG

type SIMCONNECT_CREATE_CLIENT_DATA_FLAG = uint32

type SIMCONNECT_DATATYPE

type SIMCONNECT_DATATYPE int32

SIMCONNECT_DATATYPE specifies the data type of a simulation variable.

const (
	SIMCONNECT_DATATYPE_INVALID SIMCONNECT_DATATYPE = iota
	SIMCONNECT_DATATYPE_INT32
	SIMCONNECT_DATATYPE_INT64
	SIMCONNECT_DATATYPE_FLOAT32
	SIMCONNECT_DATATYPE_FLOAT64
	SIMCONNECT_DATATYPE_STRING8
	SIMCONNECT_DATATYPE_STRING32
	SIMCONNECT_DATATYPE_STRING64
	SIMCONNECT_DATATYPE_STRING128
	SIMCONNECT_DATATYPE_STRING256
	SIMCONNECT_DATATYPE_STRING260
	SIMCONNECT_DATATYPE_STRINGV
	SIMCONNECT_DATATYPE_INITPOSITION
	SIMCONNECT_DATATYPE_MARKERSTATE
	SIMCONNECT_DATATYPE_WAYPOINT
	SIMCONNECT_DATATYPE_LATLONALT
	SIMCONNECT_DATATYPE_XYZ
	SIMCONNECT_DATATYPE_INT8
	SIMCONNECT_DATATYPE_MAX
)

type SIMCONNECT_DATA_CAMERA

type SIMCONNECT_DATA_CAMERA struct {
	Position                    SIMCONNECT_PACKED_DATA_XYZ
	PositionReferential         SIMCONNECT_POSITION_REFERENTIAL
	PositionReferentialObjectId uint32
	TargetedPos                 SIMCONNECT_PACKED_DATA_XYZ
	Pbh                         SIMCONNECT_DATA_PBH
	RotationReferential         SIMCONNECT_POSITION_REFERENTIAL
	RotationReferentialObjectId uint32
	Fov                         SIMCONNECT_PACKED_FLOAT64
}

SIMCONNECT_DATA_CAMERA holds camera position, orientation and field-of-view.

type SIMCONNECT_DATA_DEFINITION_ID

type SIMCONNECT_DATA_DEFINITION_ID = uint32

type SIMCONNECT_DATA_FACILITY_AIRPORT

type SIMCONNECT_DATA_FACILITY_AIRPORT struct {
	Ident     [9]byte
	Region    [3]byte
	Latitude  SIMCONNECT_PACKED_FLOAT64
	Longitude SIMCONNECT_PACKED_FLOAT64
	Altitude  SIMCONNECT_PACKED_FLOAT64
}

SIMCONNECT_DATA_FACILITY_AIRPORT holds airport facility data.

type SIMCONNECT_DATA_FACILITY_NDB

type SIMCONNECT_DATA_FACILITY_NDB struct {
	SIMCONNECT_DATA_FACILITY_WAYPOINT
	FFrequency uint32
}

SIMCONNECT_DATA_FACILITY_NDB extends waypoint data with frequency.

type SIMCONNECT_DATA_FACILITY_VOR

type SIMCONNECT_DATA_FACILITY_VOR struct {
	SIMCONNECT_DATA_FACILITY_NDB
	Flags            uint32
	FLocalizer       float32
	GlideLat         SIMCONNECT_PACKED_FLOAT64
	GlideLon         SIMCONNECT_PACKED_FLOAT64
	GlideAlt         SIMCONNECT_PACKED_FLOAT64
	FGlideSlopeAngle float32
}

SIMCONNECT_DATA_FACILITY_VOR extends NDB data with VOR-specific fields.

type SIMCONNECT_DATA_FACILITY_WAYPOINT

type SIMCONNECT_DATA_FACILITY_WAYPOINT struct {
	SIMCONNECT_DATA_FACILITY_AIRPORT
	FMagVar float32
}

SIMCONNECT_DATA_FACILITY_WAYPOINT extends airport data with magnetic variation.

type SIMCONNECT_DATA_INITPOSITION

type SIMCONNECT_DATA_INITPOSITION struct {
	Latitude  float64
	Longitude float64
	Altitude  float64
	Pitch     float64
	Bank      float64
	Heading   float64
	OnGround  uint32
	Airspeed  uint32
}

SIMCONNECT_DATA_INITPOSITION specifies an initial object position.

type SIMCONNECT_DATA_LATLONALT

type SIMCONNECT_DATA_LATLONALT struct {
	Latitude  float64
	Longitude float64
	Altitude  float64
}

SIMCONNECT_DATA_LATLONALT holds a geographic position.

type SIMCONNECT_DATA_MARKERSTATE

type SIMCONNECT_DATA_MARKERSTATE struct {
	SzMarkerName  [64]byte
	DwMarkerState uint32
}

SIMCONNECT_DATA_MARKERSTATE holds a marker name and state.

type SIMCONNECT_DATA_PBH

type SIMCONNECT_DATA_PBH struct {
	Pitch   float32
	Bank    float32
	Heading float32
}

SIMCONNECT_DATA_PBH holds pitch, bank, heading.

type SIMCONNECT_DATA_RACE_RESULT

type SIMCONNECT_DATA_RACE_RESULT struct {
	DwNumberOfRacers uint32
	MissionGUID      GUID
	SzPlayerName     [MAX_PATH]byte
	SzSessionType    [MAX_PATH]byte
	SzAircraft       [MAX_PATH]byte
	SzPlayerRole     [MAX_PATH]byte
	FTotalTime       SIMCONNECT_PACKED_FLOAT64
	FPenaltyTime     SIMCONNECT_PACKED_FLOAT64
	DwIsDisqualified uint32
}

SIMCONNECT_DATA_RACE_RESULT holds race/lap result data.

type SIMCONNECT_DATA_REQUEST_FLAG

type SIMCONNECT_DATA_REQUEST_FLAG = uint32

type SIMCONNECT_DATA_REQUEST_ID

type SIMCONNECT_DATA_REQUEST_ID = uint32

type SIMCONNECT_DATA_SET_FLAG

type SIMCONNECT_DATA_SET_FLAG = uint32

type SIMCONNECT_DATA_WAYPOINT

type SIMCONNECT_DATA_WAYPOINT struct {
	Latitude        SIMCONNECT_PACKED_FLOAT64
	Longitude       SIMCONNECT_PACKED_FLOAT64
	Altitude        SIMCONNECT_PACKED_FLOAT64
	Flags           uint32
	KtsSpeed        SIMCONNECT_PACKED_FLOAT64
	PercentThrottle SIMCONNECT_PACKED_FLOAT64
}

SIMCONNECT_DATA_WAYPOINT holds a waypoint definition.

type SIMCONNECT_DATA_XYZ

type SIMCONNECT_DATA_XYZ struct {
	X float64
	Y float64
	Z float64
}

SIMCONNECT_DATA_XYZ holds a 3-D position or vector.

type SIMCONNECT_ENUMERATE_SIMOBJECT_LIVERY

type SIMCONNECT_ENUMERATE_SIMOBJECT_LIVERY struct {
	AircraftTitle [256]byte
	LiveryName    [256]byte
}

SIMCONNECT_ENUMERATE_SIMOBJECT_LIVERY describes an aircraft livery.

type SIMCONNECT_EVENT_FLAG

type SIMCONNECT_EVENT_FLAG = uint32

type SIMCONNECT_EXCEPTION

type SIMCONNECT_EXCEPTION uint32

SIMCONNECT_EXCEPTION error codes returned in SIMCONNECT_RECV_EXCEPTION.

const (
	SIMCONNECT_EXCEPTION_NONE SIMCONNECT_EXCEPTION = iota
	SIMCONNECT_EXCEPTION_ERROR
	SIMCONNECT_EXCEPTION_SIZE_MISMATCH
	SIMCONNECT_EXCEPTION_UNRECOGNIZED_ID
	SIMCONNECT_EXCEPTION_UNOPENED
	SIMCONNECT_EXCEPTION_VERSION_MISMATCH
	SIMCONNECT_EXCEPTION_TOO_MANY_GROUPS
	SIMCONNECT_EXCEPTION_NAME_UNRECOGNIZED
	SIMCONNECT_EXCEPTION_TOO_MANY_EVENT_NAMES
	SIMCONNECT_EXCEPTION_EVENT_ID_DUPLICATE
	SIMCONNECT_EXCEPTION_TOO_MANY_MAPS
	SIMCONNECT_EXCEPTION_TOO_MANY_OBJECTS
	SIMCONNECT_EXCEPTION_TOO_MANY_REQUESTS
	SIMCONNECT_EXCEPTION_WEATHER_INVALID_PORT
	SIMCONNECT_EXCEPTION_WEATHER_INVALID_METAR
	SIMCONNECT_EXCEPTION_WEATHER_UNABLE_TO_GET_OBSERVATION
	SIMCONNECT_EXCEPTION_WEATHER_UNABLE_TO_CREATE_STATION
	SIMCONNECT_EXCEPTION_WEATHER_UNABLE_TO_REMOVE_STATION
	SIMCONNECT_EXCEPTION_INVALID_DATA_TYPE
	SIMCONNECT_EXCEPTION_INVALID_DATA_SIZE
	SIMCONNECT_EXCEPTION_DATA_ERROR
	SIMCONNECT_EXCEPTION_INVALID_ARRAY
	SIMCONNECT_EXCEPTION_CREATE_OBJECT_FAILED
	SIMCONNECT_EXCEPTION_LOAD_FLIGHTPLAN_FAILED
	SIMCONNECT_EXCEPTION_OPERATION_INVALID_FOR_OBJECT_TYPE
	SIMCONNECT_EXCEPTION_ILLEGAL_OPERATION
	SIMCONNECT_EXCEPTION_ALREADY_SUBSCRIBED
	SIMCONNECT_EXCEPTION_INVALID_ENUM
	SIMCONNECT_EXCEPTION_DEFINITION_ERROR
	SIMCONNECT_EXCEPTION_DUPLICATE_ID
	SIMCONNECT_EXCEPTION_DATUM_ID
	SIMCONNECT_EXCEPTION_OUT_OF_BOUNDS
	SIMCONNECT_EXCEPTION_ALREADY_CREATED
	SIMCONNECT_EXCEPTION_OBJECT_OUTSIDE_REALITY_BUBBLE
	SIMCONNECT_EXCEPTION_OBJECT_CONTAINER
	SIMCONNECT_EXCEPTION_OBJECT_AI
	SIMCONNECT_EXCEPTION_OBJECT_ATC
	SIMCONNECT_EXCEPTION_OBJECT_SCHEDULE
	SIMCONNECT_EXCEPTION_JETWAY_DATA
	SIMCONNECT_EXCEPTION_ACTION_NOT_FOUND
	SIMCONNECT_EXCEPTION_NOT_AN_ACTION
	SIMCONNECT_EXCEPTION_INCORRECT_ACTION_PARAMS
	SIMCONNECT_EXCEPTION_GET_INPUT_EVENT_FAILED
	SIMCONNECT_EXCEPTION_SET_INPUT_EVENT_FAILED
	SIMCONNECT_EXCEPTION_EVENT_NAME_RESERVED
	SIMCONNECT_EXCEPTION_INTERNAL
	SIMCONNECT_EXCEPTION_CAMERA_API
)

type SIMCONNECT_FACILITY_DATA_TYPE

type SIMCONNECT_FACILITY_DATA_TYPE uint32

SIMCONNECT_FACILITY_DATA_TYPE type of facility data element.

const (
	SIMCONNECT_FACILITY_DATA_AIRPORT SIMCONNECT_FACILITY_DATA_TYPE = iota
	SIMCONNECT_FACILITY_DATA_RUNWAY
	SIMCONNECT_FACILITY_DATA_START
	SIMCONNECT_FACILITY_DATA_FREQUENCY
	SIMCONNECT_FACILITY_DATA_HELIPAD
	SIMCONNECT_FACILITY_DATA_APPROACH
	SIMCONNECT_FACILITY_DATA_APPROACH_TRANSITION
	SIMCONNECT_FACILITY_DATA_APPROACH_LEG
	SIMCONNECT_FACILITY_DATA_FINAL_APPROACH_LEG
	SIMCONNECT_FACILITY_DATA_MISSED_APPROACH_LEG
	SIMCONNECT_FACILITY_DATA_DEPARTURE
	SIMCONNECT_FACILITY_DATA_ARRIVAL
	SIMCONNECT_FACILITY_DATA_RUNWAY_TRANSITION
	SIMCONNECT_FACILITY_DATA_ENROUTE_TRANSITION
	SIMCONNECT_FACILITY_DATA_TAXI_POINT
	SIMCONNECT_FACILITY_DATA_TAXI_PARKING
	SIMCONNECT_FACILITY_DATA_TAXI_PATH
	SIMCONNECT_FACILITY_DATA_TAXI_NAME
	SIMCONNECT_FACILITY_DATA_JETWAY
	SIMCONNECT_FACILITY_DATA_VOR
	SIMCONNECT_FACILITY_DATA_NDB
	SIMCONNECT_FACILITY_DATA_WAYPOINT
	SIMCONNECT_FACILITY_DATA_ROUTE
	SIMCONNECT_FACILITY_DATA_PAVEMENT
	SIMCONNECT_FACILITY_DATA_APPROACH_LIGHTS
	SIMCONNECT_FACILITY_DATA_VASI
	SIMCONNECT_FACILITY_DATA_VDGS
	SIMCONNECT_FACILITY_DATA_HOLDING_PATTERN
	SIMCONNECT_FACILITY_DATA_TAXI_PARKING_AIRLINE
)

type SIMCONNECT_FACILITY_LIST_TYPE

type SIMCONNECT_FACILITY_LIST_TYPE uint32

SIMCONNECT_FACILITY_LIST_TYPE type of facility list.

const (
	SIMCONNECT_FACILITY_LIST_TYPE_AIRPORT SIMCONNECT_FACILITY_LIST_TYPE = iota
	SIMCONNECT_FACILITY_LIST_TYPE_WAYPOINT
	SIMCONNECT_FACILITY_LIST_TYPE_NDB
	SIMCONNECT_FACILITY_LIST_TYPE_VOR
	SIMCONNECT_FACILITY_LIST_TYPE_COUNT
)

type SIMCONNECT_FACILITY_MINIMAL

type SIMCONNECT_FACILITY_MINIMAL struct {
	Icao SIMCONNECT_ICAO
	Lla  SIMCONNECT_PACKED_DATA_LATLONALT
}

SIMCONNECT_FACILITY_MINIMAL is a minimal facility record.

type SIMCONNECT_FLOW_EVENT

type SIMCONNECT_FLOW_EVENT uint32

SIMCONNECT_FLOW_EVENT flight flow events.

const (
	SIMCONNECT_FLOW_EVENT_NONE SIMCONNECT_FLOW_EVENT = iota
	SIMCONNECT_FLOW_EVENT_FLT_LOAD
	SIMCONNECT_FLOW_EVENT_FLT_LOADED
	SIMCONNECT_FLOW_EVENT_TELEPORT_START
	SIMCONNECT_FLOW_EVENT_TELEPORT_DONE
	SIMCONNECT_FLOW_EVENT_BACK_ON_TRACK_START
	SIMCONNECT_FLOW_EVENT_BACK_ON_TRACK_DONE
	SIMCONNECT_FLOW_EVENT_SKIP_START
	SIMCONNECT_FLOW_EVENT_SKIP_DONE
	SIMCONNECT_FLOW_EVENT_BACK_TO_MAIN_MENU
	SIMCONNECT_FLOW_EVENT_RTC_START
	SIMCONNECT_FLOW_EVENT_RTC_END
	SIMCONNECT_FLOW_EVENT_REPLAY_START
	SIMCONNECT_FLOW_EVENT_REPLAY_END
	SIMCONNECT_FLOW_EVENT_FLIGHT_START
	SIMCONNECT_FLOW_EVENT_FLIGHT_END
	SIMCONNECT_FLOW_EVENT_PLANE_CRASH
)

type SIMCONNECT_ICAO

type SIMCONNECT_ICAO struct {
	Type    byte
	Ident   [9]byte
	Region  [3]byte
	Airport [5]byte
}

SIMCONNECT_ICAO holds an ICAO identifier.

type SIMCONNECT_INPUT_EVENT_DESCRIPTOR

type SIMCONNECT_INPUT_EVENT_DESCRIPTOR struct {
	Name  [64]byte
	Hash  SIMCONNECT_PACKED_UINT64
	EType SIMCONNECT_INPUT_EVENT_TYPE
}

SIMCONNECT_INPUT_EVENT_DESCRIPTOR describes a single input event.

type SIMCONNECT_INPUT_EVENT_TYPE

type SIMCONNECT_INPUT_EVENT_TYPE uint32

SIMCONNECT_INPUT_EVENT_TYPE type of input event value.

const (
	SIMCONNECT_INPUT_EVENT_TYPE_DOUBLE SIMCONNECT_INPUT_EVENT_TYPE = iota
	SIMCONNECT_INPUT_EVENT_TYPE_STRING
)

type SIMCONNECT_INPUT_GROUP_ID

type SIMCONNECT_INPUT_GROUP_ID = uint32

type SIMCONNECT_JETWAY_DATA

type SIMCONNECT_JETWAY_DATA struct {
	AirportIcao         [8]byte
	ParkingIndex        int32
	Lla                 SIMCONNECT_PACKED_DATA_LATLONALT
	Pbh                 SIMCONNECT_DATA_PBH
	Status              int32
	Door                int32
	ExitDoorRelativePos SIMCONNECT_PACKED_DATA_XYZ
	MainHandlePos       SIMCONNECT_PACKED_DATA_XYZ
	SecondaryHandle     SIMCONNECT_PACKED_DATA_XYZ
	WheelGroundLock     SIMCONNECT_PACKED_DATA_XYZ
	JetwayObjectId      uint32
	AttachedObjectId    uint32
}

SIMCONNECT_JETWAY_DATA holds jetway state information.

type SIMCONNECT_MISSION_END

type SIMCONNECT_MISSION_END uint32

SIMCONNECT_MISSION_END mission result.

const (
	SIMCONNECT_MISSION_FAILED SIMCONNECT_MISSION_END = iota
	SIMCONNECT_MISSION_CRASHED
	SIMCONNECT_MISSION_SUCCEEDED
)

type SIMCONNECT_NOTIFICATION_GROUP_ID

type SIMCONNECT_NOTIFICATION_GROUP_ID = uint32

type SIMCONNECT_OBJECT_ID

type SIMCONNECT_OBJECT_ID = uint32

Client-defined ID types (typedef DWORD in C)

type SIMCONNECT_PACKED_DATA_LATLONALT

type SIMCONNECT_PACKED_DATA_LATLONALT struct {
	Latitude  SIMCONNECT_PACKED_FLOAT64
	Longitude SIMCONNECT_PACKED_FLOAT64
	Altitude  SIMCONNECT_PACKED_FLOAT64
}

SIMCONNECT_PACKED_DATA_LATLONALT is the packed representation of SIMCONNECT_DATA_LATLONALT when it appears at an unaligned offset.

type SIMCONNECT_PACKED_DATA_XYZ

type SIMCONNECT_PACKED_DATA_XYZ struct {
	X SIMCONNECT_PACKED_FLOAT64
	Y SIMCONNECT_PACKED_FLOAT64
	Z SIMCONNECT_PACKED_FLOAT64
}

SIMCONNECT_PACKED_DATA_XYZ is the packed representation of SIMCONNECT_DATA_XYZ when it appears in packed SimConnect records.

type SIMCONNECT_PACKED_FLOAT64

type SIMCONNECT_PACKED_FLOAT64 [8]byte

SIMCONNECT_PACKED_FLOAT64 stores a C double that may be unaligned because SimConnect structs are declared under #pragma pack(1).

func (SIMCONNECT_PACKED_FLOAT64) Float64

func (v SIMCONNECT_PACKED_FLOAT64) Float64() float64

func (*SIMCONNECT_PACKED_FLOAT64) SetFloat64

func (v *SIMCONNECT_PACKED_FLOAT64) SetFloat64(f float64)

type SIMCONNECT_PACKED_UINT64

type SIMCONNECT_PACKED_UINT64 [8]byte

SIMCONNECT_PACKED_UINT64 stores an unaligned 64-bit integer.

func (*SIMCONNECT_PACKED_UINT64) SetUint64

func (v *SIMCONNECT_PACKED_UINT64) SetUint64(n uint64)

func (SIMCONNECT_PACKED_UINT64) Uint64

func (v SIMCONNECT_PACKED_UINT64) Uint64() uint64

type SIMCONNECT_PERIOD

type SIMCONNECT_PERIOD uint32

SIMCONNECT_PERIOD controls how often data is sent.

const (
	SIMCONNECT_PERIOD_NEVER SIMCONNECT_PERIOD = iota
	SIMCONNECT_PERIOD_ONCE
	SIMCONNECT_PERIOD_VISUAL_FRAME
	SIMCONNECT_PERIOD_SIM_FRAME
	SIMCONNECT_PERIOD_SECOND
)

type SIMCONNECT_POSITION_REFERENTIAL

type SIMCONNECT_POSITION_REFERENTIAL uint32

SIMCONNECT_POSITION_REFERENTIAL reference frame for camera position.

const (
	SIMCONNECT_POSITION_REFERENTIAL_NONE SIMCONNECT_POSITION_REFERENTIAL = iota
	SIMCONNECT_POSITION_REFERENTIAL_SIMOBJECT
	SIMCONNECT_POSITION_REFERENTIAL_WORLD
	SIMCONNECT_POSITION_REFERENTIAL_EYEPOINT
	SIMCONNECT_POSITION_REFERENTIAL_SIMOBJECT_DATUM
)

type SIMCONNECT_RECV

type SIMCONNECT_RECV struct {
	DwSize    uint32 // record size in bytes
	DwVersion uint32 // interface version
	DwID      uint32 // SIMCONNECT_RECV_ID
}

SIMCONNECT_RECV is the base of every received packet.

type SIMCONNECT_RECV_ACTION_CALLBACK

type SIMCONNECT_RECV_ACTION_CALLBACK struct {
	SIMCONNECT_RECV
	SzActionID  [MAX_PATH]byte
	CbRequestId uint32
}

SIMCONNECT_RECV_ACTION_CALLBACK is sent when an action completes.

type SIMCONNECT_RECV_AIRPORT_LIST

type SIMCONNECT_RECV_AIRPORT_LIST struct {
	SIMCONNECT_RECV_FACILITIES_LIST
	RgData [1]SIMCONNECT_DATA_FACILITY_AIRPORT // variable-length
}

SIMCONNECT_RECV_AIRPORT_LIST carries an array of SIMCONNECT_DATA_FACILITY_AIRPORT.

type SIMCONNECT_RECV_ASSIGNED_OBJECT_ID

type SIMCONNECT_RECV_ASSIGNED_OBJECT_ID struct {
	SIMCONNECT_RECV
	DwRequestID uint32
	DwObjectID  uint32
}

SIMCONNECT_RECV_ASSIGNED_OBJECT_ID carries an assigned object ID.

type SIMCONNECT_RECV_CAMERA_DATA

type SIMCONNECT_RECV_CAMERA_DATA struct {
	SIMCONNECT_RECV
	CameraData SIMCONNECT_DATA_CAMERA
}

SIMCONNECT_RECV_CAMERA_DATA carries camera data in response to CameraGet.

type SIMCONNECT_RECV_CAMERA_DEFINITION_LIST

type SIMCONNECT_RECV_CAMERA_DEFINITION_LIST struct {
	SIMCONNECT_RECV_LIST_TEMPLATE
	RgData [1]SIMCONNECT_CAMERA_DEFINITION_ITEM // variable-length
}

SIMCONNECT_RECV_CAMERA_DEFINITION_LIST carries camera definition names.

type SIMCONNECT_RECV_CAMERA_STATUS

type SIMCONNECT_RECV_CAMERA_STATUS struct {
	SIMCONNECT_RECV
	AcquiredState   uint32 // SIMCONNECT_CAMERA_AVAILABILITY
	BGameControlled int32  // BOOL
}

SIMCONNECT_RECV_CAMERA_STATUS carries the camera acquisition state.

type SIMCONNECT_RECV_CAMERA_WORLD_LOCKER

type SIMCONNECT_RECV_CAMERA_WORLD_LOCKER struct {
	SIMCONNECT_RECV
	Status SIMCONNECT_CAMERA_WORLD_LOCKER_STATUS
}

SIMCONNECT_RECV_CAMERA_WORLD_LOCKER carries the world-locker status.

type SIMCONNECT_RECV_CLIENT_DATA

type SIMCONNECT_RECV_CLIENT_DATA struct {
	SIMCONNECT_RECV_SIMOBJECT_DATA
}

SIMCONNECT_RECV_CLIENT_DATA carries client-data (dwID == SIMCONNECT_RECV_ID_CLIENT_DATA).

type SIMCONNECT_RECV_CLOUD_STATE

type SIMCONNECT_RECV_CLOUD_STATE struct {
	SIMCONNECT_RECV
	DwRequestID uint32
	DwArraySize uint32
	RgbData     [1]byte // variable-length; dwArraySize bytes
}

SIMCONNECT_RECV_CLOUD_STATE carries cloud-state data.

type SIMCONNECT_RECV_COMM_BUS

type SIMCONNECT_RECV_COMM_BUS struct {
	SIMCONNECT_RECV_LIST_TEMPLATE
	UEventID uint32
	RgData   [1]byte // variable-length string payload
}

SIMCONNECT_RECV_COMM_BUS carries a comm-bus event with variable-length payload.

type SIMCONNECT_RECV_CONTROLLERS_LIST

type SIMCONNECT_RECV_CONTROLLERS_LIST struct {
	SIMCONNECT_RECV_LIST_TEMPLATE
	RgData [1]SIMCONNECT_CONTROLLER_ITEM // variable-length
}

SIMCONNECT_RECV_CONTROLLERS_LIST carries an array of controller items.

type SIMCONNECT_RECV_CUSTOM_ACTION

type SIMCONNECT_RECV_CUSTOM_ACTION struct {
	SIMCONNECT_RECV_EVENT
	GuidInstanceId      GUID
	DwWaitForCompletion uint32
	SzPayLoad           [1]byte // variable-length string
}

SIMCONNECT_RECV_CUSTOM_ACTION carries custom mission-action data. SzPayLoad is variable-length; only the first byte is declared.

type SIMCONNECT_RECV_ENUMERATE_INPUT_EVENTS

type SIMCONNECT_RECV_ENUMERATE_INPUT_EVENTS struct {
	SIMCONNECT_RECV_LIST_TEMPLATE
	RgData [1]SIMCONNECT_INPUT_EVENT_DESCRIPTOR // variable-length
}

SIMCONNECT_RECV_ENUMERATE_INPUT_EVENTS carries an array of input event descriptors.

type SIMCONNECT_RECV_ENUMERATE_INPUT_EVENT_PARAMS

type SIMCONNECT_RECV_ENUMERATE_INPUT_EVENT_PARAMS struct {
	SIMCONNECT_RECV
	Hash  SIMCONNECT_PACKED_UINT64
	Value [MAX_PATH]byte
}

SIMCONNECT_RECV_ENUMERATE_INPUT_EVENT_PARAMS carries an input event parameter.

type SIMCONNECT_RECV_ENUMERATE_SIMOBJECT_AND_LIVERY_LIST

type SIMCONNECT_RECV_ENUMERATE_SIMOBJECT_AND_LIVERY_LIST struct {
	SIMCONNECT_RECV_LIST_TEMPLATE
	RgData [1]SIMCONNECT_ENUMERATE_SIMOBJECT_LIVERY // variable-length
}

SIMCONNECT_RECV_ENUMERATE_SIMOBJECT_AND_LIVERY_LIST carries livery records.

type SIMCONNECT_RECV_EVENT

type SIMCONNECT_RECV_EVENT struct {
	SIMCONNECT_RECV
	UGroupID uint32 // notification group ID (DWORD_MAX = unknown)
	UEventID uint32 // client event ID
	DwData   uint32 // event-dependent data
}

SIMCONNECT_RECV_EVENT carries a client event (dwID == SIMCONNECT_RECV_ID_EVENT).

type SIMCONNECT_RECV_EVENT_EX1

type SIMCONNECT_RECV_EVENT_EX1 struct {
	SIMCONNECT_RECV
	UGroupID uint32
	UEventID uint32
	DwData0  uint32
	DwData1  uint32
	DwData2  uint32
	DwData3  uint32
	DwData4  uint32
}

SIMCONNECT_RECV_EVENT_EX1 carries an event with up to 5 DWORD data values.

type SIMCONNECT_RECV_EVENT_FILENAME

type SIMCONNECT_RECV_EVENT_FILENAME struct {
	SIMCONNECT_RECV_EVENT
	SzFileName [MAX_PATH]byte
	DwFlags    uint32
}

SIMCONNECT_RECV_EVENT_FILENAME extends SIMCONNECT_RECV_EVENT with a filename.

type SIMCONNECT_RECV_EVENT_FRAME

type SIMCONNECT_RECV_EVENT_FRAME struct {
	SIMCONNECT_RECV_EVENT
	FFrameRate float32
	FSimSpeed  float32
}

SIMCONNECT_RECV_EVENT_FRAME carries frame-rate information (dwID == SIMCONNECT_RECV_ID_EVENT_FRAME).

type SIMCONNECT_RECV_EVENT_MULTIPLAYER_CLIENT_STARTED

type SIMCONNECT_RECV_EVENT_MULTIPLAYER_CLIENT_STARTED struct {
	SIMCONNECT_RECV_EVENT
}

SIMCONNECT_RECV_EVENT_MULTIPLAYER_CLIENT_STARTED signals MP client start.

type SIMCONNECT_RECV_EVENT_MULTIPLAYER_SERVER_STARTED

type SIMCONNECT_RECV_EVENT_MULTIPLAYER_SERVER_STARTED struct {
	SIMCONNECT_RECV_EVENT
}

SIMCONNECT_RECV_EVENT_MULTIPLAYER_SERVER_STARTED signals MP server start.

type SIMCONNECT_RECV_EVENT_MULTIPLAYER_SESSION_ENDED

type SIMCONNECT_RECV_EVENT_MULTIPLAYER_SESSION_ENDED struct {
	SIMCONNECT_RECV_EVENT
}

SIMCONNECT_RECV_EVENT_MULTIPLAYER_SESSION_ENDED signals MP session end.

type SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE

type SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE struct {
	SIMCONNECT_RECV_EVENT
	EObjType SIMCONNECT_SIMOBJECT_TYPE
}

SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE is sent when an AI object is added or removed.

type SIMCONNECT_RECV_EVENT_RACE_END

type SIMCONNECT_RECV_EVENT_RACE_END struct {
	SIMCONNECT_RECV_EVENT
	DwRacerNumber uint32
	RacerData     SIMCONNECT_DATA_RACE_RESULT
}

SIMCONNECT_RECV_EVENT_RACE_END carries end-of-race data.

type SIMCONNECT_RECV_EVENT_RACE_LAP

type SIMCONNECT_RECV_EVENT_RACE_LAP struct {
	SIMCONNECT_RECV_EVENT
	DwLapIndex uint32
	RacerData  SIMCONNECT_DATA_RACE_RESULT
}

SIMCONNECT_RECV_EVENT_RACE_LAP carries lap data.

type SIMCONNECT_RECV_EVENT_WEATHER_MODE

type SIMCONNECT_RECV_EVENT_WEATHER_MODE struct {
	SIMCONNECT_RECV_EVENT
}

SIMCONNECT_RECV_EVENT_WEATHER_MODE carries the new weather mode in DwData.

type SIMCONNECT_RECV_EXCEPTION

type SIMCONNECT_RECV_EXCEPTION struct {
	SIMCONNECT_RECV
	DwException uint32 // SIMCONNECT_EXCEPTION
	DwSendID    uint32 // packet ID that caused the error (0 = unknown)
	DwIndex     uint32 // parameter index that caused the error
}

SIMCONNECT_RECV_EXCEPTION carries error information (dwID == SIMCONNECT_RECV_ID_EXCEPTION).

type SIMCONNECT_RECV_FACILITIES_LIST

type SIMCONNECT_RECV_FACILITIES_LIST struct {
	SIMCONNECT_RECV
	DwRequestID   uint32
	DwArraySize   uint32
	DwEntryNumber uint32
	DwOutOf       uint32
}

SIMCONNECT_RECV_FACILITIES_LIST is the base for facility list responses.

type SIMCONNECT_RECV_FACILITY_DATA

type SIMCONNECT_RECV_FACILITY_DATA struct {
	SIMCONNECT_RECV
	UserRequestId         uint32
	UniqueRequestId       uint32
	ParentUniqueRequestId uint32
	Type                  uint32
	IsListItem            uint32
	ItemIndex             uint32
	ListSize              uint32
	Data                  [1]uint32 // variable-length
}

SIMCONNECT_RECV_FACILITY_DATA carries a single facility data element. Data is variable-length; only the first uint32 is declared.

type SIMCONNECT_RECV_FACILITY_DATA_END

type SIMCONNECT_RECV_FACILITY_DATA_END struct {
	SIMCONNECT_RECV
	RequestId uint32
}

SIMCONNECT_RECV_FACILITY_DATA_END signals the end of a facility data stream.

type SIMCONNECT_RECV_FACILITY_MINIMAL_LIST

type SIMCONNECT_RECV_FACILITY_MINIMAL_LIST struct {
	SIMCONNECT_RECV_LIST_TEMPLATE
	RgData [1]SIMCONNECT_FACILITY_MINIMAL // variable-length
}

SIMCONNECT_RECV_FACILITY_MINIMAL_LIST carries an array of minimal facility records.

type SIMCONNECT_RECV_FLOW_EVENT

type SIMCONNECT_RECV_FLOW_EVENT struct {
	SIMCONNECT_RECV
	FlowEvent SIMCONNECT_FLOW_EVENT
	FltPath   [256]byte
}

SIMCONNECT_RECV_FLOW_EVENT carries a flight flow event with optional FLT path.

type SIMCONNECT_RECV_GET_INPUT_EVENT

type SIMCONNECT_RECV_GET_INPUT_EVENT struct {
	SIMCONNECT_RECV
	DwRequestID uint32
	EType       SIMCONNECT_INPUT_EVENT_TYPE
	Value       [1]uint32 // variable-length
}

SIMCONNECT_RECV_GET_INPUT_EVENT carries the current value of an input event. Value is variable-length (type depends on EType).

type SIMCONNECT_RECV_ID

type SIMCONNECT_RECV_ID uint32

SIMCONNECT_RECV_ID identifies the type of data in a received packet.

const (
	SIMCONNECT_RECV_ID_NULL SIMCONNECT_RECV_ID = iota
	SIMCONNECT_RECV_ID_EXCEPTION
	SIMCONNECT_RECV_ID_OPEN
	SIMCONNECT_RECV_ID_QUIT
	SIMCONNECT_RECV_ID_EVENT
	SIMCONNECT_RECV_ID_EVENT_OBJECT_ADDREMOVE
	SIMCONNECT_RECV_ID_EVENT_FILENAME
	SIMCONNECT_RECV_ID_EVENT_FRAME
	SIMCONNECT_RECV_ID_SIMOBJECT_DATA
	SIMCONNECT_RECV_ID_SIMOBJECT_DATA_BYTYPE
	SIMCONNECT_RECV_ID_WEATHER_OBSERVATION
	SIMCONNECT_RECV_ID_CLOUD_STATE
	SIMCONNECT_RECV_ID_ASSIGNED_OBJECT_ID
	SIMCONNECT_RECV_ID_RESERVED_KEY
	SIMCONNECT_RECV_ID_CUSTOM_ACTION
	SIMCONNECT_RECV_ID_SYSTEM_STATE
	SIMCONNECT_RECV_ID_CLIENT_DATA
	SIMCONNECT_RECV_ID_EVENT_WEATHER_MODE
	SIMCONNECT_RECV_ID_AIRPORT_LIST
	SIMCONNECT_RECV_ID_VOR_LIST
	SIMCONNECT_RECV_ID_NDB_LIST
	SIMCONNECT_RECV_ID_WAYPOINT_LIST
	SIMCONNECT_RECV_ID_EVENT_MULTIPLAYER_SERVER_STARTED
	SIMCONNECT_RECV_ID_EVENT_MULTIPLAYER_CLIENT_STARTED
	SIMCONNECT_RECV_ID_EVENT_MULTIPLAYER_SESSION_ENDED
	SIMCONNECT_RECV_ID_EVENT_RACE_END
	SIMCONNECT_RECV_ID_EVENT_RACE_LAP
	SIMCONNECT_RECV_ID_EVENT_EX1
	SIMCONNECT_RECV_ID_FACILITY_DATA
	SIMCONNECT_RECV_ID_FACILITY_DATA_END
	SIMCONNECT_RECV_ID_FACILITY_MINIMAL_LIST
	SIMCONNECT_RECV_ID_JETWAY_DATA
	SIMCONNECT_RECV_ID_CONTROLLERS_LIST
	SIMCONNECT_RECV_ID_ACTION_CALLBACK
	SIMCONNECT_RECV_ID_ENUMERATE_INPUT_EVENTS
	SIMCONNECT_RECV_ID_GET_INPUT_EVENT
	SIMCONNECT_RECV_ID_SUBSCRIBE_INPUT_EVENT
	SIMCONNECT_RECV_ID_ENUMERATE_INPUT_EVENT_PARAMS
	SIMCONNECT_RECV_ID_ENUMERATE_SIMOBJECT_AND_LIVERY_LIST
	SIMCONNECT_RECV_ID_FLOW_EVENT
	SIMCONNECT_RECV_ID_CAMERA_DATA
	SIMCONNECT_RECV_ID_CAMERA_STATUS
	SIMCONNECT_RECV_ID_CAMERA_DEFINITION_LIST
	SIMCONNECT_RECV_ID_COMM_BUS
	SIMCONNECT_RECV_ID_CAMERA_WORLD_LOCKER
)

type SIMCONNECT_RECV_JETWAY_DATA

type SIMCONNECT_RECV_JETWAY_DATA struct {
	SIMCONNECT_RECV_LIST_TEMPLATE
	RgData [1]SIMCONNECT_JETWAY_DATA // variable-length
}

SIMCONNECT_RECV_JETWAY_DATA carries an array of jetway records.

type SIMCONNECT_RECV_LIST_TEMPLATE

type SIMCONNECT_RECV_LIST_TEMPLATE struct {
	SIMCONNECT_RECV
	DwRequestID   uint32
	DwArraySize   uint32
	DwEntryNumber uint32
	DwOutOf       uint32
}

SIMCONNECT_RECV_LIST_TEMPLATE is the generic list base used by newer APIs.

type SIMCONNECT_RECV_NDB_LIST

type SIMCONNECT_RECV_NDB_LIST struct {
	SIMCONNECT_RECV_FACILITIES_LIST
	RgData [1]SIMCONNECT_DATA_FACILITY_NDB // variable-length
}

SIMCONNECT_RECV_NDB_LIST carries an array of NDB facilities.

type SIMCONNECT_RECV_OPEN

type SIMCONNECT_RECV_OPEN struct {
	SIMCONNECT_RECV
	SzApplicationName         [256]byte
	DwApplicationVersionMajor uint32
	DwApplicationVersionMinor uint32
	DwApplicationBuildMajor   uint32
	DwApplicationBuildMinor   uint32
	DwSimConnectVersionMajor  uint32
	DwSimConnectVersionMinor  uint32
	DwSimConnectBuildMajor    uint32
	DwSimConnectBuildMinor    uint32
	DwReserved1               uint32
	DwReserved2               uint32
}

SIMCONNECT_RECV_OPEN is sent on a successful SimConnect_Open (dwID == SIMCONNECT_RECV_ID_OPEN).

type SIMCONNECT_RECV_QUIT

type SIMCONNECT_RECV_QUIT struct {
	SIMCONNECT_RECV
}

SIMCONNECT_RECV_QUIT is sent when the simulator exits (dwID == SIMCONNECT_RECV_ID_QUIT).

type SIMCONNECT_RECV_RESERVED_KEY

type SIMCONNECT_RECV_RESERVED_KEY struct {
	SIMCONNECT_RECV
	SzChoiceReserved [30]byte
	SzReservedKey    [50]byte
}

SIMCONNECT_RECV_RESERVED_KEY carries reserved key information.

type SIMCONNECT_RECV_SIMOBJECT_DATA

type SIMCONNECT_RECV_SIMOBJECT_DATA struct {
	SIMCONNECT_RECV
	DwRequestID   uint32
	DwObjectID    uint32
	DwDefineID    uint32
	DwFlags       uint32
	DwEntryNumber uint32
	DwOutOf       uint32
	DwDefineCount uint32
	DwData        [1]uint32 // variable-length data starts here
}

SIMCONNECT_RECV_SIMOBJECT_DATA carries sim-object data (dwID == SIMCONNECT_RECV_ID_SIMOBJECT_DATA). DwData is a one-element placeholder; the actual data follows it in memory.

type SIMCONNECT_RECV_SIMOBJECT_DATA_BYTYPE

type SIMCONNECT_RECV_SIMOBJECT_DATA_BYTYPE struct {
	SIMCONNECT_RECV_SIMOBJECT_DATA
}

SIMCONNECT_RECV_SIMOBJECT_DATA_BYTYPE is the by-type variant of the above.

type SIMCONNECT_RECV_SUBSCRIBE_INPUT_EVENT

type SIMCONNECT_RECV_SUBSCRIBE_INPUT_EVENT struct {
	SIMCONNECT_RECV
	Hash  SIMCONNECT_PACKED_UINT64
	EType SIMCONNECT_INPUT_EVENT_TYPE
	Value [1]uint32 // variable-length
}

SIMCONNECT_RECV_SUBSCRIBE_INPUT_EVENT carries a subscribed input event value.

type SIMCONNECT_RECV_SYSTEM_STATE

type SIMCONNECT_RECV_SYSTEM_STATE struct {
	SIMCONNECT_RECV
	DwRequestID uint32
	DwInteger   uint32
	FFloat      float32
	SzString    [MAX_PATH]byte
}

SIMCONNECT_RECV_SYSTEM_STATE carries system state data.

type SIMCONNECT_RECV_VOR_LIST

type SIMCONNECT_RECV_VOR_LIST struct {
	SIMCONNECT_RECV_FACILITIES_LIST
	RgData [1]SIMCONNECT_DATA_FACILITY_VOR // variable-length
}

SIMCONNECT_RECV_VOR_LIST carries an array of VOR facilities.

type SIMCONNECT_RECV_WAYPOINT_LIST

type SIMCONNECT_RECV_WAYPOINT_LIST struct {
	SIMCONNECT_RECV_FACILITIES_LIST
	RgData [1]SIMCONNECT_DATA_FACILITY_WAYPOINT // variable-length
}

SIMCONNECT_RECV_WAYPOINT_LIST carries an array of waypoints.

type SIMCONNECT_RECV_WEATHER_OBSERVATION

type SIMCONNECT_RECV_WEATHER_OBSERVATION struct {
	SIMCONNECT_RECV
	DwRequestID uint32
	SzMetar     [1]byte // variable-length; max MAX_METAR_LENGTH
}

SIMCONNECT_RECV_WEATHER_OBSERVATION carries METAR data. SzMetar is a variable-length string; only the first byte is declared here.

type SIMCONNECT_SIMOBJECT_TYPE

type SIMCONNECT_SIMOBJECT_TYPE uint32

SIMCONNECT_SIMOBJECT_TYPE identifies the type of simulation object.

const (
	SIMCONNECT_SIMOBJECT_TYPE_USER            SIMCONNECT_SIMOBJECT_TYPE = 0
	SIMCONNECT_SIMOBJECT_TYPE_USER_AIRCRAFT   SIMCONNECT_SIMOBJECT_TYPE = 0
	SIMCONNECT_SIMOBJECT_TYPE_ALL             SIMCONNECT_SIMOBJECT_TYPE = 1
	SIMCONNECT_SIMOBJECT_TYPE_AIRCRAFT        SIMCONNECT_SIMOBJECT_TYPE = 2
	SIMCONNECT_SIMOBJECT_TYPE_HELICOPTER      SIMCONNECT_SIMOBJECT_TYPE = 3
	SIMCONNECT_SIMOBJECT_TYPE_BOAT            SIMCONNECT_SIMOBJECT_TYPE = 4
	SIMCONNECT_SIMOBJECT_TYPE_GROUND          SIMCONNECT_SIMOBJECT_TYPE = 5
	SIMCONNECT_SIMOBJECT_TYPE_HOT_AIR_BALLOON SIMCONNECT_SIMOBJECT_TYPE = 6
	SIMCONNECT_SIMOBJECT_TYPE_ANIMAL          SIMCONNECT_SIMOBJECT_TYPE = 7
	SIMCONNECT_SIMOBJECT_TYPE_USER_AVATAR     SIMCONNECT_SIMOBJECT_TYPE = 8
	SIMCONNECT_SIMOBJECT_TYPE_USER_CURRENT    SIMCONNECT_SIMOBJECT_TYPE = 9
)

type SIMCONNECT_SOUND_SYSTEM_EVENT_DATA

type SIMCONNECT_SOUND_SYSTEM_EVENT_DATA = uint32

type SIMCONNECT_STATE

type SIMCONNECT_STATE uint32

SIMCONNECT_STATE on/off state.

const (
	SIMCONNECT_STATE_OFF SIMCONNECT_STATE = iota
	SIMCONNECT_STATE_ON
)

type SIMCONNECT_TEXT_RESULT

type SIMCONNECT_TEXT_RESULT uint32

SIMCONNECT_TEXT_RESULT text display result.

const (
	SIMCONNECT_TEXT_RESULT_MENU_SELECT_1  SIMCONNECT_TEXT_RESULT = 0
	SIMCONNECT_TEXT_RESULT_MENU_SELECT_2  SIMCONNECT_TEXT_RESULT = 1
	SIMCONNECT_TEXT_RESULT_MENU_SELECT_3  SIMCONNECT_TEXT_RESULT = 2
	SIMCONNECT_TEXT_RESULT_MENU_SELECT_4  SIMCONNECT_TEXT_RESULT = 3
	SIMCONNECT_TEXT_RESULT_MENU_SELECT_5  SIMCONNECT_TEXT_RESULT = 4
	SIMCONNECT_TEXT_RESULT_MENU_SELECT_6  SIMCONNECT_TEXT_RESULT = 5
	SIMCONNECT_TEXT_RESULT_MENU_SELECT_7  SIMCONNECT_TEXT_RESULT = 6
	SIMCONNECT_TEXT_RESULT_MENU_SELECT_8  SIMCONNECT_TEXT_RESULT = 7
	SIMCONNECT_TEXT_RESULT_MENU_SELECT_9  SIMCONNECT_TEXT_RESULT = 8
	SIMCONNECT_TEXT_RESULT_MENU_SELECT_10 SIMCONNECT_TEXT_RESULT = 9
	SIMCONNECT_TEXT_RESULT_DISPLAYED      SIMCONNECT_TEXT_RESULT = 0x00010000
	SIMCONNECT_TEXT_RESULT_QUEUED         SIMCONNECT_TEXT_RESULT = 0x00010001
	SIMCONNECT_TEXT_RESULT_REMOVED        SIMCONNECT_TEXT_RESULT = 0x00010002
	SIMCONNECT_TEXT_RESULT_REPLACED       SIMCONNECT_TEXT_RESULT = 0x00010003
	SIMCONNECT_TEXT_RESULT_TIMEOUT        SIMCONNECT_TEXT_RESULT = 0x00010004
)

type SIMCONNECT_TEXT_TYPE

type SIMCONNECT_TEXT_TYPE uint32

SIMCONNECT_TEXT_TYPE controls text display style.

const (
	SIMCONNECT_TEXT_TYPE_SCROLL_BLACK   SIMCONNECT_TEXT_TYPE = 0
	SIMCONNECT_TEXT_TYPE_SCROLL_WHITE   SIMCONNECT_TEXT_TYPE = 1
	SIMCONNECT_TEXT_TYPE_SCROLL_RED     SIMCONNECT_TEXT_TYPE = 2
	SIMCONNECT_TEXT_TYPE_SCROLL_GREEN   SIMCONNECT_TEXT_TYPE = 3
	SIMCONNECT_TEXT_TYPE_SCROLL_BLUE    SIMCONNECT_TEXT_TYPE = 4
	SIMCONNECT_TEXT_TYPE_SCROLL_YELLOW  SIMCONNECT_TEXT_TYPE = 5
	SIMCONNECT_TEXT_TYPE_SCROLL_MAGENTA SIMCONNECT_TEXT_TYPE = 6
	SIMCONNECT_TEXT_TYPE_SCROLL_CYAN    SIMCONNECT_TEXT_TYPE = 7
	SIMCONNECT_TEXT_TYPE_PRINT_BLACK    SIMCONNECT_TEXT_TYPE = 0x0100
	SIMCONNECT_TEXT_TYPE_PRINT_WHITE    SIMCONNECT_TEXT_TYPE = 0x0101
	SIMCONNECT_TEXT_TYPE_PRINT_RED      SIMCONNECT_TEXT_TYPE = 0x0102
	SIMCONNECT_TEXT_TYPE_PRINT_GREEN    SIMCONNECT_TEXT_TYPE = 0x0103
	SIMCONNECT_TEXT_TYPE_PRINT_BLUE     SIMCONNECT_TEXT_TYPE = 0x0104
	SIMCONNECT_TEXT_TYPE_PRINT_YELLOW   SIMCONNECT_TEXT_TYPE = 0x0105
	SIMCONNECT_TEXT_TYPE_PRINT_MAGENTA  SIMCONNECT_TEXT_TYPE = 0x0106
	SIMCONNECT_TEXT_TYPE_PRINT_CYAN     SIMCONNECT_TEXT_TYPE = 0x0107
	SIMCONNECT_TEXT_TYPE_MENU           SIMCONNECT_TEXT_TYPE = 0x0200
)

type SIMCONNECT_VERSION_BASE_TYPE

type SIMCONNECT_VERSION_BASE_TYPE struct {
	Major    uint16
	Minor    uint16
	Revision uint16
	Build    uint16
}

SIMCONNECT_VERSION_BASE_TYPE holds a four-part version number.

type SIMCONNECT_VIEW_SYSTEM_EVENT_DATA

type SIMCONNECT_VIEW_SYSTEM_EVENT_DATA = uint32

type SIMCONNECT_VOR_FLAGS

type SIMCONNECT_VOR_FLAGS = uint32

Flag types (typedef DWORD in C)

type SIMCONNECT_WAYPOINT_FLAGS

type SIMCONNECT_WAYPOINT_FLAGS = uint32

type SIMCONNECT_WEATHER_MODE

type SIMCONNECT_WEATHER_MODE uint32

SIMCONNECT_WEATHER_MODE weather mode.

const (
	SIMCONNECT_WEATHER_MODE_THEME SIMCONNECT_WEATHER_MODE = iota
	SIMCONNECT_WEATHER_MODE_RWW
	SIMCONNECT_WEATHER_MODE_CUSTOM
	SIMCONNECT_WEATHER_MODE_GLOBAL
)

type SimConnect

type SimConnect struct {
	// contains filtered or unexported fields
}

SimConnect wraps a SimConnect session handle.

func Open

func Open(name string, hWnd HWND, userEventWin32 uint32, hEventHandle HANDLE, configIndex uint32) (*SimConnect, error)

Open connects to MSFS SimConnect. hWnd and userEventWin32 may be 0; configIndex should be 0 for local.

func (*SimConnect) AICreateEnrouteATCAircraft

func (sc *SimConnect) AICreateEnrouteATCAircraft(containerTitle, tailNumber string, flightNumber int32, flightPlanPath string, flightPlanPosition float64, touchAndGo bool, requestID SIMCONNECT_DATA_REQUEST_ID) error

AICreateEnrouteATCAircraft creates an en-route AI ATC aircraft.

func (*SimConnect) AICreateEnrouteATCAircraft_EX1

func (sc *SimConnect) AICreateEnrouteATCAircraft_EX1(containerTitle, livery, tailNumber string, flightNumber int32, flightPlanPath string, flightPlanPosition float64, touchAndGo bool, requestID SIMCONNECT_DATA_REQUEST_ID) error

AICreateEnrouteATCAircraft_EX1 is the extended version with livery support.

func (*SimConnect) AICreateNonATCAircraft

func (sc *SimConnect) AICreateNonATCAircraft(containerTitle, tailNumber string, initPos SIMCONNECT_DATA_INITPOSITION, requestID SIMCONNECT_DATA_REQUEST_ID) error

AICreateNonATCAircraft creates a non-ATC AI aircraft at an initial position.

func (*SimConnect) AICreateNonATCAircraft_EX1

func (sc *SimConnect) AICreateNonATCAircraft_EX1(containerTitle, livery, tailNumber string, initPos SIMCONNECT_DATA_INITPOSITION, requestID SIMCONNECT_DATA_REQUEST_ID) error

AICreateNonATCAircraft_EX1 is the extended version with livery support.

func (*SimConnect) AICreateParkedATCAircraft

func (sc *SimConnect) AICreateParkedATCAircraft(containerTitle, tailNumber, airportID string, requestID SIMCONNECT_DATA_REQUEST_ID) error

AICreateParkedATCAircraft creates a parked AI ATC aircraft.

func (*SimConnect) AICreateParkedATCAircraft_EX1

func (sc *SimConnect) AICreateParkedATCAircraft_EX1(containerTitle, livery, tailNumber, airportID string, requestID SIMCONNECT_DATA_REQUEST_ID) error

AICreateParkedATCAircraft_EX1 is the extended version with livery support.

func (*SimConnect) AICreateSimulatedObject

func (sc *SimConnect) AICreateSimulatedObject(containerTitle string, initPos SIMCONNECT_DATA_INITPOSITION, requestID SIMCONNECT_DATA_REQUEST_ID) error

AICreateSimulatedObject creates a non-aircraft AI object.

func (*SimConnect) AICreateSimulatedObject_EX1

func (sc *SimConnect) AICreateSimulatedObject_EX1(containerTitle, livery string, initPos SIMCONNECT_DATA_INITPOSITION, requestID SIMCONNECT_DATA_REQUEST_ID) error

AICreateSimulatedObject_EX1 is the extended version with livery support.

func (*SimConnect) AIReleaseControl

func (sc *SimConnect) AIReleaseControl(objectID SIMCONNECT_OBJECT_ID, requestID SIMCONNECT_DATA_REQUEST_ID) error

AIReleaseControl releases AI control of an object.

func (*SimConnect) AIRemoveObject

func (sc *SimConnect) AIRemoveObject(objectID SIMCONNECT_OBJECT_ID, requestID SIMCONNECT_DATA_REQUEST_ID) error

AIRemoveObject removes an AI object from the simulation.

func (*SimConnect) AISetAircraftFlightPlan

func (sc *SimConnect) AISetAircraftFlightPlan(objectID SIMCONNECT_OBJECT_ID, flightPlanPath string, requestID SIMCONNECT_DATA_REQUEST_ID) error

AISetAircraftFlightPlan assigns a flight plan to an AI aircraft.

func (*SimConnect) AddClientEventToNotificationGroup

func (sc *SimConnect) AddClientEventToNotificationGroup(groupID SIMCONNECT_NOTIFICATION_GROUP_ID, eventID SIMCONNECT_CLIENT_EVENT_ID, maskable bool) error

AddClientEventToNotificationGroup adds a client event to a notification group.

func (*SimConnect) AddFacilityDataDefinitionFilter

func (sc *SimConnect) AddFacilityDataDefinitionFilter(defineID SIMCONNECT_DATA_DEFINITION_ID, filterPath string, cbUnitSize uint32, pFilterData unsafe.Pointer) error

AddFacilityDataDefinitionFilter adds a filter to a facility data definition.

func (*SimConnect) AddToClientDataDefinition

func (sc *SimConnect) AddToClientDataDefinition(defineID SIMCONNECT_CLIENT_DATA_DEFINITION_ID, dwOffset, dwSizeOrType uint32, epsilon float32, datumID uint32) error

AddToClientDataDefinition adds a datum to a client data definition.

func (*SimConnect) AddToDataDefinition

func (sc *SimConnect) AddToDataDefinition(defineID SIMCONNECT_DATA_DEFINITION_ID, datumName, unitsName string, datumType SIMCONNECT_DATATYPE, epsilon float32, datumID uint32) error

AddToDataDefinition adds a simulation variable to a data definition. Pass SIMCONNECT_UNUSED for datumID to auto-assign.

func (*SimConnect) AddToFacilityDefinition

func (sc *SimConnect) AddToFacilityDefinition(defineID SIMCONNECT_DATA_DEFINITION_ID, fieldName string) error

AddToFacilityDefinition adds a named field to a facility data definition.

func (*SimConnect) CallCommBusEvent

func (sc *SimConnect) CallCommBusEvent(eventName string, broadcastTo SIMCONNECT_COMM_BUS_BROADCAST_TO, data string) error

CallCommBusEvent broadcasts a comm-bus event to the given targets.

func (*SimConnect) CallCommBusEventBytes

func (sc *SimConnect) CallCommBusEventBytes(eventName string, broadcastTo SIMCONNECT_COMM_BUS_BROADCAST_TO, data []byte) error

CallCommBusEventBytes broadcasts a comm-bus event with an exact byte payload.

func (*SimConnect) CallDispatch

func (sc *SimConnect) CallDispatch(pfn DispatchProc, pContext uintptr) error

CallDispatch calls pfn for every queued packet. The callback runs synchronously inside this call. Pass any context value as pContext; it will be forwarded to pfn unchanged.

func (*SimConnect) CameraAcquire

func (sc *SimConnect) CameraAcquire(clientID string) error

CameraAcquire acquires camera control with the given client ID.

func (*SimConnect) CameraDisableFlag

func (sc *SimConnect) CameraDisableFlag(flag uint32) error

CameraDisableFlag disables a camera flag.

func (*SimConnect) CameraEnableFlag

func (sc *SimConnect) CameraEnableFlag(flag uint32) error

CameraEnableFlag enables a camera flag.

func (*SimConnect) CameraGet

func (sc *SimConnect) CameraGet(referential uint32) error

CameraGet requests camera data for the given referential.

func (*SimConnect) CameraGetStatus

func (sc *SimConnect) CameraGetStatus() error

CameraGetStatus requests the current camera acquisition status.

func (*SimConnect) CameraRelease

func (sc *SimConnect) CameraRelease(cameraDefName string) error

CameraRelease releases a previously acquired camera.

func (*SimConnect) CameraSet

func (sc *SimConnect) CameraSet(cameraData SIMCONNECT_DATA_CAMERA, dataMask uint32) error

CameraSet sets the camera using a SIMCONNECT_DATA_CAMERA and a data mask.

func (*SimConnect) CameraSetRelative6DOF

func (sc *SimConnect) CameraSetRelative6DOF(deltaX, deltaY, deltaZ, pitchDeg, bankDeg, headingDeg float32) error

CameraSetRelative6DOF adjusts the camera position relative to its current position.

func (*SimConnect) CameraSetUsingCameraDefinition

func (sc *SimConnect) CameraSetUsingCameraDefinition(cameraDefinition string) error

CameraSetUsingCameraDefinition sets a camera using a named camera definition.

func (*SimConnect) ClearAllFacilityDataDefinitionFilters

func (sc *SimConnect) ClearAllFacilityDataDefinitionFilters(defineID SIMCONNECT_DATA_DEFINITION_ID) error

ClearAllFacilityDataDefinitionFilters removes all filters from a facility data definition.

func (*SimConnect) ClearClientDataDefinition

func (sc *SimConnect) ClearClientDataDefinition(defineID SIMCONNECT_CLIENT_DATA_DEFINITION_ID) error

ClearClientDataDefinition removes all datums from a client data definition.

func (*SimConnect) ClearDataDefinition

func (sc *SimConnect) ClearDataDefinition(defineID SIMCONNECT_DATA_DEFINITION_ID) error

ClearDataDefinition removes all variables from a data definition.

func (*SimConnect) ClearInputGroup

func (sc *SimConnect) ClearInputGroup(groupID SIMCONNECT_INPUT_GROUP_ID) error

ClearInputGroup removes all input definitions from an input group.

func (*SimConnect) ClearNotificationGroup

func (sc *SimConnect) ClearNotificationGroup(groupID SIMCONNECT_NOTIFICATION_GROUP_ID) error

ClearNotificationGroup removes all events from a notification group.

func (*SimConnect) Close

func (sc *SimConnect) Close() error

Close terminates the SimConnect session.

func (*SimConnect) CompleteCustomMissionAction

func (sc *SimConnect) CompleteCustomMissionAction(guidInstanceID GUID) error

CompleteCustomMissionAction completes a custom mission action.

func (*SimConnect) CreateClientData

func (sc *SimConnect) CreateClientData(clientDataID SIMCONNECT_CLIENT_DATA_ID, dwSize uint32, flags SIMCONNECT_CREATE_CLIENT_DATA_FLAG) error

CreateClientData creates a client data area of the given size.

func (*SimConnect) DeleteCameraWorldLocker

func (sc *SimConnect) DeleteCameraWorldLocker() error

DeleteCameraWorldLocker removes the active world locker.

func (*SimConnect) EnumerateCameraDefinitions

func (sc *SimConnect) EnumerateCameraDefinitions() error

EnumerateCameraDefinitions requests the list of available camera definitions.

func (*SimConnect) EnumerateControllers

func (sc *SimConnect) EnumerateControllers() error

EnumerateControllers requests a list of connected input controllers.

func (*SimConnect) EnumerateInputEventParams

func (sc *SimConnect) EnumerateInputEventParams(hash uint64) error

EnumerateInputEventParams requests the parameters of an input event.

func (*SimConnect) EnumerateInputEvents

func (sc *SimConnect) EnumerateInputEvents(requestID SIMCONNECT_DATA_REQUEST_ID) error

EnumerateInputEvents requests a list of all available input events.

func (*SimConnect) EnumerateSimObjectsAndLiveries

func (sc *SimConnect) EnumerateSimObjectsAndLiveries(requestID SIMCONNECT_DATA_REQUEST_ID, objType SIMCONNECT_SIMOBJECT_TYPE) error

EnumerateSimObjectsAndLiveries requests a list of sim objects with their liveries.

func (*SimConnect) ExecuteAction

func (sc *SimConnect) ExecuteAction(cbRequestID uint32, actionID string, cbUnitSize uint32, pParamValues unsafe.Pointer) error

ExecuteAction executes a named WASM action.

func (*SimConnect) ExecuteMissionAction

func (sc *SimConnect) ExecuteMissionAction(guidInstanceID GUID) error

ExecuteMissionAction executes a named mission action by GUID.

func (*SimConnect) FlightLoad

func (sc *SimConnect) FlightLoad(fileName string) error

FlightLoad loads a saved flight (.FLT file).

func (*SimConnect) FlightPlanLoad

func (sc *SimConnect) FlightPlanLoad(fileName string) error

FlightPlanLoad loads a flight plan (.PLN file).

func (*SimConnect) FlightSave

func (sc *SimConnect) FlightSave(fileName, title, description string, flags uint32) error

FlightSave saves the current flight to a .FLT file.

func (*SimConnect) FlightSaveWithOptionalTitle

func (sc *SimConnect) FlightSaveWithOptionalTitle(fileName string, title *string, description string, flags uint32) error

FlightSaveWithOptionalTitle saves the current flight to a .FLT file. If title is nil, SimConnect uses fileName as the saved flight title.

func (*SimConnect) GetInputEvent

func (sc *SimConnect) GetInputEvent(requestID SIMCONNECT_DATA_REQUEST_ID, hash uint64) error

GetInputEvent requests the current value of an input event by hash.

func (*SimConnect) GetLastSentPacketID

func (sc *SimConnect) GetLastSentPacketID() (uint32, error)

GetLastSentPacketID retrieves the packet ID of the last sent packet.

func (*SimConnect) GetNextDispatch

func (sc *SimConnect) GetNextDispatch() (*SIMCONNECT_RECV, uint32, error)

GetNextDispatch retrieves the next packet without blocking. Returns nil, 0, nil when no packet is available.

func (*SimConnect) MapClientDataNameToID

func (sc *SimConnect) MapClientDataNameToID(clientDataName string, clientDataID SIMCONNECT_CLIENT_DATA_ID) error

MapClientDataNameToID maps a client data area name to a client data ID.

func (*SimConnect) MapClientEventToSimEvent

func (sc *SimConnect) MapClientEventToSimEvent(eventID SIMCONNECT_CLIENT_EVENT_ID, eventName string) error

MapClientEventToSimEvent associates a client event ID with a named simulator event. Pass an empty string to create a private client event.

func (*SimConnect) MapInputEventToClientEvent

func (sc *SimConnect) MapInputEventToClientEvent(groupID SIMCONNECT_INPUT_GROUP_ID, szInputDefinition string, downEventID SIMCONNECT_CLIENT_EVENT_ID, downValue uint32, upEventID SIMCONNECT_CLIENT_EVENT_ID, upValue uint32, maskable bool) error

MapInputEventToClientEvent maps an input definition to client events.

func (*SimConnect) MapInputEventToClientEvent_EX1

func (sc *SimConnect) MapInputEventToClientEvent_EX1(groupID SIMCONNECT_INPUT_GROUP_ID, szInputDefinition string, downEventID SIMCONNECT_CLIENT_EVENT_ID, downValue uint32, upEventID SIMCONNECT_CLIENT_EVENT_ID, upValue uint32, maskable bool) error

MapInputEventToClientEvent_EX1 is the extended version of MapInputEventToClientEvent.

func (*SimConnect) MenuAddItem

func (sc *SimConnect) MenuAddItem(menuItem string, menuEventID SIMCONNECT_CLIENT_EVENT_ID, dwData uint32) error

MenuAddItem adds a top-level SimConnect menu item.

func (*SimConnect) MenuAddSubItem

func (sc *SimConnect) MenuAddSubItem(menuEventID SIMCONNECT_CLIENT_EVENT_ID, menuItem string, subMenuEventID SIMCONNECT_CLIENT_EVENT_ID, dwData uint32) error

MenuAddSubItem adds a sub-menu item to an existing menu item.

func (*SimConnect) MenuDeleteItem

func (sc *SimConnect) MenuDeleteItem(menuEventID SIMCONNECT_CLIENT_EVENT_ID) error

MenuDeleteItem removes a top-level menu item.

func (*SimConnect) MenuDeleteSubItem

func (sc *SimConnect) MenuDeleteSubItem(menuEventID SIMCONNECT_CLIENT_EVENT_ID, subMenuEventID SIMCONNECT_CLIENT_EVENT_ID) error

MenuDeleteSubItem removes a sub-menu item.

func (*SimConnect) RemoveClientEvent

func (sc *SimConnect) RemoveClientEvent(groupID SIMCONNECT_NOTIFICATION_GROUP_ID, eventID SIMCONNECT_CLIENT_EVENT_ID) error

RemoveClientEvent removes a client event from a notification group.

func (*SimConnect) RemoveInputEvent

func (sc *SimConnect) RemoveInputEvent(groupID SIMCONNECT_INPUT_GROUP_ID, szInputDefinition string) error

RemoveInputEvent removes a single input definition from an input group.

func (*SimConnect) RequestAllFacilities

func (sc *SimConnect) RequestAllFacilities(listType SIMCONNECT_FACILITY_LIST_TYPE, requestID SIMCONNECT_DATA_REQUEST_ID) error

RequestAllFacilities requests all facilities of a given type worldwide.

func (*SimConnect) RequestCameraWorldLocker

func (sc *SimConnect) RequestCameraWorldLocker(lockerPosition SIMCONNECT_DATA_XYZ, referential SIMCONNECT_POSITION_REFERENTIAL, objectID uint32) error

RequestCameraWorldLocker requests a world-locker at the given position.

func (*SimConnect) RequestClientData

RequestClientData requests data from a client data area.

func (*SimConnect) RequestDataOnSimObject

func (sc *SimConnect) RequestDataOnSimObject(requestID SIMCONNECT_DATA_REQUEST_ID, defineID SIMCONNECT_DATA_DEFINITION_ID, objectID SIMCONNECT_OBJECT_ID, period SIMCONNECT_PERIOD, flags SIMCONNECT_DATA_REQUEST_FLAG, origin, interval, limit uint32) error

RequestDataOnSimObject requests data for a specific sim object.

func (*SimConnect) RequestDataOnSimObjectType

func (sc *SimConnect) RequestDataOnSimObjectType(requestID SIMCONNECT_DATA_REQUEST_ID, defineID SIMCONNECT_DATA_DEFINITION_ID, radiusMeters uint32, objType SIMCONNECT_SIMOBJECT_TYPE) error

RequestDataOnSimObjectType requests data for objects of a given type within a radius.

func (*SimConnect) RequestFacilitiesList

func (sc *SimConnect) RequestFacilitiesList(listType SIMCONNECT_FACILITY_LIST_TYPE, requestID SIMCONNECT_DATA_REQUEST_ID) error

RequestFacilitiesList requests a one-time list of all in-range facilities.

func (*SimConnect) RequestFacilitiesList_EX1

func (sc *SimConnect) RequestFacilitiesList_EX1(listType SIMCONNECT_FACILITY_LIST_TYPE, requestID SIMCONNECT_DATA_REQUEST_ID) error

RequestFacilitiesList_EX1 requests a one-time facility list (extended).

func (*SimConnect) RequestFacilityData

func (sc *SimConnect) RequestFacilityData(defineID SIMCONNECT_DATA_DEFINITION_ID, requestID SIMCONNECT_DATA_REQUEST_ID, icao, region string) error

RequestFacilityData requests facility data by ICAO and region.

func (*SimConnect) RequestFacilityData_EX1

func (sc *SimConnect) RequestFacilityData_EX1(defineID SIMCONNECT_DATA_DEFINITION_ID, requestID SIMCONNECT_DATA_REQUEST_ID, icao, region string, facilityType byte) error

RequestFacilityData_EX1 is the extended version with a type discriminator.

func (*SimConnect) RequestJetwayData

func (sc *SimConnect) RequestJetwayData(airportIcao string, indexes []int32) error

RequestJetwayData requests jetway data for the given airport and parking indexes.

func (*SimConnect) RequestNotificationGroup

func (sc *SimConnect) RequestNotificationGroup(groupID SIMCONNECT_NOTIFICATION_GROUP_ID, dwReserved, flags uint32) error

RequestNotificationGroup requests notifications to be re-sent.

func (*SimConnect) RequestReservedKey

func (sc *SimConnect) RequestReservedKey(eventID SIMCONNECT_CLIENT_EVENT_ID, keyChoice1, keyChoice2, keyChoice3 string) error

RequestReservedKey requests exclusive use of up to three key combinations.

func (*SimConnect) RequestResponseTimes

func (sc *SimConnect) RequestResponseTimes(n uint32) ([]float32, error)

RequestResponseTimes retrieves response-time measurements.

func (*SimConnect) RequestSystemState

func (sc *SimConnect) RequestSystemState(requestID SIMCONNECT_DATA_REQUEST_ID, state string) error

RequestSystemState requests the current value of a named system state variable.

func (*SimConnect) SetClientData

func (sc *SimConnect) SetClientData(clientDataID SIMCONNECT_CLIENT_DATA_ID, defineID SIMCONNECT_CLIENT_DATA_DEFINITION_ID, flags SIMCONNECT_CLIENT_DATA_SET_FLAG, dwReserved, cbUnitSize uint32, pDataSet unsafe.Pointer) error

SetClientData writes data to a client data area.

func (*SimConnect) SetDataOnSimObject

func (sc *SimConnect) SetDataOnSimObject(defineID SIMCONNECT_DATA_DEFINITION_ID, objectID SIMCONNECT_OBJECT_ID, flags SIMCONNECT_DATA_SET_FLAG, arrayCount, cbUnitSize uint32, pDataSet unsafe.Pointer) error

SetDataOnSimObject writes data to a sim object. pDataSet must point to a buffer of cbUnitSize * arrayCount bytes.

func (*SimConnect) SetInputEvent

func (sc *SimConnect) SetInputEvent(hash uint64, cbUnitSize uint32, value unsafe.Pointer) error

SetInputEvent sets the value of an input event by hash.

func (*SimConnect) SetInputGroupPriority

func (sc *SimConnect) SetInputGroupPriority(groupID SIMCONNECT_INPUT_GROUP_ID, priority uint32) error

SetInputGroupPriority sets the priority of an input group.

func (*SimConnect) SetInputGroupState

func (sc *SimConnect) SetInputGroupState(groupID SIMCONNECT_INPUT_GROUP_ID, state uint32) error

SetInputGroupState enables or disables an input group.

func (*SimConnect) SetNotificationGroupPriority

func (sc *SimConnect) SetNotificationGroupPriority(groupID SIMCONNECT_NOTIFICATION_GROUP_ID, priority uint32) error

SetNotificationGroupPriority sets the priority of a notification group.

func (*SimConnect) SetSystemEventState

func (sc *SimConnect) SetSystemEventState(eventID SIMCONNECT_CLIENT_EVENT_ID, state SIMCONNECT_STATE) error

SetSystemEventState enables or disables a previously subscribed system event.

func (*SimConnect) SetSystemState

func (sc *SimConnect) SetSystemState(state string, dwInteger uint32, fFloat float32, szString string) error

SetSystemState sets a named system state variable.

func (*SimConnect) SubscribeInputEvent

func (sc *SimConnect) SubscribeInputEvent(hash uint64) error

SubscribeInputEvent subscribes to value changes for an input event.

func (*SimConnect) SubscribeToCameraStatusUpdate

func (sc *SimConnect) SubscribeToCameraStatusUpdate() error

SubscribeToCameraStatusUpdate subscribes to camera status change events.

func (*SimConnect) SubscribeToCameraWorldLockerStatusUpdate

func (sc *SimConnect) SubscribeToCameraWorldLockerStatusUpdate() error

SubscribeToCameraWorldLockerStatusUpdate subscribes to world-locker status events.

func (*SimConnect) SubscribeToCommBusEvent

func (sc *SimConnect) SubscribeToCommBusEvent(eventID SIMCONNECT_CLIENT_EVENT_ID, eventName string) error

SubscribeToCommBusEvent subscribes to a named comm-bus event.

func (*SimConnect) SubscribeToFacilities

func (sc *SimConnect) SubscribeToFacilities(listType SIMCONNECT_FACILITY_LIST_TYPE, requestID SIMCONNECT_DATA_REQUEST_ID) error

SubscribeToFacilities subscribes to facility additions in range.

func (*SimConnect) SubscribeToFacilities_EX1

func (sc *SimConnect) SubscribeToFacilities_EX1(listType SIMCONNECT_FACILITY_LIST_TYPE, newElemRequestID, oldElemRequestID SIMCONNECT_DATA_REQUEST_ID) error

SubscribeToFacilities_EX1 subscribes with separate new/old request IDs.

func (*SimConnect) SubscribeToFlowEvent

func (sc *SimConnect) SubscribeToFlowEvent() error

SubscribeToFlowEvent subscribes to flight flow events (load, teleport, etc.).

func (*SimConnect) SubscribeToSystemEvent

func (sc *SimConnect) SubscribeToSystemEvent(eventID SIMCONNECT_CLIENT_EVENT_ID, systemEventName string) error

SubscribeToSystemEvent subscribes to a named simulator system event.

func (*SimConnect) Text

func (sc *SimConnect) Text(textType SIMCONNECT_TEXT_TYPE, timeSeconds float32, eventID SIMCONNECT_CLIENT_EVENT_ID, cbUnitSize uint32, pDataSet unsafe.Pointer) error

Text displays text in the simulator.

func (*SimConnect) TransmitClientEvent

func (sc *SimConnect) TransmitClientEvent(objectID SIMCONNECT_OBJECT_ID, eventID SIMCONNECT_CLIENT_EVENT_ID, dwData uint32, groupID SIMCONNECT_NOTIFICATION_GROUP_ID, flags SIMCONNECT_EVENT_FLAG) error

TransmitClientEvent sends an event to the simulator.

func (*SimConnect) TransmitClientEvent_EX1

func (sc *SimConnect) TransmitClientEvent_EX1(objectID SIMCONNECT_OBJECT_ID, eventID SIMCONNECT_CLIENT_EVENT_ID, groupID SIMCONNECT_NOTIFICATION_GROUP_ID, flags SIMCONNECT_EVENT_FLAG, dwData0, dwData1, dwData2, dwData3, dwData4 uint32) error

TransmitClientEvent_EX1 sends an event with up to 5 DWORD data values.

func (*SimConnect) UnsubscribeFromSystemEvent

func (sc *SimConnect) UnsubscribeFromSystemEvent(eventID SIMCONNECT_CLIENT_EVENT_ID) error

UnsubscribeFromSystemEvent cancels a system event subscription.

func (*SimConnect) UnsubscribeInputEvent

func (sc *SimConnect) UnsubscribeInputEvent(hash uint64) error

UnsubscribeInputEvent cancels a subscription to an input event.

func (*SimConnect) UnsubscribeToCameraStatusUpdate

func (sc *SimConnect) UnsubscribeToCameraStatusUpdate() error

UnsubscribeToCameraStatusUpdate cancels a camera status subscription.

func (*SimConnect) UnsubscribeToCameraWorldLockerStatusUpdate

func (sc *SimConnect) UnsubscribeToCameraWorldLockerStatusUpdate() error

UnsubscribeToCameraWorldLockerStatusUpdate cancels a world-locker status subscription.

func (*SimConnect) UnsubscribeToCommBusEvent

func (sc *SimConnect) UnsubscribeToCommBusEvent(eventID SIMCONNECT_CLIENT_EVENT_ID) error

UnsubscribeToCommBusEvent cancels a comm-bus event subscription.

func (*SimConnect) UnsubscribeToFacilities

func (sc *SimConnect) UnsubscribeToFacilities(listType SIMCONNECT_FACILITY_LIST_TYPE) error

UnsubscribeToFacilities cancels a facilities subscription.

func (*SimConnect) UnsubscribeToFacilities_EX1

func (sc *SimConnect) UnsubscribeToFacilities_EX1(listType SIMCONNECT_FACILITY_LIST_TYPE, unsubscribeNewInRange, unsubscribeOldOutRange bool) error

UnsubscribeToFacilities_EX1 cancels new/old range subscriptions individually.

func (*SimConnect) UnsubscribeToFlowEvent

func (sc *SimConnect) UnsubscribeToFlowEvent() error

UnsubscribeToFlowEvent cancels a flow event subscription.

func (*SimConnect) WeatherCreateStation

func (sc *SimConnect) WeatherCreateStation(requestID SIMCONNECT_DATA_REQUEST_ID, icao, name string, lat, lon, alt float32) error

WeatherCreateStation creates a weather reporting station.

func (*SimConnect) WeatherCreateThermal

func (sc *SimConnect) WeatherCreateThermal(requestID SIMCONNECT_DATA_REQUEST_ID, lat, lon, alt, radius, height, coreRate, coreTurbulence, sinkRate, sinkTurbulence, coreSize, coreTransitionSize, sinkLayerSize, sinkTransitionSize float32) error

WeatherCreateThermal creates a thermal column.

func (*SimConnect) WeatherRemoveStation

func (sc *SimConnect) WeatherRemoveStation(requestID SIMCONNECT_DATA_REQUEST_ID, icao string) error

WeatherRemoveStation removes a weather reporting station.

func (*SimConnect) WeatherRemoveThermal

func (sc *SimConnect) WeatherRemoveThermal(objectID SIMCONNECT_OBJECT_ID) error

WeatherRemoveThermal removes a thermal previously created with WeatherCreateThermal.

func (*SimConnect) WeatherRequestCloudState

func (sc *SimConnect) WeatherRequestCloudState(requestID SIMCONNECT_DATA_REQUEST_ID, minLat, minLon, minAlt, maxLat, maxLon, maxAlt float32, flags uint32) error

WeatherRequestCloudState requests cloud-cover state for a geographic box.

func (*SimConnect) WeatherRequestInterpolatedObservation

func (sc *SimConnect) WeatherRequestInterpolatedObservation(requestID SIMCONNECT_DATA_REQUEST_ID, lat, lon, alt float32) error

WeatherRequestInterpolatedObservation requests a METAR at the given lat/lon/alt.

func (*SimConnect) WeatherRequestObservationAtNearestStation

func (sc *SimConnect) WeatherRequestObservationAtNearestStation(requestID SIMCONNECT_DATA_REQUEST_ID, lat, lon float32) error

WeatherRequestObservationAtNearestStation requests a METAR at the nearest station.

func (*SimConnect) WeatherRequestObservationAtStation

func (sc *SimConnect) WeatherRequestObservationAtStation(requestID SIMCONNECT_DATA_REQUEST_ID, icao string) error

WeatherRequestObservationAtStation requests a METAR at a named ICAO station.

func (*SimConnect) WeatherSetDynamicUpdateRate

func (sc *SimConnect) WeatherSetDynamicUpdateRate(rate uint32) error

WeatherSetDynamicUpdateRate controls how often weather updates are applied.

func (*SimConnect) WeatherSetModeCustom

func (sc *SimConnect) WeatherSetModeCustom() error

WeatherSetModeCustom sets weather to custom mode.

func (*SimConnect) WeatherSetModeGlobal

func (sc *SimConnect) WeatherSetModeGlobal() error

WeatherSetModeGlobal sets weather to global (real-world) mode.

func (*SimConnect) WeatherSetModeServer

func (sc *SimConnect) WeatherSetModeServer(port, seconds uint32) error

WeatherSetModeServer sets weather to server mode on the given port.

func (*SimConnect) WeatherSetModeTheme

func (sc *SimConnect) WeatherSetModeTheme(themeName string) error

WeatherSetModeTheme sets weather to a named theme.

func (*SimConnect) WeatherSetObservation

func (sc *SimConnect) WeatherSetObservation(seconds uint32, metar string) error

WeatherSetObservation sets a METAR observation string at a station.

type UINT64

type UINT64 = uint64

Windows primitive types used by SimConnect

Jump to

Keyboard shortcuts

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