server

package
v0.13.2 Latest Latest
Warning

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

Go to latest
Published: Nov 23, 2025 License: GPL-3.0 Imports: 44 Imported by: 0

Documentation

Index

Constants

View Source
const AcceptHandoffRPC = "Sim.AcceptHandoff"
View Source
const AcceptRedirectedHandoffRPC = "Sim.AcceptRedirectedHandoff"
View Source
const AcknowledgePointOutRPC = "Sim.AcknowledgePointOut"
View Source
const ActivateFlightPlanRPC = "Sim.ActivateFlightPlan"
View Source
const AddLocalRPC = "SimManager.AddLocal"
View Source
const AssociateFlightPlanRPC = "Sim.AssociateFlightPlan"
View Source
const BroadcastRPC = "SimManager.Broadcast"
View Source
const CancelHandoffRPC = "Sim.CancelHandoff"
View Source
const ChangeControlPositionRPC = "Sim.ChangeControlPosition"
View Source
const ConnectRPC = "SimManager.Connect"
View Source
const ConnectToSimRPC = "SimManager.ConnectToSim"
View Source
const CreateArrivalRPC = "Sim.CreateArrival"
View Source
const CreateDepartureRPC = "Sim.CreateDeparture"
View Source
const CreateFlightPlanRPC = "Sim.CreateFlightPlan"
View Source
const CreateOverflightRPC = "Sim.CreateOverflight"
View Source
const CreateRestrictionAreaRPC = "Sim.CreateRestrictionArea"
View Source
const DeleteAircraftRPC = "Sim.DeleteAircraft"
View Source
const DeleteAllAircraftRPC = "Sim.DeleteAllAircraft"
View Source
const DeleteFlightPlanRPC = "Sim.DeleteFlightPlan"
View Source
const DeleteRestrictionAreaRPC = "Sim.DeleteRestrictionArea"
View Source
const FastForwardRPC = "Sim.FastForward"
View Source
const FlightPlanDirectRPC = "Sim.FlightPlanDirect"
View Source
const ForceQLRPC = "Sim.ForceQL"
View Source
const GetAircraftDisplayStateRPC = "Sim.GetAircraftDisplayState"
View Source
const GetAllVoicesRPC = "SimManager.GetAllVoices"
View Source
const GetAtmosGridRPC = "SimManager.GetAtmosGrid"
View Source
const GetMETARRPC = "SimManager.GetMETAR"
View Source
const GetPrecipURLRPC = "SimManager.GetPrecipURL"
View Source
const GetRunningSimsRPC = "SimManager.GetRunningSims"
View Source
const GetSerializeSimRPC = "SimManager.GetSerializeSim"
View Source
const GetStateUpdateRPC = "Sim.GetStateUpdate"
View Source
const GetTimeIntervalsRPC = "SimManager.GetTimeIntervals"
View Source
const GetVideoMapLibraryRPC = "Sim.GetVideoMapLibrary"
View Source
const GlobalMessageRPC = "Sim.GlobalMessage"
View Source
const HandoffTrackRPC = "Sim.HandoffTrack"
View Source
const LaunchAircraftRPC = "Sim.LaunchAircraft"
View Source
const ModifyFlightPlanRPC = "Sim.ModifyFlightPlan"
View Source
const NewSimRPC = "SimManager.NewSim"
View Source
const PointOutRPC = "Sim.PointOut"
View Source
const RecallPointOutRPC = "Sim.RecallPointOut"
View Source
const RedirectHandoffRPC = "Sim.RedirectHandoff"
View Source
const RejectPointOutRPC = "Sim.RejectPointOut"
View Source
const ReleaseDepartureRPC = "Sim.ReleaseDeparture"
View Source
const RepositionTrackRPC = "Sim.RepositionTrack"
View Source
const RequestFlightFollowingRPC = "Sim.RequestFlightFollowing"
View Source
const RunAircraftCommandsRPC = "Sim.RunAircraftCommands"
View Source
const SendRouteCoordinatesRPC = "Sim.SendRouteCoordinates"
View Source
const SetLaunchConfigRPC = "Sim.SetLaunchConfig"
View Source
const SetSimRateRPC = "Sim.SetSimRate"
View Source
const SetWaypointCommandsRPC = "Sim.SetWaypointCommands"
View Source
const SignOffRPC = "Sim.SignOff"
View Source
const TakeOrReturnLaunchControlRPC = "Sim.TakeOrReturnLaunchControl"
View Source
const TextToSpeechRPC = "SimManager.TextToSpeech"
View Source
const TogglePauseRPC = "Sim.TogglePause"
View Source
const TriggerEmergencyRPC = "Sim.TriggerEmergency"
View Source
const UpdateRestrictionAreaRPC = "Sim.UpdateRestrictionArea"
View Source
const ViceHTTPServerPort = 6502
View Source
const ViceRPCVersion = ViceSerializeVersion
View Source
const ViceSerializeVersion = 48

