The FederateInfo structure contains information that can be passed to a federation upon construction. Some information can be updated continuously other can be only be changed before initializationMode is entered.
the separator character between federateName and endpoint or publications that are not declared global. the default is ‘/’
The name of the core to connect with, can be left blank to either find an available core or generate one automatically.
Command line arguments that are passed to the core when starting it. Some examples are:
- “-f2” to specify 2 federates will connect
- “-f1 –broker=192.168.2.3:23444” to specify a single federate and to connect to a broker at ipaddress 192.168.2.3 port 23444
Specify which type of core to use. See core types for more details
They can be generated from a string using the
core_type coreTypeFromString (std::string type) noexcept
function call. The function
bool isCoreTypeAvailable (core_type type) noexcept;
will check if the specified core type is available in the current build of the library on a specific platform.
specify the broker to connect to, can be an ipaddress, or a name of the broker depending on the core type and federation configuration.
The local ip port to use for incoming connections. This is usually a number but depending on the system some ports can be named.
Federate info structures accept properties as either Time values, integers, or flag values (bool). These are entered through the
setProperty calls or the
The function calls take a propertyID and a value.
For a description of the available options see Timing and helics_enums and helics_definitions
Timing control variables¶
see timing for more details.
the minimum time advance allowed by the federate default timeEpsilon
The amount of time values and messages take to propagate to be available to external federates. default= 0
the time it takes values and messages to propagate to be accessible to the Federate default=0
a period value, all granted times must be on this period n*Period+offset default=0
offset to the time period default=0
real time tolerance - the maximum time grants can lag real time before HELICS automatically acts default=0.2 given this operates on a computer clock, time <0.005 are not going be very accurate or followed that closely unless the OS is specifically setup for that sort of timing level
real time tolerance - the maximum time grants can lead real time before HELICS forces an additional delay default 0.1
observer= false flag indicating that the federate is an observer
uninterruptible=false flag indicating that the federate should never return a time other than requested
source_only= false; flag indicating that the federate does not receive or do anything with received information.
only_transmit_on_change=false flag indicating that values should only updated if the number has actually changes
only_update_on_change= false flag indicating values should be discarded if they are not changed from previous values
wait_for_current_time_updates= false flag indicating that the federate should only grant when no more messages can be received at the current time
- realtime = false flag indicating that the federate is required to operate in real time. the federate must have a non-zero period
slow_responding= false flag indicating that the federate might be slow to respond to internal pings or take a long time between steps
the maximum number of iterations allowed for the federate default=50
the logging level above which not to log to file default 1(WARNING)