Platform configuration file

The provided configuration file is written in YAML (YAML Ain't Markup Language). It is important to note that YAML files are sensitive to correct indentation. Incorrect indentation can lead to an invalid file, which may cause issues when the launcher attempts to process the configuration.

To ensure that the configuration file remains valid and the launcher can start successfully, it is crucial to follow these guidelines:

# Platforms 
platforms:

# First platform 
  - platform:      
    active: true
    name: Legion
    description: First platform
    type: Plane
    sensors:
      - sensor: 
        name: EO
        description: EO camera
        active: true       
        type: video        
        url: udp://227.1.1.1:30120?localaddr=192.168.56.1
        # nic can be used instead of the localaddr
        nic: 192.168.56.1
        recorder:
          recorderType: recorderProc
          targetDir: C:\tmp\Recorder # Recorder Target Directory. If not specified, recording will be disabled
          mode: mpegts
          segmentDuration: 20 # segment duration in seconds  
          segmentWrap: 4    
        stanag2WebRtc:
          addr: localhost:3000
          recorderTargetDir: C:\tmp\Recorder # Recorder Target Directory. If not specified, recording will be disabled
          recorderSegmentDuration: 20 # segment duration in seconds        

      - sensor: 
        name: IR
        description: IR camera
        active: true
        type: video
        url: udp://227.1.1.2:30122?localaddr=192.168.56.1
        # nic can be used instead of the localaddr
        nic: 192.168.56.1
        recorder:
          recorderType: recorderProc
          targetDir: C:\tmp\Recorder # Recorder Target Directory. If not specified, recording will be disabled
          segmentDuration: 20 # segment duration in seconds
          mode: mpegts  
          segmentWrap: 4    
        stanag2WebRtc:
          addr: localhost:4000
          recorderTargetDir: C:\tmp\Recorder # Recorder Target Directory. If not specified, recording will be disabled
          recorderSegmentDuration: 20 # segment duration in seconds        


# Second platform
  - platform: 
    active: false
    name: Legion2
    description: Second platform
    type: Camera
    sensors:
      - sensor: 
        active: true
        name: EO2
        type: video
        url: udp://227.1.1.1:30125?localaddr=127.0.0.1
        recorder:
          recorderType: tsRecorder  # another type of recorder (windows only)
          targetDir: C:\tmp\Recorder # Recorder Target Directory. If not specified, recording will be disabled
          segmentDuration: 20 # segment duration in seconds  
          lastSegmentsToKeep: 4    
        stanag2WebRtc:
          addr: localhost:5000

In the provided configuration file:

The file starts with the "platforms:" key, indicating that a list of platforms will follow. The platform (for example, a UAV) may have a number of sensors (like video channels, etc)

Each platform is represented as a dictionary denoted by a hyphen (-) followed by indentation. In this sample we have two independent platforms:

The first platform is named "Legion" and is of type "Plane." It has two sensors: "EO" and "IR."

The "EO" sensor is active (true) and is of type "video." It has a URL for receiving video feed from the source and additional configurations for Recorder and Stanag2WebRtc services.

The Recorder section is used to configure an additional recorder service which provides the segmented (20 sec) cyclic (keeps only 4 latest recording clips) recording.

The type of recorder is set in recorderType - "recorderProc". There may be 2 recorder types:
- recorderProc - integrated stanag2WebRtc recorder
- tsRecorder - external ts recorder (Windows only)

The stanag2WebRtc section configures the stanag2WebRtc service. See here for more info on the available options.

The "IR" sensor is very similar to the first one. It defines a service on another port and for different url.

The second platform is inactive (false), indicating it is not currently being used. You can keep in the configuration, but it won't be processed and no services will be launch for it.

Note that this is a sample YAML configuration file, and the actual behavior of the platform or the meaning of the configurations will depend on the system that processes this file.