Version history 0-7 not explicitly recorded 8: STARSPane DCB improvements, added DCB font size control 9: correct STARSColors, so update brightness settings to compensate 10: stop being clever about JSON encoding Waypoint arrays to strings 11: expedite, intercept localizer, fix airspace serialization 12: set 0 DCB brightness to 50 (WAR not setting a default for it) 13: update departure handling for multi-controllers (and rename some members) 14: Aircraft ArrivalHandoffController -> WaypointHandoffController 15: audio engine rewrite 16: cleared/assigned alt for departures, minor nav changes 17: weather intensity default bool 18: STARS ATPA 19: runway waypoints now per-airport 20: "stars_config" and various scenario fields moved there, plus STARSFacilityAdaptation 21: STARS DCB drawing changes, so system list positions changed 22: draw points using triangles, remove some CommandBuffer commands 23: video map format update 24: packages, audio to platform, flight plan processing 25: remove ArrivalGroup/Index from Aircraft 26: make allow_long_scratchpad a single bool 27: rework prefs, videomaps 28: new departure flow 29: TFR cache 30: video map improvements 31: audio squelch for pilot readback 32: VFRs, custom spcs, pilot reported altitude, ... 33: VFRs v2 34: sim/server refactor, signon flow 35: VFRRunways in sim.State, METAR Wind struct changes 36: STARS center representation changes 37: rework STARS flight plan (et al) 38: rework STARS flight plan (et al) ongoing 39: speech v0.1 40: clean up what's transmitted server->client at initial connect/spawn, gob->msgpack 41: sim.State.SimStartTime 42: server.NewSimConfiguration.StartTime 43: WX rework (scrape, etc.) 44: store pane instances and split positions separately, rather than the entire DisplayNode hierarchy 45: Change STARSFacilityAdaptation to FacilityAdaptation 46: Remove token from video map fetch RPC, misc wx updates 47: pass PrimaryAirport to GetAtmosGrid RPC 48: release bump

View Source
const ViceServerAddress = "vice.pharr.org"
View Source
const ViceServerPort = 8000 + ViceRPCVersion

Variables

View Source
var (
	ErrControllerAlreadySignedIn = errors.New("Controller with that callsign already signed in")
	ErrDuplicateSimName          = errors.New("A sim with that name already exists")
	ErrInvalidCommandSyntax      = errors.New("Invalid command syntax")
	ErrInvalidControllerToken    = errors.New("Invalid controller token")
	ErrInvalidPassword           = errors.New("Invalid password")
	ErrInvalidSSimConfiguration  = errors.New("Invalid SimConfiguration")
	ErrNoNamedSim                = errors.New("No Sim with that name")
	ErrNoSimForControllerToken   = errors.New("No Sim running for controller token")
	ErrRPCTimeout                = errors.New("RPC call timed out")
	ErrRPCVersionMismatch        = errors.New("Client and server RPC versions don't match")
	ErrServerDisconnected        = errors.New("Server disconnected")
	ErrWeatherUnavailable        = errors.New("Unable to reach weather server")
)
View Source
var ErrMissingTTSCredentials = errors.New("VICE_GCS_CREDENTIALS not set")
View Source
var ErrTTSUnavailable = errors.New("TTS service unavailable")

