mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
86 lines
4 KiB
Text
86 lines
4 KiB
Text
# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
@include "hook-nodes.conf"
|
|
|
|
stats = 1
|
|
|
|
paths = (
|
|
{
|
|
in = "signal_node"
|
|
out = "file_node"
|
|
|
|
hooks = (
|
|
{
|
|
type = "lua"
|
|
|
|
# Enables or disables the use of signal names in the process() function
|
|
# of the Lua script. If disabled, numeric indices will be used.
|
|
use_names = true
|
|
|
|
# The Lua hook will pass the complete hook configuration to the prepare()
|
|
# function. So you can add arbitrary settings here which are then
|
|
# consumed by the Lua script.
|
|
some_setting = "Hello World"
|
|
this = {
|
|
is = {
|
|
nested = 1234
|
|
bool_val = true
|
|
}
|
|
}
|
|
|
|
# Script mode: we provide a Lua script containing functions
|
|
# for the individual hook points
|
|
# Define some or all of the following functions in your Lua script:
|
|
#
|
|
# prepare(cfg) Called during initialization with a Lua table which contains
|
|
# the full hook configuration
|
|
# start() Called when the node/path is started
|
|
#
|
|
# stop() Called when the node/path is stopped
|
|
#
|
|
# restart() Called when the node/path is restarted.
|
|
# Falls back to stop() + start() if absent.
|
|
#
|
|
# process(smp) Called for each sample which is being processed.
|
|
# The sample is passed as a Lua table with the following
|
|
# fields:
|
|
# - sequence The sequence number of the sample.
|
|
# - flags The flags field of the sample.
|
|
# - ts_origin The origin timestamp as a Lua table containing
|
|
# the following keys:
|
|
# 0: seconds
|
|
# 1: nanoseconds
|
|
# - ts_received The receive timestamp a Lua table containing
|
|
# the following keys:
|
|
# 0: seconds
|
|
# 1: nanoseconds
|
|
# - data The sample data as a Lua table container either
|
|
# numeric indices or the signal names depending
|
|
# on the 'use_names' option of the hook.
|
|
#
|
|
# periodic() Called periodically with the rate of the global 'stats' option.
|
|
script = "../lua/hooks/test.lua"
|
|
|
|
# Expression mode: We provide a mangled signal list including Lua expressions
|
|
signals = (
|
|
{ name = "sum", type="float", unit = "V", expression = "smp.data.square * 10" },
|
|
|
|
# You can access any global variable set by the script
|
|
{ name = "sequence", type="float", unit = "V", expression = "global_var" },
|
|
|
|
# Here we set a global variable from the periodic handler
|
|
{ name = "temp_aachen", type="float", unit = "°C", expression = "temp_aachen" },
|
|
|
|
# We can refer to the current time the global Lua variable 't'
|
|
{ name = "sum", type="float", unit = "V", expression = "math.sin(2 * math.pi * f * t)" },
|
|
|
|
{ name = "random", expression = "smp.data.random" }
|
|
)
|
|
},
|
|
{
|
|
type = "print"
|
|
}
|
|
)
|
|
}
|
|
)
|