# SPDX-FileCopyrightText: 2014-2024 Institute for Automation of Complex Power Systems, RWTH Aachen University
# SPDX-License-Identifier: Apache-2.0

nodes = {
    webrtc_siggen = {
        type = "webrtc",

        format = "json"

        in = {
            signals = (
                { name = "signal", type = "float", unit = "unit" },
                { name = "signal", type = "float", unit = "unit" },
                { name = "signal", type = "float", unit = "unit" }
            )
        }

        out = {
            signals = (
                { name = "signal", type = "float", unit = "unit" },
                { name = "signal", type = "float", unit = "unit" },
                { name = "signal", type = "float", unit = "unit" }
            )
        }

        # A unique session identifier which must be shared between two nodes
        session = "villas-test"

        # Address to the websocket signaling server
        server = "https://villas.k8s.eonerc.rwth-aachen.de/ws/signaling"

        # Limit the number of times a channel will retransmit data if not successfully delivered.
        # This value may be clamped if it exceeds the maximum value supported.
        max_retransmits = 0

        # Number of seconds to wait for a WebRTC connection before proceeding the start
        # of VILLASnode. Mainly used for testing
        wait_seconds = 10 # in seconds

        # Indicates if data is allowed to be delivered out of order.
        # The default value of false, does not make guarantees that data will be delivered in order.
        ordered = false

        # Setting for Interactive Connectivity Establishment
        # If empty then configured servers in signaling server are used.
        ice = {
            # List of STUN/TURN servers
            servers = ( )
        }
    }

    siggen = {
        type = "signal"
        signal = [ "sine", "pulse", "square" ]
        values = 3          # Number of values per sample
        limit = 1           # Number of samples to generate
        rate = 1            # Rate in Hz
    }
}

paths = (
    {
        in = "siggen"
        out = "webrtc_siggen"

        hooks = ( "print" )
    },
    {
        in = "webrtc_siggen"

        hooks = ( "print" )
    }
)