【FMU】最小構成のMBD事例 第2章 その63【FMILibrary⑳】

【FMU】最小構成のMBD事例 第2章 その63【FMILibrary⑳】 事例
【FMU】最小構成のMBD事例 第2章 その63【FMILibrary⑳】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回はFMILibraryの「fmi2_import_get_variable_listによる変数リストの取得」について説明。
続けて以下をやっていく。

  • fmi2_import_get_variable_list_sizeによる変数リスト数の取得
  • fmi2_import_get_variableによる変数オブジェクトの取得
  • fmi2_import_get_variable_vrによるvalueReferenceの取得
  • fmi2_import_get_variable_nameによる変数名の取得
  • fmi2_import_get_variable_description、fmi2_import_get_variability、fmi2_import_get_causality、fmi2_import_get_initialによる各種詳細情報の取得

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

fmi2_import_get_variable_list_sizeによる変数リスト数の取得

フクさん
フクさん

次は「fmi2_import_get_variable_list_sizeによる変数リスト数の取得」だが、
これはこのまんまの話だな。
変数リストの要素数が取得できる。

太郎くん
太郎くん

ホントそのまんまだねー。

フクさん
フクさん

一応、API仕様を書きだそう。

size_t  fmi2_import_get_variable_list_size(fmi2_import_variable_list_t* vl)

vl:変数リスト
戻り値:変数リストの要素数

太郎くん
太郎くん

要素数を取るってことは、この後for文かなんかで回すことを想定しているのかな?

フクさん
フクさん

そうだね。
私がサンプルとして提示しようとしているソースコードとしてはそんな感じ。
実際には、情報格納用のバッファを動的に確保したいときとかいろいろありそうだけど。

太郎くん
太郎くん

なるほどー。

fmi2_import_get_variableによる変数オブジェクトの取得

フクさん
フクさん

次は「変数オブジェクトの取得だな」

太郎くん
太郎くん

変数オブジェクトって結局何者?

フクさん
フクさん

まぁ変数オブジェクトそのものが情報と言うより、
これもハンドル的な性質が強いな。
この変数オブジェクトを元に該当変数に紐づいた様々な情報が取れるってイメージ。

太郎くん
太郎くん

じゃー、とりあえず変数情報を得るために一時的に記憶すればOKか。

フクさん
フクさん

API仕様は以下だ。

fmi2_import_variable_t* fmi2_import_get_variable(fmi2_import_variable_list_t* vl, size_t  index)

vl:変数リスト
index:変数リストから取得したい要素のインデックス
戻り値:変数オブジェクト(範囲外だとNULL)

太郎くん
太郎くん

そのまま配列的なアクセスかと思ったけど、
APIを経由するのか。

フクさん
フクさん

内部の構造としてはSTLのstd::vectorみたいな可変長配列として実装されているようだ。
と言っても、仕様として明確なのはAPI仕様だけなので、
FMILibraryの今後のversionUP次第では内部実装は変わってしまうことはあるだろう。

太郎くん
太郎くん

まぁAPIを経由するとは言え、使う側からすると配列アクセスとあんまり変わらないようにしてくれてるってことだね。

まとめ

フクさん
フクさん

まとめだよ。

  • 「fmi2_import_get_variable_list_sizeによる変数リスト数の取得」の仕様確認。
    • やってることはそのままでリストの要素数を取得。
  • 「fmi2_import_get_variableによる変数オブジェクトの取得」の仕様確認。
    • 変数オブジェクトは変数関連の情報にアクセスするハンドルのようなもの。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました