バックナンバーはこちら。
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を取得する予定。
バックナンバーはこちら。
コメント