4

ロボットの駆動にはErlangを使用しています。

C プログラムでセンサー値を読み取っていて、これらのセンサー値 (複数のセンサー値) を Erlang プログラムに送信して 、計算を実行し、ロボットを制御したいと考えています。Erlang book に記載されているプログラムでは、複数の引数を送信できますが、結果として返される引数は 1 つだけです。 X と Y を C プログラムに送信する場合:

Port ! {self(), {command, [50,X,Y]}}

結果として:

{Port,{data, Data}} ->

引数 Data(buff[0]) を 1 つだけ取得しました。

Erlang プログラムで buff[0]、buff[1]、buff[2] などの複数の引数を受け取る方法はありますか? これを達成する方法を教えてください...

4

3 に答える 3

4

3 のタプルを構築して返し、そのバイナリを返し、答えでそのままパターンマッチします。ei モジュールを使用して、タプルとリストを作成できます。その方法についてはhttp://www.erlang.org/doc/apps/erl_interface/index.html (モジュール ei) を参照し、http://www.erlang.org/doc/apps/erl_interface/users_guide を参照してください。ユーザー ガイドのhtml 。

于 2010-08-03T09:03:32.767 に答える
0

Cファイルをチェックアウトして、たとえばバイナリを送り返します。

どんなドライバーを使っていますか?

于 2010-08-03T01:05:19.430 に答える
0

ei_decode_X を使用できます。ここで、X は、デコードされた値にする値の型です。理想的には、erlang から送信する場合は、term_to_binary を実行してから転送する必要があります。

于 2016-04-24T00:35:49.287 に答える