BlueM.DLLAdapter

From BlueM
Revision as of 09:19, 27 January 2018 by Froehlich (talk | contribs) (fix syntax highlighting)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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