DPsim
|
Interface type that can be used to import and export simulation attributes over any node type supported by VILLASnode. More...
#include <InterfaceVillas.h>
Public Member Functions | |
InterfaceVillas (const String &nodeConfig, UInt queueLength=512, UInt sampleLength=64, const String &name="", UInt downsampling=1) | |
create a new InterfaceVillas instance More... | |
void | importAttribute (CPS::AttributeBase::Ptr attr, UInt idx, Bool blockOnRead=false, Bool syncOnSimulationStart=true, const String &name="", const String &unit="") |
configure an attribute import More... | |
void | exportAttribute (CPS::AttributeBase::Ptr attr, UInt idx, Bool waitForOnWrite, const String &name="", const String &unit="") |
configure an attribute export More... | |
void | printVillasSignals () const |
Public Member Functions inherited from DPsim::Interface | |
Interface (std::shared_ptr< InterfaceWorker > intf, const String &name="", UInt downsampling=1) | |
virtual void | open () |
virtual void | close () |
virtual void | pushDpsimAttrsToQueue () |
virtual void | popDpsimAttrsFromQueue (bool isSync=false) |
virtual void | syncExports () |
virtual void | syncImports () |
Function called by the Simulation to perform interface synchronization. | |
virtual CPS::Task::List | getTasks () |
void | setLogger (CPS::Logger::Log log) |
Additional Inherited Members | |
Public Types inherited from DPsim::Interface | |
enum | AttributePacketFlags { PACKET_NO_FLAGS = 0 , PACKET_CLOSE_INTERFACE = 1 } |
typedef std::shared_ptr< Interface > | Ptr |
using | AttributePacket = struct AttributePacket { CPS::AttributeBase::Ptr value |
Static Public Member Functions inherited from SharedFactory< Interface > | |
static std::shared_ptr< Interface > | make (Args &&...args) |
Static Public Member Functions inherited from SharedFactory< InterfaceVillas > | |
static std::shared_ptr< InterfaceVillas > | make (Args &&...args) |
Public Attributes inherited from DPsim::Interface | |
UInt | attributeId |
UInt | sequenceId |
unsigned char | flags |
std::vector< std::tuple< CPS::AttributeBase::Ptr, UInt, bool, bool > > | mImportAttrsDpsim |
std::vector< std::tuple< CPS::AttributeBase::Ptr, UInt > > | mExportAttrsDpsim |
Protected Member Functions inherited from DPsim::Interface | |
virtual void | addImport (CPS::AttributeBase::Ptr attr, bool blockOnRead=false, bool syncOnSimulationStart=true) |
virtual void | addExport (CPS::AttributeBase::Ptr attr) |
Protected Attributes inherited from DPsim::Interface | |
std::shared_ptr< InterfaceWorker > | mInterfaceWorker |
CPS::Logger::Log | mLog |
String | mName |
bool | mSyncOnSimulationStart |
UInt | mCurrentSequenceDpsimToInterface = 1 |
UInt | mNextSequenceInterfaceToDpsim = 1 |
UInt | mDownsampling |
std::atomic< bool > | mOpened |
std::thread | mInterfaceWriterThread |
std::thread | mInterfaceReaderThread |
std::shared_ptr< moodycamel::BlockingReaderWriterQueue< AttributePacket > > | mQueueDpsimToInterface |
std::shared_ptr< moodycamel::BlockingReaderWriterQueue< AttributePacket > > | mQueueInterfaceToDpsim |
Interface type that can be used to import and export simulation attributes over any node type supported by VILLASnode.
Definition at line 21 of file InterfaceVillas.h.
DPsim::InterfaceVillas::InterfaceVillas | ( | const String & | nodeConfig, |
UInt | queueLength = 512 , |
||
UInt | sampleLength = 64 , |
||
const String & | name = "" , |
||
UInt | downsampling = 1 |
||
) |
create a new InterfaceVillas instance
nodeConfig | VILLASnode node configuration in JSON format |
queueLength | queue lenght configured for the node |
sampleLength | sample length configured for the node |
name | Name of this interface. Currently only used for naming the simulation tasks |
downsampling | Only import and export attributes on every nth timestep |
Definition at line 10 of file InterfaceVillas.cpp.
void DPsim::InterfaceVillas::exportAttribute | ( | CPS::AttributeBase::Ptr | attr, |
UInt | idx, | ||
Bool | waitForOnWrite, | ||
const String & | name = "" , |
||
const String & | unit = "" |
||
) |
configure an attribute export
attr | the attribute which's value should be exported |
idx | The id given to the attribute within VILLASnode samples |
waitForOnWrite | Whether a sample that is sent from this interface is required to contain an updated value of this attribute |
name | Name given to the attribute within VILLASnode samples |
unit | Unit given to the attribute within VILLASnode samples |
Definition at line 27 of file InterfaceVillas.cpp.
void DPsim::InterfaceVillas::importAttribute | ( | CPS::AttributeBase::Ptr | attr, |
UInt | idx, | ||
Bool | blockOnRead = false , |
||
Bool | syncOnSimulationStart = true , |
||
const String & | name = "" , |
||
const String & | unit = "" |
||
) |
configure an attribute import
attr | the attribute that should be updated with the imported values |
idx | The id given to the attribute within VILLASnode samples |
blockOnRead | Whether the simulation should block on every import until the attribute has been updated |
syncOnSimulationStart | Whether the simulation should block before the first timestep until this attribute has been updated |
Definition at line 17 of file InterfaceVillas.cpp.