BlueM.DLLAdapter: Difference between revisions

From BlueM
Jump to navigation Jump to search
mNo edit summary
m (fix syntax highlighting)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''BlueM.DLLAdapter''' ist ein .NET Wrapper zum Ansprechen des [[BlueM]] Rechenkerns in DLL-Form.
'''BlueM.DLLAdapter''' ist ein .NET Wrapper zum Ansprechen des [[BlueM.Sim]] Rechenkerns in DLL-Form.


==Schnittstellendefinitionen==
==Schnittstellendefinitionen==
[[Bild:BlueM DLL Wrapper.png|thumb|Klassendiagramm]]
[[Bild:BlueM DLL Wrapper.png|thumb|Klassendiagramm]]
Nachfolgend werden die Schnittstellen-Methoden zur Kommunikation mit der BlueM DLL mit den zugehörigen Übergabe- bzw. Rückgabeparametern aufgelistet.
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).
Falls ein Fehler auftritt wird die Methode <code>CreateAndThrowException</code> aufgerufen (schmeisst einen Fehler).
* Basismethoden
===Basismethoden===
:* Initialize
'''Initialize'''
:<csharp>public void Initialize(string filePath)</csharp>
<source lang="csharp">public void Initialize(string filePath)</source>
:"filePath" ist der Absolute Pfad mit dem Projektnamen ohne die Dateiendung .ALL (Bsp. "d:\Simulation\TSIM").
:<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
 
:<csharp>public void PerformTimeStep()</csharp>
'''PerformTimeStep'''
<source lang="csharp">public void PerformTimeStep()</source>
:Berechnet den nächsten Zeitschritt.
:Berechnet den nächsten Zeitschritt.
:* Finish / Dispose
 
:<csharp> public void Finish()</csharp>
'''Finish / Dispose'''
:<csharp> public void Dispose()</csharp>
<source lang="csharp">
:Schliessen alle Dateien und freigabe des Speichers
public void Finish()
public void Dispose()
</source>
:Schliessen aller Dateien und Freigabe des Speichers
 
'''Datumsangaben'''
<source lang="csharp">
public DateTime GetCurrentTime()
public DateTime GetSimulationStartDate()
public DateTime GetSimulationEndDate()
</source>
: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:
Beispiel zur Nutzung des Bluem.DLLAdapters zur Simulation mittels BlueM.dll in VB.NET (Anwendung nur mit einer Simulation - ''SingleDLL''):
<vbnet>
<source lang="vbnet">
'Einmal zu Beginn instanzieren
bluem_dll = New BlueM_EngineDotNetAccess("Pfad-zu-BlueM.dll")
bluem_dll = New BlueM_EngineDotNetAccess("Pfad-zu-BlueM.dll")
...


Try
Try
Line 35: Line 50:
     Loop
     Loop


     'Simulation erfolgreich
     'Simulation abschliessen
    Call bluem_dll.Finish()
 
    'Simulation abgeschlossen
    MsgBox("Simulation erfolgreich!", MsgBoxStyle.Information, "BlueM")
 
     simOK = True
     simOK = True


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


Finally
Finally


     Call bluem_dll.Finish()
     'Ressourcen deallokieren
     Call bluem_dll.Dispose()
     Call bluem_dll.Dispose()


End Try
End Try
</vbnet>
</source>


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

Latest revision as of 09:19, 27 January 2018

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

1
public void Initialize(string filePath)
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

1
public void PerformTimeStep()
Berechnet den nächsten Zeitschritt.

Finish / Dispose

1
2
public void Finish()
public void Dispose()
Schliessen aller Dateien und Freigabe des Speichers

Datumsangaben

1
2
3
public DateTime GetCurrentTime()
public DateTime GetSimulationStartDate()
public DateTime GetSimulationEndDate()
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):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
'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