SatelliteTrackerSettings:
  description: "Satellite Tracker settings"
  properties:
    latitude:
      description: "Latitude in decimal degrees (North positive) of antenna location"
      type: number
      format: float
    longitude:
      description: "Longitude in decimal degrees (East positive) of antenna location"
      type: number
      format: float
    heightAboveSeaLevel:
      description: "Height above sea level in metres of antenna location"
      type: number
      format: float
    target:
      description: "Target satellite"
      type: string
    satellites:
      description: "Satellites to track"
      type: array
      items:
        type: string
    tles:
      description: "Two line element files"
      type: array
      items:
        type: string
    dateTime:
      description: "Date and time of observation. ISO 8601 extended format: yyyy-MM-ddTHH:mm:ss with Z suffix for UTC. Empty string for current time."
      type: string
    minAOSElevation:
      description: "Minimum elevation in degrees for AOS"
      type: integer
    minPassElevation:
      description: "Minimum elevation in degrees for a pass"
      type: integer
    rotatorMaxAzimuth:
      description: "Maximum azimuth in degrees for the rotator"
      type: integer
    rotatorMaxElevation:
      description: "Maximum elevation in degrees for elevation"
      type: integer
    azElUnits:
      description: "DMS (0) DM (1) D (2) Decimal (3)"
      type: integer
    groundTrackPoints:
      description: "Number of points used to draw ground tracks"
      type: integer
    dateFormat:
      desciption: "Format for dates in the GUI (E.g: yy/MM/dd)"
      type: string
    utc:
      description: "Times are UTC (1) or local (0)"
      type: integer
    updatePeriod:
      description: "Time in seconds between each calculation of the target's position"
      type: number
      format: float
    dopplerPeriod:
      description: "Time in seconds between each Doppler correction"
      type: number
      format: float
    predictionPeriod:
      description: "How many days ahead to predict passes in"
      type: integer
    passStartTime:
      description: "Time after which a pass must start"
      type: string
    passFinishTime:
      description: "Time before which a pass must finish"
      type: string
    defaultFrequency:
      description: "Frequency to use for Doppler and free space path loss calculations in Satellite data table"
      type: number
      format: float
    drawOnMap:
      description: "Draw satellites on the Map (1 for yes, 0 for no)"
      type: integer
    autoTarget:
      description: "Automatically select target on AOS (1 for yes, 0 for no)"
      type: integer
    aosSpeech:
      description: "Speech warning on AOS"
      type: string
    losSpeech:
      description: "Speech warning on LOS"
      type: string
    aosCommand:
      description: "Command to execute on AOS for all satellites"
      type: string
    losCommand:
      description: "Command to execute on LOS for all satellites"
      type: string
    deviceSettings:
      description: "Device set settings to apply on AOS / LOS"
      type: array
      items:
        $ref: "http://swgserver:8081/api/swagger/include/SatelliteTracker.yaml#/SatelliteDeviceSettingsList"
    azimuthOffset:
      type: number
      format: float
    elevationOffset:
      type: number
      format: float
    title:
      type: string
    rgbColor:
      type: integer
    useReverseAPI:
      description: Synchronize with reverse API (1 for yes, 0 for no)
      type: integer
    reverseAPIAddress:
      type: string
    reverseAPIPort:
      type: integer
    reverseAPIFeatureSetIndex:
      type: integer
    reverseAPIFeatureIndex:
      type: integer
    rollupState:
      $ref: "http://swgserver:8081/api/swagger/include/RollupState.yaml#/RollupState"

SatelliteDeviceSettingsList:
  description: "List of device set settings for a satellite"
  properties:
    satellite:
      description: "Name of the satellite"
      type: string
    deviceSettings:
      description: "Device set settings"
      type: array
      items:
        $ref: "http://swgserver:8081/api/swagger/include/SatelliteTracker.yaml#/SatelliteDeviceSettings"

SatelliteDeviceSettings:
  description: "Device set settings"
  properties:
    deviceSetIndex:
      description: "Index of the device set (E.g. 0)"
      type: integer
    presetGroup:
      description: "Group for preset to load on AOS"
      type: string
    presetFrequency:
      description: "Frequency of preset to load on AOS"
      type: integer
      format: int64
    presetDescription:
      description: "Description of preset to load on AOS"
      type: string
    doppler:
      description: "Channel which to apply doppler correction (index as string)"
      type: array
      items:
        type: string
    startOnAOS:
      description: "Start acquisition on AOS (1 for yes, 0 for no)"
      type: integer
    stopOnLOS:
      description: "Stop acquisition on LOS (1 for yes, 0 for no)"
      type: integer
    startStopFileSinks:
      description: "Start/stop file sinks on AOS/LOS (1 for yes, 0 for no)"
      type: integer
    frequency:
      description: "Frequency to override in preset"
      type: integer
      format: int64
    aosCommand:
      description: "Command to execute on AOS"
      type: string
    losCommand:
      description: "Command to execute on LOS"
      type: string

SatelliteTrackerReport:
  description: "Satellite Tracker report"
  properties:
    runningState:
      type: integer
      description: >
        Running state
          * 0 - not started
          * 1 - idle
          * 2 - running
          * 3 - error
    targetAzimuth:
      type: number
      format: float
    targetElevation:
      type: number
      format: float
    satelliteState:
      type: array
      items:
        $ref: "http://swgserver:8081/api/swagger/include/SatelliteTracker.yaml#/SatelliteState"

SatelliteState:
  properties:
    name:
      type: string
    latitude:
      description: "Latitude of satellite in degrees"
      type: number
      format: float
    longitude:
      description: "Longitude of satellite in degrees"
      type: number
      format: float
    altitude:
      description: "Altitude of satellite in km"
      type: number
      format: float
    azimuth:
      description: "Azimuth to satellite in degrees"
      type: number
      format: float
    elevation:
      description: "Elevation to satellite in degrees"
      type: number
      format: float
    range:
      description: "Satellite range in km"
      type: number
      format: float
    rangeRate:
      description: "Satellite range rate in km/s"
      type: number
      format: float
    speed:
      description: "Satellite speed in km/s"
      type: number
      format: float
    period:
      description: "Satellite period in minutes"
      type: number
      format: float
    passes:
      type: array
      items:
        $ref: "http://swgserver:8081/api/swagger/include/SatelliteTracker.yaml#/SatellitePass"

SatellitePass:
  properties:
    aos:
      description: "Date and time of AOS"
      type: string
    los:
      description: "Date and time of LOS"
      type: string
    maxElevation:
      description: "Maximum elevation of pass in degrees"
      type: number
      format: float

SatelliteTrackerActions:
  description: "Satellite Tracker actions"
  properties:
    run:
      type: integer
      description: >
        Set the plugin running state
          * 0 - idle
          * 1 - run