Functions

func CreateLaunchConfig

func CreateLaunchConfig(scenario *scenario, scenarioGroup *scenarioGroup) sim.LaunchConfig

CreateLaunchConfig creates a properly initialized LaunchConfig from scenario data

func CreateNewSimConfiguration

func CreateNewSimConfiguration(config *Configuration, scenarioGroup *scenarioGroup, scenarioName string) (*sim.NewSimConfiguration, error)

CreateNewSimConfiguration creates a NewSimConfiguration from scenario components

func LaunchServer

func LaunchServer(config ServerLaunchConfig, lg *log.Logger)

func LaunchServerAsync

func LaunchServerAsync(config ServerLaunchConfig, lg *log.Logger) (int, util.ErrorLogger, string)

func ListAllScenarios

func ListAllScenarios(scenarioFilename, videoMapFilename string, lg *log.Logger) ([]string, error)

ListAllScenarios returns a sorted list of all available scenarios in TRACON/scenario format

func LoadScenarioGroups

func LoadScenarioGroups(extraScenarioFilename string, extraVideoMapFilename string,
	e *util.ErrorLogger, lg *log.Logger) (map[string]map[string]*scenarioGroup, map[string]map[string]*Configuration, map[string]*sim.VideoMapManifest, string)

LoadScenarioGroups loads all of the available scenarios, both from the scenarios/ directory in the source code distribution as well as, optionally, a scenario file provided on the command line. It doesn't try to do any sort of meaningful error handling but it does try to continue on in the presence of errors; all errors will be printed and the program will exit if there are any. We'd rather force any errors due to invalid scenario definitions to be fixed...

Returns: scenarioGroups, simConfigurations, mapManifests, extraScenarioErrors If the extra scenario file has errors, they are returned in extraScenarioErrors and that scenario is not loaded, but execution continues.

func MakeGCSProvider added in v0.13.0

func MakeGCSProvider(lg *log.Logger) (wx.Provider, error)

func MakeRPCProvider added in v0.13.0

func MakeRPCProvider(serverAddress string, lg *log.Logger) (wx.Provider, error)

func MakeResourcesWXProvider added in v0.13.0

func MakeResourcesWXProvider(lg *log.Logger) wx.Provider

func MakeWXProvider added in v0.13.0

func MakeWXProvider(serverAddress string, lg *log.Logger) (wx.Provider, error)

func NewGoogleTTSProvider

func NewGoogleTTSProvider(lg *log.Logger) (sim.TTSProvider, error)

func PostDeserializeFacilityAdaptation added in v0.13.0

func PostDeserializeFacilityAdaptation(s *sim.FacilityAdaptation, e *util.ErrorLogger, sg *scenarioGroup,
	manifest *sim.VideoMapManifest)

func TryDecodeError

func TryDecodeError(e error) error

func TryDecodeErrorString

func TryDecodeErrorString(s string) error

Types

type ACIDSpecifier

type ACIDSpecifier struct {
	ControllerToken string
	ACID            sim.ACID
}

type AcceptHandoffArgs

type AcceptHandoffArgs ACIDSpecifier

type ActivateFlightPlanArgs

type ActivateFlightPlanArgs struct {
	ControllerToken     string
	TrackCallsign       av.ADSBCallsign
	FpACID              sim.ACID
	FlightPlanSpecifier *sim.FlightPlanSpecifier
}

type AircraftCommandsArgs

type AircraftCommandsArgs struct {
	ControllerToken string
	Callsign        av.ADSBCallsign
	Commands        string
	Multiple        bool
	ClickedTrack    bool
}

