mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-16 00:00:02 +01:00
121 lines
4.6 KiB
YAML
121 lines
4.6 KiB
YAML
# yaml-language-server: $schema=http://json-schema.org/draft-07/schema
|
|
# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
---
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
format:
|
|
$ref: ../format_spec.yaml
|
|
|
|
uri:
|
|
type: string
|
|
format: uri
|
|
description: |
|
|
Specifies the URI to a file from which is written to or read from depending in which group (`in`or `out`) is used.
|
|
|
|
This setting allows to add special placeholders for time and date values.
|
|
See [strftime(3)](http://man7.org/linux/man-pages/man3/strftime.3.html) for a list of supported placeholder.
|
|
|
|
**Example**:
|
|
|
|
```
|
|
uri = "logs/measurements_%Y-%m-%d_%H-%M-%S.log"
|
|
```
|
|
|
|
will create a file called:
|
|
|
|
```
|
|
./logs/measurements_2015-08-09_22-20-50.log
|
|
```
|
|
|
|
in:
|
|
type: object
|
|
properties:
|
|
epoch:
|
|
type: number
|
|
|
|
epoch_mode:
|
|
type: string
|
|
enum:
|
|
- direct
|
|
- wait
|
|
- relative
|
|
- absolute
|
|
description: |
|
|
The *epoch* describes the point in time when the first message will be read from the file.
|
|
This setting allows to select the behavior of the following `epoch` setting.
|
|
It can be used to adjust the point in time when the first value should be read.
|
|
|
|
The behavior of `epoch` is depending on the value of `epoch_mode`.
|
|
|
|
To facilitate the following description of supported `epoch_mode`'s, we will introduce some intermediate variables (timestamps).
|
|
Those variables will also been displayed during the startup phase of the server to simplify debugging.
|
|
|
|
- `epoch` is the value of the `epoch` setting.
|
|
- `first` is the timestamp of the first message / line in the input file.
|
|
- `offset` will be added to the timestamps in the file to obtain the real time when the message will be sent.
|
|
- `start` is the point in time when the first message will be sent (`first + offset`).
|
|
- `eta` the time to wait until the first message will be send (`start - now`)
|
|
|
|
The supported values for `epoch_mode`:
|
|
|
|
| `epoch_mode` | `offset` | `start = first + offset` |
|
|
| :-- | :-- | :-- |
|
|
| `direct` | `now - first + epoch` | `now + epoch` |
|
|
| `wait` | `now + epoch` | `now + first` |
|
|
| `relative` | `epoch` | `first + epoch` |
|
|
| `absolute` | `epoch - first` | `epoch` |
|
|
| `original` | `0` | immediately |
|
|
|
|
rate:
|
|
type: number
|
|
default: 0
|
|
description: |
|
|
By default `send_rate` has the value `0` which means that the time between consecutive samples is the same as in the `in` file based on the timestamps in the first column.
|
|
|
|
If this setting has a non-zero value, the default behavior is overwritten with a fixed rate.
|
|
|
|
eof:
|
|
type: string
|
|
default: exit
|
|
enum:
|
|
- rewind
|
|
- wait
|
|
- exit
|
|
|
|
description: |
|
|
Defines the behavior if the end of file of the input file is reached.
|
|
|
|
- `rewind` will rewind the file pointer and restart reading samples from the beginning of the file.
|
|
- `exit` will terminated the program.
|
|
- `wait` will periodically test if there are new samples which have been appended to the file.
|
|
|
|
buffer_size:
|
|
type: integer
|
|
min: 0
|
|
default: 0
|
|
description: |
|
|
Similar to the [`out.buffer_size` setting](#out-buffer_size). This means that the data is loaded into the buffer before it is passed on to the node.
|
|
|
|
If `in.buffer_size = 0`, no buffer will be generated.
|
|
|
|
out:
|
|
type: object
|
|
properties:
|
|
flush:
|
|
type: boolean
|
|
description: |
|
|
With this setting enabled, the outgoing file is flushed whenever new samples have been written to it.
|
|
|
|
buffer_size:
|
|
type: integer
|
|
default: 0
|
|
min: 0
|
|
description: |
|
|
If this is set to a positive value `<X>`, the node will generate a full [stream buffer](https://linux.die.net/man/3/setvbuf) with a size of `<X>` bytes. This means that the data is buffered and not written until the buffer is full or until the node is stopped.
|
|
|
|
If `out.buffer_size = 0`, no buffer will be generated.
|
|
|
|
- $ref: ../node_signals.yaml
|
|
- $ref: ../node.yaml
|