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

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

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

はじめに

パラメータ名文字列が判明していればFMILibrary経由で簡単にパラメータアクセス用のvalueReferenceが取得できそう。

今まで説明してきたAPIでほぼ実現可能だが、
1つパラメータ名文字列から変数オブジェクト取得のAPIだけが不明の状態。
今回はこれの説明のみ。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

パラメータ名文字列から変数オブジェクト取得方法

太郎くん
太郎くん

今回は、「パラメータ名文字列から変数オブジェクト取得」をするAPIの話だね。

フクさん
フクさん

そうそう。
早速API仕様を出そう。

fmi2_import_variable_t* fmi2_import_get_variable_by_name(fmi2_import_t* fmu, const char* name)

fmu:モデル記述オブジェクト
name:パラメータ文字列
戻り値:変数オブジェクト

太郎くん
太郎くん

モデル記述オブジェクトは毎度のやつで、
nameもそのまんまで欲しいパラメータ文字列を渡せばOKってことだね。

フクさん
フクさん

というわけで説明完了だ。

太郎くん
太郎くん

(今回は異常に早いな・・・。)

ソースコード修正について

フクさん
フクさん

そうなると実験用に再びサンプルプロジェクトのfmi2_import_cs_testを改造することになるな。

太郎くん
太郎くん

また似たとこに差し込む感じ?

フクさん
フクさん

そうだね。
fmi2_import_enter_initialization_mode

fmi2_import_exit_initialization_mode
の間で良いだろう。

太郎くん
太郎くん

恒例のイニシャルモード中だね。

フクさん
フクさん

そして、ついでにパラメータも変更してボールの跳ね方を見るって感じだな。

太郎くん
太郎くん

そっか。
valueReferenceが取得できるから、
そのままそれを使ってアクセスできるのか。

フクさん
フクさん

そうそう。
まぁ複数のパラメータ名から複数のvalueReferenceを取るような作りにしようかなって思ってる。

太郎くん
太郎くん

ん?
API的にそういう機能があるの?

フクさん
フクさん

いんや。
単にfor文で回して取るだけ。
複数のvalueReferenceを一気に取れるようにしておいた方が今後の実験にも於いても楽できそうかなって思って。

太郎くん
太郎くん

ということは、まだFMILibrary関連が続くってことなのか・・・。

なんとなくの今後の話

フクさん
フクさん

FMILibraryを使うのは間違いないが、少し趣は変えるかもしれない。
私もボールが跳ねるのだけ見るのも飽きてきたし。

太郎くん
太郎くん

(ということは他のFMUを試すってことなのかな?)

フクさん
フクさん

まぁまずは今回のAPIの効能確認をして、
その後に今後の方針だな。

太郎くん
太郎くん

おー!

まとめ

フクさん
フクさん

まとめだよ。

  • 「パラメータ名文字列から変数オブジェクト取得」のAPI確認。
    • fmi2_import_get_variable_by_nameというAPI。
    • パラメータ名文字列を渡せば、変数オブジェクトが返ってくる。
  • 修正箇所は恒例のイニシャルモード中。
    • 今後のことも考え複数のvalueReferenceを取得する予定。

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

コメント

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