Federate info¶
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.
separator [char]
the separator character between federateName and endpoint or publications that are not declared global. the default is ‘/’
coreName [string]
The name of the core to connect with, can be left blank to either find an available core or generate one automatically.
coreInitString [string]
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
coreType [enum]
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.
broker [string]
specify the broker to connect to, can be an ipaddress, or a name of the broker depending on the core type and federation configuration.
localport [string]
The local ip port to use for incoming connections. This is usually a number but depending on the system some ports can be named.
properties [bool]
Federate info structures accept properties as either Time values, integers, or flag values (bool). These are entered through the setProperty
calls or the setFlagOption
call.
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.
timeDelta[time]
the minimum time advance allowed by the federate default timeEpsilon
outputDelay[time]
The amount of time values and messages take to propagate to be available to external federates. default= 0
inputDelay[time]
the time it takes values and messages to propagate to be accessible to the Federate default=0
period[time]
a period value, all granted times must be on this period n*Period+offset default=0
offset[time]
offset to the time period default=0
rt_lag[time]
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
rt_lead[time]
real time tolerance - the maximum time grants can lead real time before HELICS forces an additional delay default 0.1
Timing flags¶
observer
= false flag indicating that the federate is an observeruninterruptible
=false flag indicating that the federate should never return a time other than requestedsource_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 changesonly_update_on_change
= false flag indicating values should be discarded if they are not changed from previous valueswait_for_current_time_updates
= false flag indicating that the federate should only grant when no more messages can be received at the current timerealtime = 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
Other Controls¶
maxIterations[int16]
the maximum number of iterations allowed for the federate default=50
logLevel[int32]
the logging level above which not to log to file default 1(WARNING)