 |
helics
2.8.1
|
9 #include "../application_api/Endpoints.hpp"
10 #include "../application_api/HelicsPrimaryTypes.hpp"
11 #include "../application_api/Publications.hpp"
12 #include "helicsApp.hpp"
27 int generatorIndex{-1};
28 std::string generatorName;
45 virtual void set(
const std::string& parameter,
double val);
47 virtual void setString(
const std::string& parameter,
const std::string& val);
50 virtual defV generate(
Time signalTime) = 0;
67 explicit Source(std::vector<std::string> args);
72 Source(
int argc,
char* argv[]);
83 Source(
const std::string& name,
const std::shared_ptr<Core>& core,
const FederateInfo& fi);
95 Source(
const std::string& name,
const std::string& configString);
106 virtual void initialize()
override;
111 virtual void runTo(
Time stopTime_input)
override;
120 void addPublication(
const std::string& key,
121 const std::string& generator,
124 const std::string& units = std::string());
135 const std::string& units = std::string())
137 addPublication(key, std::string(), type, period, units);
142 int addSignalGenerator(
const std::string& name,
const std::string& type);
144 void setStartTime(
const std::string& key,
Time startTime);
146 void setPeriod(
const std::string& key,
Time period);
148 void linkPublicationToGenerator(
const std::string& key,
const std::string& generator);
150 void linkPublicationToGenerator(
const std::string& key,
int genIndex);
152 std::shared_ptr<SignalGenerator> getGenerator(
int index);
160 virtual void loadJsonFile(
const std::string& jsonString)
override;
164 Time runSourceLoop(
Time currentTime);
167 std::vector<SourceObject> sources;
168 std::vector<std::shared_ptr<SignalGenerator>> generators;
169 std::map<std::string, int> generatorLookup;
170 std::vector<Endpoint> endpoints;
171 std::map<std::string, int> pubids;
172 Time defaultPeriod = 1.0;
constexpr Time timeZero
Definition: helics-time.hpp:31
std::shared_ptr< SignalGenerator > getGenerator(int index)
Definition: Source.cpp:301
helics::Time loadJsonTime(const Json::Value &timeElement, time_units defaultUnits=time_units::sec)
Definition: JsonProcessingFunctions.cpp:64
Definition: Source.hpp:23
int addSignalGenerator(const std::string &name, const std::string &type)
Definition: Source.cpp:285
void addPublication(const std::string &key, data_type type, Time period, const std::string &units=std::string())
Definition: Source.hpp:132
virtual void initialize() override
Definition: Source.cpp:180
virtual void set(const std::string ¶meter, double val)
Definition: Source.cpp:30
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
void linkPublicationToGenerator(const std::string &key, const std::string &generator)
Definition: Source.cpp:327
Definition: helicsCLI11.hpp:41
std::string getKey(const Json::Value &element)
Definition: JsonProcessingFunctions.cpp:90
std::string masterFileName
the name of the master file used to do the construction
Definition: helicsApp.hpp:129
void loadJsonFileConfiguration(const std::string &appName, const std::string &jsonString)
Definition: helicsApp.cpp:159
Definition: core-exceptions.hpp:48
const std::string & typeNameStringRef(data_type type)
Definition: helicsTypes.cpp:27
virtual void setString(const std::string ¶meter, const std::string &val)
Definition: Source.cpp:32
Definition: FederateInfo.hpp:20
virtual void runTo(Time stopTime_input) override
Definition: Source.cpp:219
Definition: Source.hpp:60
Json::Value loadJson(const std::string &jsonString)
Definition: JsonProcessingFunctions.cpp:24
@ startup
when created the federate is in startup state
@ helics_flag_source_only
Definition: helics_enums.h:92
void addPublication(const std::string &key, const std::string &generator, data_type type, Time period, const std::string &units=std::string())
Definition: Source.cpp:256
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
Definition: Source.hpp:36
mpark::variant< double, int64_t, std::string, std::complex< double >, std::vector< double >, std::vector< std::complex< double > >, NamedPoint > defV
Definition: HelicsPrimaryTypes.hpp:34
void setPeriod(const std::string &key, Time period)
Definition: Source.cpp:318
Definition: Publications.hpp:23
void setStartTime(const std::string &key, Time startTime)
Definition: Source.cpp:310
void publish(double val)
Definition: Publications.cpp:70
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
data_type
Definition: helicsTypes.hpp:275
void setTime(Time indexTime)
Definition: Source.hpp:52
std::shared_ptr< CombinationFederate > fed
the federate created for the Player
Definition: helicsApp.hpp:127
Definition: helicsApp.hpp:28
constexpr Time timeEpsilon
Definition: helics-time.hpp:33
void loadFile(const std::string &filename)
Definition: helicsApp.cpp:124
@ executing
entered after the enterExectuationState call has returned