dora中的event[“id“]和event[“type“]和event[“value“]

张开发
2026/5/21 20:26:52 15 分钟阅读
dora中的event[“id“]和event[“type“]和event[“value“]
在 Dora通常指dora-rs / dora runtime中event是节点在 **事件循环event loop**中接收到的一条消息。event[type]和event[id]是最核心的两个字段用来描述事件的类别和事件来源/名称。可以把event理解为一个事件字典dict-like objectevent{type:...,id:...,value:...,metadata:...}下面分别解释。1event[type]事件类型type表示这条事件属于什么类别。在 Dora 中常见的类型包括type含义INPUT来自其他节点或数据源的输入STOP系统通知节点停止ERROR错误事件TIMER定时器事件如果使用 timer最常见的是event[type]INPUT表示节点收到一个输入数据。典型代码foreventinnode:ifevent[type]INPUT:...2event[id]事件的名字 / 端口名id表示这个输入来自哪个 input port。换句话说id是graph.yaml 里定义的输入名称。例如nodes:-id:camera_nodeoutputs:-image-id:detectorinputs:image:camera_node/image此时detector 收到 event 时event[type]INPUTevent[id]image3event[value]数据内容真正的数据在event[value]例如ifevent[type]INPUT:ifevent[id]image:frameevent[value]4 一个完整示例典型 Dora Python nodefromdoraimportNode nodeNode()foreventinnode:ifevent[type]INPUT:ifevent[id]image:imageevent[value]elifevent[id]command:cmdevent[value]elifevent[type]STOP:break5 直观理解可以把 Dora 想成ROS topic 的简化版Dora类似概念event[type]message categoryevent[id]topic / port nameevent[data]message payload6 一个真实 event 示例例如收到相机数据{type:INPUT,id:image,value:pyarrow array,metadata:{...}}7 常见误解很多人会误以为event[id] 是 node id其实不是。它是input port name✅总结字段含义event[type]事件类别INPUT / STOP / ERRORevent[id]input port 名字event[data]数据内容

更多文章