Documentation
¶
Index ¶
- Constants
- func LoadNewDefaultDLL(path string) error
- type DWORD
- type DataFacilityAirport
- type DataFacilityWaypoint
- type Recv
- type RecvEvent
- type RecvEventError
- type RecvException
- type RecvExceptionID
- type RecvFacilityAirportList
- type RecvFacilityList
- type RecvFacilityWaypointList
- type RecvOpen
- type RecvSimobjectData
- type RecvSimobjectDataByType
- type SimConnect
- func (s *SimConnect) AddClientEventToNotificationGroup(groupID, eventID DWORD) error
- func (s *SimConnect) AddToDataDefinition(defineID DWORD, name, unit string, dataType DWORD) error
- func (s *SimConnect) Close() error
- func (s *SimConnect) GetDefineID(a interface{}) DWORD
- func (s *SimConnect) GetEventID() DWORD
- func (s *SimConnect) GetNextDispatch() (unsafe.Pointer, int32, error)
- func (s *SimConnect) MapClientEventToSimEvent(eventID DWORD, eventName string) error
- func (s *SimConnect) MenuAddItem(menuItem string, menuEventID, Data DWORD) error
- func (s *SimConnect) MenuDeleteItem(menuItem string, menuEventID, Data DWORD) error
- func (s *SimConnect) RegisterDataDefinition(a interface{}) error
- func (s *SimConnect) RequestDataOnSimObject(requestID, defineID, objectID, period, flags, origin, interval, limit DWORD) error
- func (s *SimConnect) RequestDataOnSimObjectType(requestID, defineID, radius, simobjectType DWORD) error
- func (s *SimConnect) RequestFacilitiesList(facilityType, requestID DWORD) error
- func (s *SimConnect) SetData(fr any) error
- func (s *SimConnect) SetDataOnSimObject(defineID, simobjectType, flags, arrayCount, size DWORD, buf unsafe.Pointer) error
- func (s *SimConnect) SetNotificationGroupPriority(groupID, priority DWORD) error
- func (s *SimConnect) ShowText(textType DWORD, duration float64, eventID DWORD, text string) error
- func (s *SimConnect) SubscribeToFacilities(facilityType, requestID DWORD) error
- func (s *SimConnect) SubscribeToSystemEvent(eventID DWORD, eventName string) error
- func (s *SimConnect) TransmitClientEvent(objectID, eventID, dwData, groupID, flags DWORD) error
- func (s *SimConnect) UnsubscribeToFacilities(facilityType DWORD) error
- type SimConnectOption
Constants ¶
const ( EVENT_FLAG_DEFAULT DWORD = 0x00 EVENT_FLAG_FAST_REPEAT_TIMER = 0x01 EVENT_FLAG_SLOW_REPEAT_TIMER = 0x02 EVENT_FLAG_GROUPID_IS_PRIORITY = 0x10 )
const ( SIMCONNECT_EXCEPTION_NONE RecvExceptionID = 0 SIMCONNECT_EXCEPTION_ERROR = 1 SIMCONNECT_EXCEPTION_SIZE_MISMATCH = 2 SIMCONNECT_EXCEPTION_UNRECOGNIZED_ID = 3 SIMCONNECT_EXCEPTION_UNOPENED = 4 SIMCONNECT_EXCEPTION_VERSION_MISMATCH = 5 SIMCONNECT_EXCEPTION_TOO_MANY_GROUPS = 6 SIMCONNECT_EXCEPTION_NAME_UNRECOGNIZED = 7 SIMCONNECT_EXCEPTION_TOO_MANY_EVENT_NAMES = 8 SIMCONNECT_EXCEPTION_EVENT_ID_DUPLICATE = 9 SIMCONNECT_EXCEPTION_TOO_MANY_MAPS = 10 SIMCONNECT_EXCEPTION_TOO_MANY_OBJECTS = 11 SIMCONNECT_EXCEPTION_TOO_MANY_REQUESTS = 12 SIMCONNECT_EXCEPTION_WEATHER_INVALID_PORT = 13 SIMCONNECT_EXCEPTION_WEATHER_INVALID_METAR = 14 SIMCONNECT_EXCEPTION_WEATHER_UNABLE_TO_GET_OBSERVATION = 15 SIMCONNECT_EXCEPTION_WEATHER_UNABLE_TO_CREATE_STATION = 16 SIMCONNECT_EXCEPTION_WEATHER_UNABLE_TO_REMOVE_STATION = 17 SIMCONNECT_EXCEPTION_INVALID_DATA_TYPE = 18 SIMCONNECT_EXCEPTION_INVALID_DATA_SIZE = 19 SIMCONNECT_EXCEPTION_DATA_ERROR = 20 SIMCONNECT_EXCEPTION_INVALID_ARRAY = 21 SIMCONNECT_EXCEPTION_CREATE_OBJECT_FAILED = 22 SIMCONNECT_EXCEPTION_LOAD_FLIGHTPLAN_FAILED = 23 SIMCONNECT_EXCEPTION_OPERATION_INVALID_FOR_OJBECT_TYPE = 24 SIMCONNECT_EXCEPTION_ILLEGAL_OPERATION = 25 SIMCONNECT_EXCEPTION_ALREADY_SUBSCRIBED = 26 SIMCONNECT_EXCEPTION_INVALID_ENUM = 27 SIMCONNECT_EXCEPTION_DEFINITION_ERROR = 28 SIMCONNECT_EXCEPTION_DUPLICATE_ID = 29 SIMCONNECT_EXCEPTION_DATUM_ID = 30 SIMCONNECT_EXCEPTION_OUT_OF_BOUNDS = 31 SIMCONNECT_EXCEPTION_ALREADY_CREATED = 32 SIMCONNECT_EXCEPTION_OBJECT_OUTSIDE_REALITY_BUBBLE = 33 SIMCONNECT_EXCEPTION_OBJECT_CONTAINER = 34 SIMCONNECT_EXCEPTION_OBJECT_AI = 35 SIMCONNECT_EXCEPTION_OBJECT_ATC = 36 SIMCONNECT_EXCEPTION_OBJECT_SCHEDULE = 37 )
const E_FAIL uint32 = 0x80004005
Variables ¶
This section is empty.
Functions ¶
func LoadNewDefaultDLL ¶
LoadNewDefaultDLL loads a new default DLL to be used with all connections
Types ¶
type DWORD ¶
type DWORD uint32
const ( DATATYPE_INVALID DWORD = iota // invalid data type DATATYPE_INT32 // 32-bit integer number DATATYPE_INT64 // 64-bit integer number DATATYPE_FLOAT32 // 32-bit floating-point number (float) DATATYPE_FLOAT64 // 64-bit floating-point number (double) DATATYPE_STRING8 // 8-byte string DATATYPE_STRING32 // 32-byte string DATATYPE_STRING64 // 64-byte string DATATYPE_STRING128 // 128-byte string DATATYPE_STRING256 // 256-byte string DATATYPE_STRING260 // 260-byte string DATATYPE_STRINGV // variable-length string DATATYPE_INITPOSITION // see SIMCONNECT_DATA_INITPOSITION DATATYPE_MARKERSTATE // see SIMCONNECT_DATA_MARKERSTATE DATATYPE_WAYPOINT // see SIMCONNECT_DATA_WAYPOINT DATATYPE_LATLONALT // see SIMCONNECT_DATA_LATLONALT DATATYPE_XYZ // see SIMCONNECT_DATA_XYZ DATATYPE_MAX // enum limit )
const ( RECV_ID_NULL DWORD = iota RECV_ID_EXCEPTION RECV_ID_OPEN RECV_ID_QUIT RECV_ID_EVENT RECV_ID_EVENT_OBJECT_ADDREMOVE RECV_ID_EVENT_FILENAME RECV_ID_EVENT_FRAME RECV_ID_SIMOBJECT_DATA RECV_ID_SIMOBJECT_DATA_BYTYPE RECV_ID_WEATHER_OBSERVATION RECV_ID_CLOUD_STATE RECV_ID_ASSIGNED_OBJECT_ID RECV_ID_RESERVED_KEY RECV_ID_CUSTOM_ACTION RECV_ID_SYSTEM_STATE RECV_ID_CLIENT_DATA RECV_ID_EVENT_WEATHER_MODE RECV_ID_AIRPORT_LIST RECV_ID_VOR_LIST RECV_ID_NDB_LIST RECV_ID_WAYPOINT_LIST RECV_ID_EVENT_MULTIPLAYER_SERVER_STARTED RECV_ID_EVENT_MULTIPLAYER_CLIENT_STARTED RECV_ID_EVENT_MULTIPLAYER_SESSION_ENDED RECV_ID_EVENT_RACE_END RECV_ID_EVENT_RACE_LAP RECV_ID_PICK )
const GROUP_PRIORITY_DEFAULT DWORD = 2000000000 // default priority
const GROUP_PRIORITY_HIGHEST DWORD = 1 // highest priority
Notification Group priority values
const GROUP_PRIORITY_HIGHEST_MASKABLE DWORD = 10000000 // highest priority that allows events to be masked
const GROUP_PRIORITY_LOWEST DWORD = 4000000000 // priorities lower than this will be ignored
const GROUP_PRIORITY_STANDARD DWORD = 1900000000 // standard priority
const OBJECT_ID_USER DWORD = 0 // proxy value for User vehicle ObjectID
const SIMCONNECT_EVENT_FLAG_DEFAULT DWORD = 0x00000000
Event flag values
const SIMCONNECT_EVENT_FLAG_FAST_REPEAT_TIMER DWORD = 0x00000001 // set event repeat timer to simulate fast repeat
const SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY DWORD = 0x00000010 // interpret GroupID parameter as priority value
const SIMCONNECT_EVENT_FLAG_SLOW_REPEAT_TIMER DWORD = 0x00000002 // set event repeat timer to simulate slow repeat
const TEXT_TYPE_MENU DWORD = 0x0200
const UNUSED DWORD = 0xffffffff // special value to indicate unused event, ID
type DataFacilityAirport ¶
type DataFacilityWaypoint ¶
type DataFacilityWaypoint struct { DataFacilityAirport MagVar float64 // Magvar in degrees }
type RecvEventError ¶
type RecvEventError RecvEvent
func (RecvEventError) Error ¶
func (e RecvEventError) Error() string
type RecvException ¶
type RecvException struct { Recv Exception DWORD // see SIMCONNECT_EXCEPTION //static const DWORD UNKNOWN_SENDID = 0; SendID DWORD // see SimConnect_GetLastSentPacketID //static const DWORD UNKNOWN_INDEX = DWORD_MAX; Index DWORD // index of parameter that was source of error }
func (RecvException) Error ¶
func (e RecvException) Error() string
type RecvExceptionID ¶
type RecvExceptionID uint32
type RecvFacilityAirportList ¶
type RecvFacilityAirportList struct { RecvFacilityList List [1]DataFacilityAirport }
type RecvFacilityList ¶
type RecvFacilityWaypointList ¶
type RecvFacilityWaypointList struct { RecvFacilityList List [1]DataFacilityWaypoint }
type RecvOpen ¶
type RecvOpen struct { Recv ApplicationName [256]byte ApplicationVersionMajor DWORD ApplicationVersionMinor DWORD ApplicationBuildMajor DWORD ApplicationBuildMinor DWORD SimConnectVersionMajor DWORD SimConnectVersionMinor DWORD SimConnectBuildMajor DWORD SimConnectBuildMinor DWORD Reserved1 DWORD Reserved2 DWORD }
type RecvSimobjectData ¶
type RecvSimobjectDataByType ¶
type RecvSimobjectDataByType struct {
RecvSimobjectData
}
type SimConnect ¶
type SimConnect struct {
// contains filtered or unexported fields
}
SimConnect is the main struct for connecting to SimConnect
func New ¶
func New(name string, opts ...SimConnectOption) (*SimConnect, error)
New creates a new SimConnect connection
func (*SimConnect) AddClientEventToNotificationGroup ¶
func (s *SimConnect) AddClientEventToNotificationGroup(groupID, eventID DWORD) error
func (*SimConnect) AddToDataDefinition ¶
func (s *SimConnect) AddToDataDefinition(defineID DWORD, name, unit string, dataType DWORD) error
derefDataType returns the SimConnect data type for a Go type
func (*SimConnect) Close ¶
func (s *SimConnect) Close() error
Close closes the SimConnect connection
func (*SimConnect) GetDefineID ¶
func (s *SimConnect) GetDefineID(a interface{}) DWORD
GetDefineID returns the define ID for a struct
func (*SimConnect) GetEventID ¶
func (s *SimConnect) GetEventID() DWORD
GetEventID returns a new event ID
func (*SimConnect) GetNextDispatch ¶
func (s *SimConnect) GetNextDispatch() (unsafe.Pointer, int32, error)
func (*SimConnect) MapClientEventToSimEvent ¶
func (s *SimConnect) MapClientEventToSimEvent(eventID DWORD, eventName string) error
func (*SimConnect) MenuAddItem ¶
func (s *SimConnect) MenuAddItem(menuItem string, menuEventID, Data DWORD) error
func (*SimConnect) MenuDeleteItem ¶
func (s *SimConnect) MenuDeleteItem(menuItem string, menuEventID, Data DWORD) error
func (*SimConnect) RegisterDataDefinition ¶
func (s *SimConnect) RegisterDataDefinition(a interface{}) error
RegisterDataDefinition registers a struct for data definition
func (*SimConnect) RequestDataOnSimObject ¶
func (s *SimConnect) RequestDataOnSimObject(requestID, defineID, objectID, period, flags, origin, interval, limit DWORD) error
func (*SimConnect) RequestDataOnSimObjectType ¶
func (s *SimConnect) RequestDataOnSimObjectType(requestID, defineID, radius, simobjectType DWORD) error
func (*SimConnect) RequestFacilitiesList ¶
func (s *SimConnect) RequestFacilitiesList(facilityType, requestID DWORD) error
func (*SimConnect) SetData ¶
func (s *SimConnect) SetData(fr any) error
SetData currently only supports float64 fields
func (*SimConnect) SetDataOnSimObject ¶
func (s *SimConnect) SetDataOnSimObject(defineID, simobjectType, flags, arrayCount, size DWORD, buf unsafe.Pointer) error
func (*SimConnect) SetNotificationGroupPriority ¶
func (s *SimConnect) SetNotificationGroupPriority(groupID, priority DWORD) error
func (*SimConnect) SubscribeToFacilities ¶
func (s *SimConnect) SubscribeToFacilities(facilityType, requestID DWORD) error
func (*SimConnect) SubscribeToSystemEvent ¶
func (s *SimConnect) SubscribeToSystemEvent(eventID DWORD, eventName string) error
func (*SimConnect) TransmitClientEvent ¶
func (s *SimConnect) TransmitClientEvent(objectID, eventID, dwData, groupID, flags DWORD) error
func (*SimConnect) UnsubscribeToFacilities ¶
func (s *SimConnect) UnsubscribeToFacilities(facilityType DWORD) error
type SimConnectOption ¶
type SimConnectOption func(*SimConnect)
SimConnectOption is a function that sets options on the SimConnect
func WithDLLPath ¶
func WithDLLPath(path string) SimConnectOption
WithDLLPath sets the path to the SimConnect DLL
func WithLogger ¶
func WithLogger(l *slog.Logger) SimConnectOption
WithLogger sets the logger for the SimConnect