type AircraftCommandsResult

type AircraftCommandsResult struct {
	ErrorMessage   string
	RemainingInput string
}

If an RPC call returns an error, then the result argument is not returned(!?). So we don't use the error type for syntax errors...

type AircraftSpecifier

type AircraftSpecifier struct {
	ControllerToken string
	Callsign        av.ADSBCallsign
}

type AssociateFlightPlanArgs

type AssociateFlightPlanArgs struct {
	ControllerToken     string
	Callsign            av.ADSBCallsign
	FlightPlanSpecifier sim.FlightPlanSpecifier
}

type CancelHandoffArgs

type CancelHandoffArgs ACIDSpecifier

type ChangeControlPositionArgs

type ChangeControlPositionArgs struct {
	ControllerToken string
	TCP             string
	KeepTracks      bool
}

type Configuration

type Configuration struct {
	ScenarioConfigs  map[string]*SimScenarioConfiguration
	ControlPositions map[string]*av.Controller
	DefaultScenario  string
	Facility         string
	ARTCC            string
	Area             string
}

func LookupScenario

func LookupScenario(tracon, scenarioName string, scenarioGroups map[string]map[string]*scenarioGroup, configs map[string]map[string]*Configuration) (*Configuration, *scenarioGroup, error)

LookupScenario finds a scenario configuration by TRACON/scenario name

type ConnectResult

type ConnectResult struct {
	Configurations      map[string]map[string]*Configuration
	RunningSims         map[string]*RemoteSim
	HaveTTS             bool
	AvailableWXByTRACON map[string][]util.TimeInterval
}

type CreateArrivalArgs

type CreateArrivalArgs struct {
	ControllerToken string
	Group           string
	Airport         string
}

type CreateDepartureArgs

type CreateDepartureArgs struct {
	ControllerToken string
	Airport         string
	Runway          string
	Category        string
	Rules           av.FlightRules
}

type CreateFlightPlanArgs

type CreateFlightPlanArgs struct {
	ControllerToken     string
	FlightPlanSpecifier sim.FlightPlanSpecifier
}

type CreateOverflightArgs

type CreateOverflightArgs struct {
	ControllerToken string
	Group           string
}

type CreateRestrictionAreaResultArgs

type CreateRestrictionAreaResultArgs struct {
	Index       int
	StateUpdate sim.StateUpdate
}

type DeleteAircraftArgs

type DeleteAircraftArgs AircraftSpecifier

type DeleteAircraftListArgs

type DeleteAircraftListArgs struct {
	ControllerToken string
	Aircraft        []sim.Aircraft
}

type DeleteFlightPlanArgs

type DeleteFlightPlanArgs ACIDSpecifier

type FlightPlanDirectArgs added in v0.13.0

type FlightPlanDirectArgs struct {
	ControllerToken string
	ACID            sim.ACID
	Fix             string
}

type ForceQLArgs

type ForceQLArgs struct {
	ControllerToken string
	ACID            sim.ACID
	Controller      string
}

type GCSProvider added in v0.13.0

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

func (*GCSProvider) GetAtmosGrid added in v0.13.0

func (g *GCSProvider) GetAtmosGrid(tracon string, t time.Time, primaryAirport string) (atmos *wx.AtmosByPointSOA, atmosTime time.Time, nextTime time.Time, err error)

func (*GCSProvider) GetAvailableTimeIntervals added in v0.13.0

func (g *GCSProvider) GetAvailableTimeIntervals() map[string][]util.TimeInterval

func (*GCSProvider) GetMETAR added in v0.13.0

func (g *GCSProvider) GetMETAR(airports []string) (map[string]wx.METARSOA, error)

func (*GCSProvider) GetPrecipURL added in v0.13.0

func (g *GCSProvider) GetPrecipURL(tracon string, t time.Time) (string, time.Time, error)

type GetAtmosArgs added in v0.13.0

