簡単なアイデアがありますが、Simulinkに実装するのは難しいと思います。Cコードを使用して、BeagleBoneとsimulinkブロックの間にTCP/IPサーバーを作成しました。入力としてビーグルボーンに接続されたスイッチがあり、スイッチが閉じているか開いているかを示すディスプレイをSimulinkブロックに表示することを考えています。クライアント(simulinkブロック)がACコードであり、Cコードがスイッチの値を取得するために戻った後に関数の実行を終了するため、1回だけジョブを実行するため、実行できませんでした。Simulinkクライアントブロックとディスプレイの間でデータを転送するためのsimulink転送モードまたは派手なCのヒントを知っていますか?
1 に答える
私が取り組んできたシミュレーターでは、リモート IP アドレスと IP ポートを持つ Sink ブロックを使用して、リアルタイムで計算されたデータを外部リスナー (同じマシン上またはネットワーク経由で接続されている可能性があります) にエクスポートしました。グラフィックス レンダリングを行うコンピューターであり、Ogre 3D を使用して記述された C++ コードと、ソース ブロックを使用する別の simulink モデルによって取得されました。
また、インタラクティブな海図プロッタ ディスプレイ (GPS 位置表示) もありました。必要なときにいつでも次のコマンドを呼び出すことで、simulink から生成された値にアクセスできます。
variable = get_param('Simulator/Chartplotter/YDot','RuntimeObject');
「set_param」を呼び出して、simulink モデル内にある定数値を変更することもできます。
私はビーグル犬の経験はありませんが、スイッチが開いているかどうかを示すために、simulink モデルに存在する論理定数を変更する matlab scrip を C コードで実行できると思います。
別の方法として、最初のオプションを検討することもできますが、これは simulink から C プログラムにデータを取得するためだけに使用したものであり、その逆ではありません。残念ながら受信側の C コードに直接アクセスすることはできませんが、どうしても行き詰まってしまった場合は、同僚に重要な部分を送ってもらうことができます。
お役に立てれば。