我正在使用Erlang驱动机器人。
我读取C程序中的传感器值,并希望将这些传感器值(多个传感器值)发送到Erlang程序,我可以在那里执行计算和控制机器人。 在Erlang书中给出的程序中,我们可以发送多个参数,但是我们只返回一个参数。 用于将X和Y发送到C程序:
Port ! {self(), {command, [50,X,Y]}}
结果:
{Port,{data, Data}} ->
我们只得到一个参数Data(buff [0])。
有没有办法在Erlang程序中接收多个参数,如buff [0],buff [1],buff [2] ..等等。 请建议我实现这个目标......
答案 0 :(得分: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以获取用户指南。
答案 1 :(得分:0)
检查您的C文件并发送回二进制文件,例如
你正在使用什么样的司机?答案 2 :(得分:0)
您可以使用ei_decode_X,其中X是您希望解码值的值的类型。理想情况下,当从erlang发送它时,您应该执行term_to_binary然后传输它。