# 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 ``, the node will generate a full [stream buffer](https://linux.die.net/man/3/setvbuf) with a size of `` 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