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

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

例如,现在我有一个 C 节点(称为 CN),它连接到一个 erlang 节点(称为 EN)并使用 RPC 来使用 OTP行为。因此,要将事件从 CN 发送到 EN 上的事件管理器,我将 CN 连接到 EN 并执行

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 是否会让我陷入困境?等等)?

最佳答案

没有办法从 C 中直接使用 OTP 行为。我也不认为你应该模仿 OTP 行为来直接使用它们。

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

关于event-handling - 我可以在 C 节点中获得 Erlang OTP 行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749693/

相关文章:

erlang - 在 Erlang 中匹配二进制文件

python - OSX Mojave 上的 ROS Kinetic 安装错误

controller - 自定义 Controller 在全局启动文件中启动时死亡

.net - 如何允许在事件处理程序连接到 COM 对象的对象上进行垃圾回收

java - 如何在java swing应用程序中保留和删除多个图形对象?

java - 相当于 Java 中的 Erlang now()

list - 检查两个列表是否包含相同的元素

events - 如何使用UiBinder处理VerticalPanel中的多个ClickEvent?

java - 选择选项卡时触发 JTabbedPane 事件

c# - 帮助我为NAO的毕业论文选择一个主题