/// Protobuf schema based on msg_format.h /// /// @file /// @author Steffen Vogel /// @copyright 2014-2020, Institute for Automation of Complex Power Systems, EONERC /// @license GNU General Public License (version 3) /// /// VILLASnode /// /// This program is free software: you can redistribute it and/or modify /// it under the terms of the GNU General Public License as published by /// the Free Software Foundation, either version 3 of the License, or /// any later version. /// /// This program is distributed in the hope that it will be useful, /// but WITHOUT ANY WARRANTY; without even the implied warranty of /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /// GNU General Public License for more details. /// /// You should have received a copy of the GNU General Public License /// along with this program. If not, see . //////////////////////////////////////////////////////////////////////////////////// syntax = "proto2"; package villas.node; message Message { repeated Sample samples = 1; } message Sample { enum Type { DATA = 1; // Message contains float / integer data values START = 2; // Message marks the beginning of a new simulation case STOP = 3; // Message marks the end of a simulation case }; required Type type = 1 [default = DATA]; optional uint64 sequence = 2; // The sequence number is incremented by one for consecutive messages. optional Timestamp timestamp = 4; repeated Value values = 5; } message Timestamp { required uint32 sec = 1; // Seconds since 1970-01-01 00:00:00 required uint32 nsec = 2; // Nanoseconds of the current second. } message Value { oneof value { double f = 1; // Floating point values. int64 i = 2; // Integer values. bool b = 3; // Boolean values. Complex z = 4; // Complex values. } } message Complex { required float real = 1; // Real component required float imag = 2; // Imaginary component }