BlueM.DLLAdapter: Difference between revisions

From BlueM
Jump to navigation Jump to search
(Die Seite wurde neu angelegt: == Schnittstellendefnitionen == Nachfolgend werden die Schnittstellen-Methoden zur Kommunikation mit der BlueM DLL mit den zugehörigen Übergabe- bzw. rückgabeparamet...)
 
mNo edit summary
Line 1: Line 1:
== Schnittstellendefnitionen ==
== Schnittstellendefnitionen ==
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 DLL mit den zugehörigen Übergabe- bzw. Rückgabeparametern aufgelistet.


Falls ein Fehler auftritt wird die Methode "CreateAndThrowException" aufgerufenm die einen Fehler schmeisst.
Falls ein Fehler auftritt wird die Methode "CreateAndThrowException" aufgerufenm die einen Fehler schmeisst.

Revision as of 02:52, 31 August 2007

Schnittstellendefnitionen

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

Falls ein Fehler auftritt wird die Methode "CreateAndThrowException" aufgerufenm die einen Fehler schmeisst.

  • Basismethoden
  • Initialize
<csharp>public void Initialize(string filePath)</csharp>
"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
<csharp>public void PerformTimeStep()</csharp>
Berechnet den nächsten Zeitschritt.
  • Finish / Dispose
<csharp> public void Finish()</csharp>
<csharp> public void Dispose()</csharp>
Schliessen alle Dateien und freigabe des Speichers
  • Auszuge aus dem Quellcode

<csharp> namespace IHWB.OpenMI.BlueM {

   public class BlueM_EngineDotNetAccess
   {
       #region Basisfunktionen
       public void Initialize(string filePath)
       public void Finish()
       public void Dispose()
       
       public void PerformTimeStep()
       #endregion
       #region ModelInfo
       public string GetModelDescription()
       public string GetModelID()
       #endregion
       #region Exchangeobjekte
       public int GetNumberOfNodes()
       public string GetNodeKennung(int NodeID)
       public double GetYCoordinate(int NodeID)
       public double GetXCoordinate(int NodeID)
       #endregion
       #region Zeit_methoden
       public int GetTimeStepLength()
       public string GetCurrentTime()
       
       public string GetSimulationStartDate()
       public string GetSimulationEndDate()
       #endregion
       #region Get_SET_VALUES
       public double Get_Qab(int index)
       public void Set_Qzu(int index, double inflow)
       #endregion
       #region Private_methoden
       private void CreateAndThrowException()
       {
           int numberOfMessages = 0;
           numberOfMessages = mBlueM_DLLMethoden.GetNumberOfMessages();
           string message = "Error Message from BlueM Fortran Core ";
           for (int i = 0; i < numberOfMessages; i++)
           {
               int n = i+1; // Fortran zählt ab 1 (nicht 0)
               StringBuilder messageFromCore = new StringBuilder("                                                        ");
               mBlueM_DLLMethoden.GetMessage(ref n, messageFromCore, (uint)messageFromCore.Length);
               message += "; ";
               message += messageFromCore.ToString().Trim();
           }
           throw new Exception(message);
       }
       #endregion
   }

} </csharp>