我可以在C节点中获得Erlang OTP行为吗?

时间:2011-01-20 16:24:51

标签: event-handling erlang robotics otp erl-interface

例如,现在我有一个C节点(称之为 CN )连接到erlang节点(称之为 EN )并使用RPC来使用OTP行为。因此,要将 CN 上的活动发送到 EN 上的活动管理器,我将 CN 连接到 EN 并执行< / p>

args = erl_format("[data_man, {~f, ~f}]", ch.at(0), ch.at(1));
erl_rpc_to(fd, "gen_event", "notify", args);

但是,我的C节点确实不是一个节点(即为什么创建一个只使用远程过程调用的节点?)。

有没有办法在C节点内直接使用OTP行为?

如果没有,我应该查看OTP使用的消息格式并使用该格式发送消息(即我可以欺骗OTP行为吗?)? 我不喜欢这个想法,我将不得不关注OTP等实施的变化。

我的要求中存在严格的延迟限制,这是如何影响我在C进程和Erlang之间进行通信的选择(RPC会让我陷入困境等等?)

1 个答案:

答案 0 :(得分:4)

无法直接使用C中的OTP行为。我也认为您不应该模仿OTP行为直接使用它们。

您应该首先使用RPC,然后根据性能要求测试代码。如果需要,您总是可以向gen_event进程发送一条简单的消息,使其通过handle_info / 2方法通知自己。

相关问题