BlueM.DLLAdapter: Difference between revisions

From BlueM
Jump to navigation Jump to search
mNo edit summary
m (fix syntax highlighting)
Line 8: Line 8:
===Basismethoden===
===Basismethoden===
'''Initialize'''
'''Initialize'''
<csharp>public void Initialize(string filePath)</csharp>
<syntaxhighlight lang="csharp">public void Initialize(string filePath)</syntaxhighlight>
:<code>filePath</code> ist der Absolute Pfad mit dem Projektnamen ohne die Dateiendung <code>.ALL</code> (Bsp.: <code>"D:\Simulation\TSIM"</code>).
:<code>filePath</code> ist der Absolute Pfad mit dem Projektnamen ohne die Dateiendung <code>.ALL</code> (Bsp.: <code>"D:\Simulation\TSIM"</code>).
:Das System wird initialisiert und alle zugehörigen Daten aus den Simulationsdateien geladen.  
:Das System wird initialisiert und alle zugehörigen Daten aus den Simulationsdateien geladen.  


'''PerformTimeStep'''
'''PerformTimeStep'''
<csharp>public void PerformTimeStep()</csharp>
<syntaxhighlight lang="csharp">public void PerformTimeStep()</syntaxhighlight>
:Berechnet den nächsten Zeitschritt.
:Berechnet den nächsten Zeitschritt.


'''Finish / Dispose'''
'''Finish / Dispose'''
<csharp>
<syntaxhighlight lang="csharp">
  public void Finish()
  public void Finish()
  public void Dispose()
  public void Dispose()
</csharp>
</syntaxhighlight>
:Schliessen aller Dateien und Freigabe des Speichers
:Schliessen aller Dateien und Freigabe des Speichers


'''Datumsangaben'''
'''Datumsangaben'''
<csharp>
<syntaxhighlight lang="csharp">
  public DateTime GetCurrentTime()
  public DateTime GetCurrentTime()
  public DateTime GetSimulationStartDate()
  public DateTime GetSimulationStartDate()
  public DateTime GetSimulationEndDate()
  public DateTime GetSimulationEndDate()
</csharp>
</syntaxhighlight>
:Was sind die Simulationszeiten (Anfang und Ende). Wo befinden wir uns gerade (GetCurrentTime) - wird nach jedem PerformTimeStep wietergeschoben.
:Was sind die Simulationszeiten (Anfang und Ende). Wo befinden wir uns gerade (GetCurrentTime) - wird nach jedem PerformTimeStep wietergeschoben.


==Anwendungsbeispiel==
==Anwendungsbeispiel==
Beispiel zur Nutzung des Bluem.DLLAdapters zur Simulation mittels BlueM.dll in VB.NET (Anwendung nur mit einer Simulation - ''SingleDLL''):
Beispiel zur Nutzung des Bluem.DLLAdapters zur Simulation mittels BlueM.dll in VB.NET (Anwendung nur mit einer Simulation - ''SingleDLL''):
<vbnet>
<syntaxhighlight lang="vbnet">
'Einmal zu Beginn instanzieren
'Einmal zu Beginn instanzieren
bluem_dll = New BlueM_EngineDotNetAccess("Pfad-zu-BlueM.dll")
bluem_dll = New BlueM_EngineDotNetAccess("Pfad-zu-BlueM.dll")
Line 74: Line 74:


End Try
End Try
</vbnet>
</syntaxhighlight>


[[Kategorie:BlueM.Sim Development]]
[[Kategorie:BlueM.Sim Development]]

Revision as of 23:46, 19 July 2017

BlueM.DLLAdapter ist ein .NET Wrapper zum Ansprechen des BlueM.Sim Rechenkerns in DLL-Form.

Schnittstellendefinitionen

Klassendiagramm

Nachfolgend werden die Schnittstellen-Methoden zur Kommunikation mit der BlueM.Sim DLL mit den zugehörigen Übergabe- bzw. Rückgabeparametern aufgelistet.

Falls ein Fehler auftritt wird die Methode CreateAndThrowException aufgerufen (schmeisst einen Fehler).

Basismethoden

Initialize <syntaxhighlight lang="csharp">public void Initialize(string filePath)</syntaxhighlight>

filePath ist der Absolute Pfad mit dem Projektnamen ohne die Dateiendung .ALL (Bsp.: "D:\Simulation\TSIM").
Das System wird initialisiert und alle zugehörigen Daten aus den Simulationsdateien geladen.

PerformTimeStep <syntaxhighlight lang="csharp">public void PerformTimeStep()</syntaxhighlight>

Berechnet den nächsten Zeitschritt.

Finish / Dispose <syntaxhighlight lang="csharp">

public void Finish()
public void Dispose()

</syntaxhighlight>

Schliessen aller Dateien und Freigabe des Speichers

Datumsangaben <syntaxhighlight lang="csharp">

public DateTime GetCurrentTime()
public DateTime GetSimulationStartDate()
public DateTime GetSimulationEndDate()

</syntaxhighlight>

Was sind die Simulationszeiten (Anfang und Ende). Wo befinden wir uns gerade (GetCurrentTime) - wird nach jedem PerformTimeStep wietergeschoben.

Anwendungsbeispiel

Beispiel zur Nutzung des Bluem.DLLAdapters zur Simulation mittels BlueM.dll in VB.NET (Anwendung nur mit einer Simulation - SingleDLL): <syntaxhighlight lang="vbnet"> 'Einmal zu Beginn instanzieren bluem_dll = New BlueM_EngineDotNetAccess("Pfad-zu-BlueM.dll")

...

Try

   Call bluem_dll.Initialize("Pfad-zu-Datensatz")
   Dim SimEnde As DateTime = BlueM_EngineDotNetAccess.DateTime(bluem_dll.GetSimulationEndDate())
   'Schleife über Simulationszeitraum 
   Do While (BlueM_EngineDotNetAccess.DateTime(bluem_dll.GetCurrentTime) <= SimEnde)
       Call bluem_dll.PerformTimeStep()
   Loop
   'Simulation abschliessen
   Call bluem_dll.Finish()
   'Simulation abgeschlossen
   MsgBox("Simulation erfolgreich!", MsgBoxStyle.Information, "BlueM")
   simOK = True

Catch ex As Exception

   'Simulationsfehler aufgetreten
   MsgBox(ex.Message, MsgBoxStyle.Exclamation, "BlueM")
   'Simulation abschliessen
   Call bluem_dll.Finish()
   simOK = False

Finally

   'Ressourcen deallokieren
   Call bluem_dll.Dispose()

End Try </syntaxhighlight>