type GetAtmosArgs struct {
	TRACON         string
	Time           time.Time
	PrimaryAirport string
}

type GetAtmosResult added in v0.13.0

type GetAtmosResult struct {
	AtmosByPointSOA *wx.AtmosByPointSOA
	Time            time.Time
	NextTime        time.Time
}

type GlobalMessageArgs

type GlobalMessageArgs struct {
	ControllerToken string
	Message         string
}

type GoogleTTSProvider

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

GoogleTTSProvider implements sim.TTSProvider using Google Cloud TTS

func (*GoogleTTSProvider) GetAllVoices

func (g *GoogleTTSProvider) GetAllVoices() sim.TTSVoicesFuture

func (*GoogleTTSProvider) TextToSpeech

func (g *GoogleTTSProvider) TextToSpeech(voice sim.Voice, text string) sim.TTSSpeechFuture

type HandoffArgs

type HandoffArgs struct {
	ControllerToken string
	ACID            sim.ACID
	ToTCP           string
}

type HeldDepartureArgs

type HeldDepartureArgs AircraftSpecifier

type LaunchAircraftArgs

type LaunchAircraftArgs struct {
	ControllerToken string
	Aircraft        sim.Aircraft
	DepartureRunway string
}

type ModifyFlightPlanArgs

type ModifyFlightPlanArgs struct {
	ControllerToken     string
	FlightPlanSpecifier sim.FlightPlanSpecifier
	ACID                sim.ACID
}

type NewSimConfiguration

type NewSimConfiguration struct {
	NewSimName   string
	GroupName    string
	ScenarioName string

	ScenarioConfig *SimScenarioConfiguration

	TFRs []av.TFR

	TRACONName      string
	RequirePassword bool
	Password        string

	EnforceUniqueCallsignSuffix bool

	PilotErrorInterval float32

	AllowInstructorRPO  bool
	Instructor          bool
	DisableTextToSpeech bool

	StartTime time.Time
}

func MakeNewSimConfiguration

func MakeNewSimConfiguration() NewSimConfiguration

type NewSimResult

type NewSimResult struct {
	SimState        *sim.State
	ControllerToken string
	SpeechWSPort    int
}

func (*NewSimResult) PruneForClient

func (r *NewSimResult) PruneForClient()

PruneForClient tidies the NewSimResult, removing fields that are not used by client code in order to reduce the amount of bandwidth used to send the NewSimResult to the client.

type PointOutArgs

type PointOutArgs struct {
	ControllerToken string
	ACID            sim.ACID
	Controller      string
}

type PrecipURL added in v0.13.0

type PrecipURL struct {
	URL      string
	NextTime time.Time
}

type PrecipURLArgs added in v0.13.0

type PrecipURLArgs struct {
	TRACON string
	Time   time.Time
}

type RPCProvider added in v0.13.0

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

func (*RPCProvider) GetAtmosGrid added in v0.13.0

func (r *RPCProvider) GetAtmosGrid(tracon string, t time.Time, primaryAirport string) (atmos *wx.AtmosByPointSOA, time time.Time, nextTime time.Time, err error)

func (*RPCProvider) GetAvailableTimeIntervals added in v0.13.0

func (r *RPCProvider) GetAvailableTimeIntervals() map[string][]util.TimeInterval

func (*RPCProvider) GetMETAR added in v0.13.0

func (r *RPCProvider) GetMETAR(airports []string) (map[string]wx.METARSOA, error)

func (*RPCProvider) GetPrecipURL added in v0.13.0

func (r *RPCProvider) GetPrecipURL(tracon string, t time.Time) (string, time.Time, error)

type RemoteSim

type RemoteSim struct {
	GroupName          string
	ScenarioName       string
	PrimaryController  string
	RequirePassword    bool
	AvailablePositions map[string]av.Controller
	CoveredPositions   map[string]av.Controller
}

type RemoteTTSProvider

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

