Documentation
¶
Index ¶
- Constants
- Variables
- func CreateLaunchConfig(scenario *scenario, scenarioGroup *scenarioGroup) sim.LaunchConfig
- func CreateNewSimConfiguration(catalog *ScenarioCatalog, scenarioGroup *scenarioGroup, scenarioName string) (*sim.NewSimConfiguration, error)
- func LaunchServer(config ServerLaunchConfig, lg *log.Logger)
- func LaunchServerAsync(config ServerLaunchConfig, lg *log.Logger) (int, util.ErrorLogger, string)
- func ListAllScenarios(scenarioFilename, videoMapFilename string, lg *log.Logger) ([]string, error)
- func LoadScenarioGroups(extraScenarioFilename string, extraVideoMapFilename string, ...) (map[string]map[string]*scenarioGroup, map[string]map[string]*ScenarioCatalog, ...)
- func MakeGCSProvider(lg *log.Logger) (wx.Provider, error)
- func MakeRPCProvider(ctx context.Context, serverAddress string, lg *log.Logger) (wx.Provider, error)
- func MakeResourcesWXProvider(lg *log.Logger) wx.Provider
- func MakeWXProvider(ctx context.Context, serverAddress string, lg *log.Logger) (wx.Provider, error)
- func NewGoogleTTSProvider(lg *log.Logger) (sim.TTSProvider, error)
- func PostDeserializeFacilityAdaptation(s *sim.FacilityAdaptation, e *util.ErrorLogger, sg *scenarioGroup, ...)
- func TryDecodeError(e error) error
- func TryDecodeErrorString(s string) error
- type ACIDSpecifier
- type ATPAConfigArgs
- type ATPAConfigResult
- type AcceptHandoffArgs
- type ActivateFlightPlanArgs
- type AircraftCommandsArgs
- type AircraftCommandsResult
- type AircraftSpecifier
- type AssociateFlightPlanArgs
- type BroadcastMessage
- type CancelHandoffArgs
- type ConnectResult
- type ConsolidateTCPArgs
- type CreateArrivalArgs
- type CreateDepartureArgs
- type CreateFlightPlanArgs
- type CreateOverflightArgs
- type CreateRestrictionAreaResultArgs
- type DeconsolidateTCPArgs
- type DeleteAircraftArgs
- type DeleteAircraftListArgs
- type DeleteFlightPlanArgs
- type FlightPlanDirectArgs
- type ForceQLArgs
- type GCSProvider
- func (g *GCSProvider) GetAtmosGrid(tracon string, t time.Time, primaryAirport string) (atmos *wx.AtmosByPointSOA, atmosTime time.Time, nextTime time.Time, err error)
- func (g *GCSProvider) GetAvailableTimeIntervals() map[string][]util.TimeInterval
- func (g *GCSProvider) GetMETAR(airports []string) (map[string]wx.METARSOA, error)
- func (g *GCSProvider) GetPrecipURL(tracon string, t time.Time) (string, time.Time, error)
- type GetAtmosArgs
- type GetAtmosResult
- type GlobalMessageArgs
- type GoogleTTSProvider
- type HandoffArgs
- type HeldDepartureArgs
- type JoinSimRequest
- type LaunchAircraftArgs
- type ModifyFlightPlanArgs
- type NewSimRequest
- type NewSimResult
- type PointOutArgs
- type PrecipURL
- type PrecipURLArgs
- type RPCProvider
- func (r *RPCProvider) GetAtmosGrid(facility string, t time.Time, primaryAirport string) (atmos *wx.AtmosByPointSOA, time time.Time, nextTime time.Time, err error)
- func (r *RPCProvider) GetAvailableTimeIntervals() map[string][]util.TimeInterval
- func (r *RPCProvider) GetMETAR(airports []string) (map[string]wx.METARSOA, error)
- func (r *RPCProvider) GetPrecipURL(facility string, t time.Time) (string, time.Time, error)
- type RemoteTTSProvider
- type RepositionTrackArgs
- type ResourcesWXProvider
- func (r *ResourcesWXProvider) GetAtmosGrid(tracon string, tGet time.Time, primaryAirport string) (*wx.AtmosByPointSOA, time.Time, time.Time, error)
- func (r *ResourcesWXProvider) GetAvailableTimeIntervals() map[string][]util.TimeInterval
- func (r *ResourcesWXProvider) GetMETAR(airports []string) (map[string]wx.METARSOA, error)
- func (r *ResourcesWXProvider) GetPrecipURL(tracon string, t time.Time) (string, time.Time, error)
- type RestrictionAreaArgs
- type RunningSim
- type ScenarioCatalog
- type ScenarioSpec
- type SendRouteCoordinatesArgs
- type ServerLaunchConfig
- type SetLaunchConfigArgs
- type SetSimRateArgs
- type SetWaypointCommandsArgs
- type SimManager
- func (sm *SimManager) Add(session *simSession, result *NewSimResult, initialTCP sim.ControlPosition, ...) error
- func (sm *SimManager) AddLocal(s *sim.Sim, result *NewSimResult) error
- func (sm *SimManager) Broadcast(m *BroadcastMessage, _ *struct{}) error
- func (sm *SimManager) Connect(version int, result *ConnectResult) error
- func (sm *SimManager) ConnectToSim(req *JoinSimRequest, result *NewSimResult) error
- func (sm *SimManager) GetAllVoices(_ struct{}, voices *[]sim.Voice) error
- func (sm *SimManager) GetAtmosGrid(args GetAtmosArgs, result *GetAtmosResult) error
- func (sm *SimManager) GetMETAR(airports []string, result *map[string]wx.METARSOA) error
- func (sm *SimManager) GetPrecipURL(args PrecipURLArgs, result *PrecipURL) error
- func (sm *SimManager) GetRunningSims(_ int, result *map[string]*RunningSim) error
- func (sm *SimManager) GetSerializeSim(token string, s *sim.Sim) error
- func (sm *SimManager) GetSimStatus() []simStatus
- func (sm *SimManager) GetStateUpdate(token string) (*SimStateUpdate, error)
- func (sm *SimManager) GetTTSStats() []ttsClientStats
- func (sm *SimManager) GetTimeIntervals(_ struct{}, result *map[string][]util.TimeInterval) error
- func (sm *SimManager) HandleSpeechWSConnection(w http.ResponseWriter, r *http.Request)
- func (sm *SimManager) LookupController(token string) *controllerContext
- func (sm *SimManager) NewSim(req *NewSimRequest, result *NewSimResult) error
- func (sm *SimManager) SignOff(token string) error
- func (sm *SimManager) TextToSpeech(req *TTSRequest, speechMp3 *[]byte) error
- func (sm *SimManager) UpdateTTSUsage(ip, text string) error
- type SimState
- type SimStateUpdate
- type TCPConsolidation
- type TTSRequest
- type TriggerEmergencyArgs
- type VideoMapsArgs
- type VoiceAssigner
Constants ¶
const AcceptHandoffRPC = "Sim.AcceptHandoff"
const AcceptRedirectedHandoffRPC = "Sim.AcceptRedirectedHandoff"
const AcknowledgePointOutRPC = "Sim.AcknowledgePointOut"
const ActivateFlightPlanRPC = "Sim.ActivateFlightPlan"
const AddLocalRPC = "SimManager.AddLocal"
const AssociateFlightPlanRPC = "Sim.AssociateFlightPlan"
const BroadcastRPC = "SimManager.Broadcast"
const CancelHandoffRPC = "Sim.CancelHandoff"
const ConfigureATPARPC = "Sim.ConfigureATPA"
const ConnectRPC = "SimManager.Connect"
const ConnectToSimRPC = "SimManager.ConnectToSim"
const ConsolidateTCPRPC = "Sim.ConsolidateTCP"
const CreateArrivalRPC = "Sim.CreateArrival"
const CreateDepartureRPC = "Sim.CreateDeparture"
const CreateFlightPlanRPC = "Sim.CreateFlightPlan"
const CreateOverflightRPC = "Sim.CreateOverflight"
const CreateRestrictionAreaRPC = "Sim.CreateRestrictionArea"
const DeconsolidateTCPRPC = "Sim.DeconsolidateTCP"
const DeleteAircraftRPC = "Sim.DeleteAircraft"
const DeleteAllAircraftRPC = "Sim.DeleteAllAircraft"
const DeleteFlightPlanRPC = "Sim.DeleteFlightPlan"
const DeleteRestrictionAreaRPC = "Sim.DeleteRestrictionArea"
const FastForwardRPC = "Sim.FastForward"
const FlightPlanDirectRPC = "Sim.FlightPlanDirect"
const ForceQLRPC = "Sim.ForceQL"
const GetAircraftDisplayStateRPC = "Sim.GetAircraftDisplayState"
const GetAllVoicesRPC = "SimManager.GetAllVoices"
const GetAtmosGridRPC = "SimManager.GetAtmosGrid"
const GetMETARRPC = "SimManager.GetMETAR"
const GetPrecipURLRPC = "SimManager.GetPrecipURL"
const GetRunningSimsRPC = "SimManager.GetRunningSims"
const GetSerializeSimRPC = "SimManager.GetSerializeSim"
const GetStateUpdateRPC = "Sim.GetStateUpdate"
const GetTimeIntervalsRPC = "SimManager.GetTimeIntervals"
const GetVideoMapLibraryRPC = "Sim.GetVideoMapLibrary"
const GlobalMessageRPC = "Sim.GlobalMessage"
const HandoffTrackRPC = "Sim.HandoffTrack"
const LaunchAircraftRPC = "Sim.LaunchAircraft"
const ModifyFlightPlanRPC = "Sim.ModifyFlightPlan"
const NewSimRPC = "SimManager.NewSim"
const PointOutRPC = "Sim.PointOut"
const RecallPointOutRPC = "Sim.RecallPointOut"
const RedirectHandoffRPC = "Sim.RedirectHandoff"
const RejectPointOutRPC = "Sim.RejectPointOut"
const ReleaseDepartureRPC = "Sim.ReleaseDeparture"
const RepositionTrackRPC = "Sim.RepositionTrack"
const RequestFlightFollowingRPC = "Sim.RequestFlightFollowing"
const RunAircraftCommandsRPC = "Sim.RunAircraftCommands"
const SendRouteCoordinatesRPC = "Sim.SendRouteCoordinates"
const SetLaunchConfigRPC = "Sim.SetLaunchConfig"
const SetSimRateRPC = "Sim.SetSimRate"
const SetWaypointCommandsRPC = "Sim.SetWaypointCommands"
const SignOffRPC = "Sim.SignOff"
const TakeOrReturnLaunchControlRPC = "Sim.TakeOrReturnLaunchControl"
const TextToSpeechRPC = "SimManager.TextToSpeech"
const TogglePauseRPC = "Sim.TogglePause"
const TriggerEmergencyRPC = "Sim.TriggerEmergency"
const UpdateRestrictionAreaRPC = "Sim.UpdateRestrictionArea"
const ViceHTTPServerPort = 6502
const ViceRPCVersion = ViceSerializeVersion
const ViceSerializeVersion = 51
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.NewSimRequest.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 49: STARS consolidation 50: rework State/StateUpdate management 51: preemptive before v0.13.3 release
const ViceServerAddress = "vice.pharr.org"
const ViceServerPort = 8000 + ViceRPCVersion
Variables ¶
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") ErrInvalidSimConfiguration = 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") ErrTCWAlreadyOccupied = errors.New("TCW is already occupied") )
var ErrMissingTTSCredentials = errors.New("VICE_GCS_CREDENTIALS not set")
Functions ¶
func CreateLaunchConfig ¶
func CreateLaunchConfig(scenario *scenario, scenarioGroup *scenarioGroup) sim.LaunchConfig
CreateLaunchConfig creates a properly initialized LaunchConfig from scenario data
func CreateNewSimConfiguration ¶
func CreateNewSimConfiguration(catalog *ScenarioCatalog, 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 ¶
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]*ScenarioCatalog, 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, catalogs, mapManifests, extraScenarioErrors If the extra scenario file has errors, they are returned in extraScenarioErrors and that scenario is not loaded, but execution continues.
func MakeRPCProvider ¶ added in v0.13.0
func MakeResourcesWXProvider ¶ added in v0.13.0
func MakeWXProvider ¶ added in v0.13.0
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 TryDecodeErrorString ¶
Types ¶
type ACIDSpecifier ¶
type ATPAConfigArgs ¶ added in v0.13.3
type ATPAConfigArgs struct {
ControllerToken string
Op sim.ATPAConfigOp
VolumeId string
}
type ATPAConfigResult ¶ added in v0.13.3
type ATPAConfigResult struct {
SimStateUpdate
Output string
}
type AcceptHandoffArgs ¶
type AcceptHandoffArgs ACIDSpecifier
type ActivateFlightPlanArgs ¶
type ActivateFlightPlanArgs struct {
ControllerToken string
TrackCallsign av.ADSBCallsign
FpACID sim.ACID
FlightPlanSpecifier sim.FlightPlanSpecifier
}
type AircraftCommandsArgs ¶
type AircraftCommandsResult ¶
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 BroadcastMessage ¶ added in v0.13.3
type CancelHandoffArgs ¶
type CancelHandoffArgs ACIDSpecifier
type ConnectResult ¶
type ConnectResult struct {
ScenarioCatalogs map[string]map[string]*ScenarioCatalog
RunningSims map[string]*RunningSim
HaveTTS bool
AvailableWXByTRACON map[string][]util.TimeInterval
}
type ConsolidateTCPArgs ¶ added in v0.13.3
type CreateArrivalArgs ¶
type CreateDepartureArgs ¶
type CreateFlightPlanArgs ¶
type CreateFlightPlanArgs struct {
ControllerToken string
FlightPlanSpecifier sim.FlightPlanSpecifier
}
type CreateOverflightArgs ¶
type CreateRestrictionAreaResultArgs ¶
type CreateRestrictionAreaResultArgs struct {
Index int
StateUpdate SimStateUpdate
}
type DeconsolidateTCPArgs ¶ added in v0.13.3
type DeleteAircraftArgs ¶
type DeleteAircraftArgs AircraftSpecifier
type DeleteAircraftListArgs ¶
type DeleteFlightPlanArgs ¶
type DeleteFlightPlanArgs ACIDSpecifier
type FlightPlanDirectArgs ¶ added in v0.13.0
type ForceQLArgs ¶
type ForceQLArgs struct {
ControllerToken string
ACID sim.ACID
ToPosition sim.ControlPosition
}
type GCSProvider ¶ added in v0.13.0
type GCSProvider struct {
// contains filtered or unexported fields
}
func (*GCSProvider) GetAtmosGrid ¶ added in v0.13.0
func (*GCSProvider) GetAvailableTimeIntervals ¶ added in v0.13.0
func (g *GCSProvider) GetAvailableTimeIntervals() map[string][]util.TimeInterval
func (*GCSProvider) GetPrecipURL ¶ added in v0.13.0
type GetAtmosArgs ¶ added in v0.13.0
type GetAtmosResult ¶ added in v0.13.0
type GlobalMessageArgs ¶
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
ToPosition sim.ControlPosition
}
type HeldDepartureArgs ¶
type HeldDepartureArgs AircraftSpecifier
type JoinSimRequest ¶ added in v0.13.3
type LaunchAircraftArgs ¶
type ModifyFlightPlanArgs ¶
type ModifyFlightPlanArgs struct {
ControllerToken string
FlightPlanSpecifier sim.FlightPlanSpecifier
ACID sim.ACID
}
type NewSimRequest ¶ added in v0.13.3
type NewSimRequest struct {
Facility string
NewSimName string
GroupName string
ScenarioName string
ScenarioSpec *ScenarioSpec
StartTime time.Time
TFRs []av.TFR
Emergencies []sim.Emergency
RequirePassword bool
Password string
EnforceUniqueCallsignSuffix bool
PilotErrorInterval float32
Initials string // Controller initials (e.g., "XX")
Privileged bool
DisableTextToSpeech bool
}
func MakeNewSimRequest ¶ added in v0.13.3
func MakeNewSimRequest() NewSimRequest
type NewSimResult ¶
type PointOutArgs ¶
type PointOutArgs struct {
ControllerToken string
ACID sim.ACID
ToPosition sim.ControlPosition
}
type PrecipURLArgs ¶ added in v0.13.0
type RPCProvider ¶ added in v0.13.0
type RPCProvider struct {
// contains filtered or unexported fields
}
func (*RPCProvider) GetAtmosGrid ¶ added in v0.13.0
func (*RPCProvider) GetAvailableTimeIntervals ¶ added in v0.13.0
func (r *RPCProvider) GetAvailableTimeIntervals() map[string][]util.TimeInterval
func (*RPCProvider) GetPrecipURL ¶ added in v0.13.0
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(ctx context.Context, 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 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 (*ResourcesWXProvider) GetAvailableTimeIntervals ¶ added in v0.13.0
func (r *ResourcesWXProvider) GetAvailableTimeIntervals() map[string][]util.TimeInterval
func (*ResourcesWXProvider) GetPrecipURL ¶ added in v0.13.0
type RestrictionAreaArgs ¶
type RestrictionAreaArgs struct {
ControllerToken string
Index int
RestrictionArea av.RestrictionArea
}
type RunningSim ¶ added in v0.13.3
type ScenarioCatalog ¶ added in v0.13.3
type ScenarioCatalog struct {
Scenarios map[string]*ScenarioSpec
ControlPositions map[sim.TCP]*av.Controller
DefaultScenario string
Facility string
ARTCC string
Area string
Airports []string // ICAO codes of airports in this scenario group
}
Client-side info about the available scenarios.
func LookupScenario ¶
func LookupScenario(tracon, scenarioName string, scenarioGroups map[string]map[string]*scenarioGroup, catalogs map[string]map[string]*ScenarioCatalog) (*ScenarioCatalog, *scenarioGroup, error)
LookupScenario finds a scenario configuration by TRACON/scenario name
type ScenarioSpec ¶ added in v0.13.3
type ScenarioSpec struct {
ControllerConfiguration *sim.ControllerConfiguration
PrimaryAirport string
MagneticVariation float32
WindSpecifier *wx.WindSpecifier
LaunchConfig sim.LaunchConfig
DepartureRunways []sim.DepartureRunway
ArrivalRunways []sim.ArrivalRunway
}
func (*ScenarioSpec) AllAirports ¶ added in v0.13.3
func (s *ScenarioSpec) AllAirports() []string
type SendRouteCoordinatesArgs ¶ added in v0.13.0
type ServerLaunchConfig ¶
type SetLaunchConfigArgs ¶
type SetLaunchConfigArgs struct {
ControllerToken string
Config sim.LaunchConfig
}
type SetSimRateArgs ¶
type SetWaypointCommandsArgs ¶ added in v0.13.0
type SimManager ¶
type SimManager struct {
// contains filtered or unexported fields
}
func NewSimManager ¶
func NewSimManager(scenarioGroups map[string]map[string]*scenarioGroup, scenarioCatalogs map[string]map[string]*ScenarioCatalog, mapManifests map[string]*sim.VideoMapManifest, serverAddress string, isLocal bool, lg *log.Logger) *SimManager
func (*SimManager) Add ¶
func (sm *SimManager) Add(session *simSession, result *NewSimResult, initialTCP sim.ControlPosition, initials string, instructor bool, prespawn bool, disableTextToSpeech bool) error
func (*SimManager) AddLocal ¶
func (sm *SimManager) AddLocal(s *sim.Sim, result *NewSimResult) error
func (*SimManager) Broadcast ¶
func (sm *SimManager) Broadcast(m *BroadcastMessage, _ *struct{}) error
func (*SimManager) Connect ¶
func (sm *SimManager) Connect(version int, result *ConnectResult) error
func (*SimManager) ConnectToSim ¶
func (sm *SimManager) ConnectToSim(req *JoinSimRequest, 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) 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]*RunningSim) 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) (*SimStateUpdate, 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) *controllerContext
func (*SimManager) NewSim ¶
func (sm *SimManager) NewSim(req *NewSimRequest, result *NewSimResult) error
func (*SimManager) SignOff ¶
func (sm *SimManager) SignOff(token string) error
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 SimState ¶ added in v0.13.3
type SimState struct {
sim.UserState
// User-related items not managed by the Sim.
UserTCW sim.TCW
ActiveTCWs []sim.TCW
ControllerVideoMaps []string
ControllerDefaultVideoMaps []string
ControllerMonitoredBeaconCodeBlocks []av.Squawk
}
SimState wraps sim.UserState and adds server-specific fields.
type SimStateUpdate ¶ added in v0.13.3
SimStateUpdate wraps sim.StateUpdate and adds server-specific fields.
func (*SimStateUpdate) Apply ¶ added in v0.13.3
func (su *SimStateUpdate) Apply(state *SimState, eventStream *sim.EventStream)
Apply applies the update to the state, including server-specific fields. If eventStream is provided, events from the update are posted to it.
type TCPConsolidation ¶ added in v0.13.3
type TCPConsolidation struct {
sim.TCPConsolidation
Initials []string // Server-layer addition: initials of signed-in controllers
}
func (TCPConsolidation) IsOccupied ¶ added in v0.13.3
func (s TCPConsolidation) IsOccupied() bool
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 VideoMapsArgs ¶
type VideoMapsArgs struct {
Filename string
}
type VoiceAssigner ¶ added in v0.13.3
type VoiceAssigner struct {
// contains filtered or unexported fields
}
VoiceAssigner manages the pool of available TTS voices and assigns them to aircraft callsigns. Each aircraft gets a consistent voice throughout the session.
func NewVoiceAssigner ¶ added in v0.13.3
func NewVoiceAssigner() *VoiceAssigner
NewVoiceAssigner creates a new VoiceAssigner.
func (*VoiceAssigner) GetVoice ¶ added in v0.13.3
func (va *VoiceAssigner) GetVoice(callsign av.ADSBCallsign) (sim.Voice, bool)
GetVoice returns the voice assigned to an aircraft, assigning one if needed. Returns empty string and false if no voices are available yet.
func (*VoiceAssigner) TryInit ¶ added in v0.13.3
func (va *VoiceAssigner) TryInit(tts sim.TTSProvider, lg *log.Logger) bool
TryInit attempts non-blocking initialization of the voice pool from the TTS provider. Returns true if the pool is ready for use.