OHyMoS.NET Class Library

OhInputFile クラス

入力ファイル用送信端子モデルを表すクラスです。 抽象クラスです。 このクラスはOhInputPort を継承します。

The OhInputFile class is an abstract class of port models of input files. It extends OhInputPort.

この型のすべてのメンバの一覧については、 OhInputFile メンバを参照してください。

System.Object
   OhymosNet.OhObject
      OhymosNet.OhPort
         OhymosNet.OhSenderPort
            OhymosNet.OhSendPort
               OhymosNet.OhInputPort
                  OhymosNet.OhInputFile
                     OhymosNet.OhInputFileDouble
                     OhymosNet.OhInputFileFloat
                     OhymosNet.OhInputFileInt
                     OhymosNet.OhInputFileLong

public abstract class OhInputFile : OhInputPort

解説

入力ファイル用送信端子モデルは、送信端子のみを持つ要素モデル であると解釈することもできます。すなわち、このモデルは、ファ イルからデータを読み込み、データパックに変換して送信端子にデー タパックをストックします。

実際には、入力ファイル用送信端子モデルは、要素モデルの1つと してモデル化されずに、送信端子モデルの派生モデルとして実現さ れています。すなわち、送信端子モデルにファイル読み取り機能を 追加して、入力ファイル用送信端子モデルが作成されています。そ の関係は次のようです。

クラス OhInputFile では、

・入力ファイル名 : OhObject._objectName
・入力ファイルの最終更新時刻 : _fileTimeAtInput

を記憶し、

・入力ファイルからのデータパック送信機能

を定義しました。

パラメタファイルや初期値データファイルなどは、クラス OhTotalSystem のオブジェクトが OhTotalSystem.readParameterFile()OhTotalSystem.readInitialStateFile() などを 利用して読み取り作業をします。 したがって、パラメタや初期値などは、端子を通して供給されるわけではありません。 OhInputFile が扱う入力ファイルとは、 時間的に変化するデータを収録しているファイルです。

クラス OhInputFile のメソッド OhInputFile.inputData() は、 データ補間型配列を指定する行(#& dctVecで始まる行)を ファイルから読み取る機能を持っています。 クラス OhInputFile のメソッド OhInputFile.inputData()が読み取るデータの例を示します。 # rainfall.ia # ---------------------------------------------------------- # Year(int) Sec(long) Frac(double) R(double, mm/hour) # DataConnectionType = 0:BROKENLINE 1:STEP 2:PULSE 3:NOINTP #& dctvec 1 1 # 2000 0 0.0 0.0 2000 7200 0.0 5.0 2000 14400 0.0 0.0 2000 50000 0.0 0.0
行頭が # で始まる行はコメント行です。

ただし、行頭の # の直後に &がある行は意味を持っていて、その 後の英単語によって、その意味が異なります。この例で、#& dctvec と書いてある行がありますが、これは、データ補間型配列列を指定 している行です。データ補間型については、クラス DataConnectionTypeを参照してください。 この例は、データは1次元のデータで、そのデータ補間型は、STEP すなわち、階段 状であると指定しています。

データ部分の最初の3個のデータは、OhTimePoint型の データでデータ時刻を表わしています。その後のデータは、データ値で、 この例では、OhTimePoint(2000, 0, 0.0) の時刻のデータ値は、0.0 です。

OHyMoS.NET では、OhInputFileから、OhInputFileDouble などを継承して作成しています。プログラムユーザも、 OhInputFileを継承して、ユーザ独自の入力端子クラスを 作成することができます。

ユーザ独自の入力端子モデルをこの抽象クラスから派生して作成す るときは、対応するデータパック型を定義するとともに、この抽象 クラスの

public abstract String DataType{ get; };
public abstract OhDataPack makeDataPack(String);
の2つの抽象メソッドを、そのデータパック型に対応して定義して ください。

An object of "OhInputFile" class has
(Object) _objectName
input file name
_fileTimeAtInput
final update time of the input file
and
function to read in data and send them as datapacks to the send port.

必要条件

名前空間: OhymosNet

アセンブリ: OhymosNet (OhymosNet.dll 内)

参照

OhInputFile メンバ | OhymosNet 名前空間