RemoteTTSProvider implements sim.TTSProvider by making RPC calls to a remote server

func NewRemoteTTSProvider

func NewRemoteTTSProvider(serverAddress string, lg *log.Logger) (*RemoteTTSProvider, error)

NewRemoteTTSProvider creates a new RemoteTTSProvider that connects to the specified server

func (*RemoteTTSProvider) GetAllVoices

func (r *RemoteTTSProvider) GetAllVoices() sim.TTSVoicesFuture

GetAllVoices returns all available voices from the remote server, cached after first call

func (*RemoteTTSProvider) TextToSpeech

func (r *RemoteTTSProvider) TextToSpeech(voice sim.Voice, text string) sim.TTSSpeechFuture

TextToSpeech converts text to speech using the remote server

type RepositionTrackArgs

type RepositionTrackArgs struct {
	ControllerToken string
	ACID            sim.ACID        // from
	Callsign        av.ADSBCallsign // to
	Position        math.Point2LL   // to
}

type ResourcesWXProvider added in v0.13.0

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

ResourcesWXProvider implements the wx.Provider interface, providing information from the local resources directory (more or less intended for offline use of vice).

func (*ResourcesWXProvider) GetAtmosGrid added in v0.13.0

func (r *ResourcesWXProvider) GetAtmosGrid(tracon string, tGet time.Time, primaryAirport string) (*wx.AtmosByPointSOA, time.Time, time.Time, error)

func (*ResourcesWXProvider) GetAvailableTimeIntervals added in v0.13.0

func (r *ResourcesWXProvider) GetAvailableTimeIntervals() map[string][]util.TimeInterval

func (*ResourcesWXProvider) GetMETAR added in v0.13.0

func (r *ResourcesWXProvider) GetMETAR(airports []string) (map[string]wx.METARSOA, error)

func (*ResourcesWXProvider) GetPrecipURL added in v0.13.0

func (r *ResourcesWXProvider) GetPrecipURL(tracon string, t time.Time) (string, time.Time, error)

type RestrictionAreaArgs

type RestrictionAreaArgs struct {
	ControllerToken string
	Index           int
	RestrictionArea av.RestrictionArea
}

type SendRouteCoordinatesArgs added in v0.13.0

type SendRouteCoordinatesArgs struct {
	ControllerToken string
	ACID            sim.ACID
}

type ServerLaunchConfig

type ServerLaunchConfig struct {
	Port          int // if 0, finds an open one
	ExtraScenario string
	ExtraVideoMap string
	ServerAddress string // address to use for remote TTS provider
	IsLocal       bool
}

type SetLaunchConfigArgs

type SetLaunchConfigArgs struct {
	ControllerToken string
	Config          sim.LaunchConfig
}

type SetSimRateArgs

type SetSimRateArgs struct {
	ControllerToken string
	Rate            float32
}

type SetWaypointCommandsArgs added in v0.13.0

type SetWaypointCommandsArgs struct {
	ControllerToken string
	Commands        string
}

type SimBroadcastMessage

type SimBroadcastMessage struct {
	Password string
	Message  string
}

type SimConnectionConfiguration

type SimConnectionConfiguration struct {
	RemoteSim           string
	Position            string
	Password            string
	Instructor          bool
	DisableTextToSpeech bool
}

type SimManager

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

func NewSimManager

func NewSimManager(scenarioGroups map[string]map[string]*scenarioGroup,
	simConfigurations map[string]map[string]*Configuration, manifests map[string]*sim.VideoMapManifest,
	emergencies []sim.Emergency, serverAddress string, isLocal bool, lg *log.Logger) *SimManager

func (*SimManager) Add

func (sm *SimManager) Add(session *simSession, result *NewSimResult, initialTCP string, instructor bool, prespawn bool, disableTextToSpeech bool) error

func (*SimManager) AddLocal

func (sm *SimManager) AddLocal(sim *sim.Sim, result *NewSimResult) error

func (*SimManager) Broadcast

func (sm *SimManager) Broadcast(m *SimBroadcastMessage, _ *struct{}) error

func (*SimManager) Connect

func (sm *SimManager) Connect(version int, result *ConnectResult) error

func (*SimManager) ConnectToSim

func (sm *SimManager) ConnectToSim(config *SimConnectionConfiguration, result *NewSimResult) error

func (*SimManager) GetAllVoices

func (sm *SimManager) GetAllVoices(_ struct{}, voices *[]sim.Voice) error

GetAllVoices returns all available voices for TTS

func (*SimManager) GetAtmosGrid added in v0.13.0

func (sm *SimManager) GetAtmosGrid(args GetAtmosArgs, result *GetAtmosResult) error

func (*SimManager) GetMETAR added in v0.13.0

func (sm *SimManager) GetMETAR(airports []string, result *map[string]wx.METARSOA) error

func (*SimManager) GetPrecipURL added in v0.13.0

func (sm *SimManager) GetPrecipURL(args PrecipURLArgs, result *PrecipURL) error

func (*SimManager) GetRunningSims

func (sm *SimManager) GetRunningSims(_ int, result *map[string]*RemoteSim) error

func (*SimManager) GetSerializeSim

func (sm *SimManager) GetSerializeSim(token string, s *sim.Sim) error

func (*SimManager) GetSimStatus

func (sm *SimManager) GetSimStatus() []simStatus

func (*SimManager) GetStateUpdate

func (sm *SimManager) GetStateUpdate(token string, update *sim.StateUpdate) error

func (*SimManager) GetTTSStats

func (sm *SimManager) GetTTSStats() []ttsClientStats

func (*SimManager) GetTimeIntervals added in v0.13.0

func (sm *SimManager) GetTimeIntervals(_ struct{}, result *map[string][]util.TimeInterval) error

func (*SimManager) HandleSpeechWSConnection added in v0.13.0

func (sm *SimManager) HandleSpeechWSConnection(w http.ResponseWriter, r *http.Request)

func (*SimManager) LookupController

func (sm *SimManager) LookupController(token string) (string, *sim.Sim, bool)

func (*SimManager) NewSim

func (sm *SimManager) NewSim(config *NewSimConfiguration, result *NewSimResult) error

func (*SimManager) SignOff

func (sm *SimManager) SignOff(token string) error

func (*SimManager) SimShouldExit

func (sm *SimManager) SimShouldExit(sim *sim.Sim) bool

func (*SimManager) TextToSpeech

func (sm *SimManager) TextToSpeech(req *TTSRequest, speechMp3 *[]byte) error

TextToSpeech converts text to speech and returns the audio data

func (*SimManager) UpdateTTSUsage

func (sm *SimManager) UpdateTTSUsage(ip, text string) error

type SimScenarioConfiguration

type SimScenarioConfiguration struct {
	SelectedController  string
	SelectedSplit       string
	SplitConfigurations av.SplitConfigurationSet
	PrimaryAirport      string
	MagneticVariation   float32
	WindSpecifier       *wx.WindSpecifier

	LaunchConfig sim.LaunchConfig

	DepartureRunways []sim.DepartureRunway
	ArrivalRunways   []sim.ArrivalRunway
}

func (*SimScenarioConfiguration) AllAirports added in v0.13.0

func (s *SimScenarioConfiguration) AllAirports() []string

type TTSRequest

type TTSRequest struct {
	Voice    sim.Voice
	Text     string
	ClientIP string // Automatically populated by util.LoggingServerCodec
}

TTSRequest represents a text-to-speech request (shared between client and server)

type TriggerEmergencyArgs added in v0.13.2

type TriggerEmergencyArgs struct {
	ControllerToken string
	EmergencyName   string
}

type VideoMapsArgs

type VideoMapsArgs struct {
	Filename string
}

Jump to

Keyboard shortcuts

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