4.5.4 不同DFF之间传递DataFrame
MEMS支持不同DFF之间传递DataFrame,包括在同一MEMS中不同DFF之间传递DataFrame、在不同MEMS的DFF之间传递DataFrame。
4.5.4.1 接收其他DFF的DataFrame的DFF配置
接收其他DFF的DataFrame的DFF,需要将DFF触发类型设置为DataSource数据源驱动,如下:
| DFF ID | 是否启用 | 名称 | 触发条件 | 触发条件参数 | 存储模式 | 目标AOE | AOE变量名称 |
|---|---|---|---|---|---|---|---|
| <u64> | <Bool> | <String> | DataSource | <String> | EveryTime Once Memory Never | <u64> | <String> |
若该DFF有多个数据源类型节点,且需要特定数据源节点都收到数据后再执行DFF,则触发条件参数填写特定节点编号,并用;分割,例如:若节点1和节点2接收其他DFF的数据,且均收到数据后再执行DFF,则该DFF的触发条件参数填写1;2。
在DFF节点中配置类型为SOURCE_OTHER的节点接收其他DFF的DataFrame:
| DFF ID | 节点ID | 名称 | 节点类型 | 参数 |
|---|---|---|---|---|
| <u64> | <u64> | <String> | SOURCE_OTHER | <String> |
若是接收其他MEMS的DataFrame,则节点参数填写0;若是接收同一MEMS其他DFF的DataFrame,则节点参数填写其他DFF的id。
4.5.4.2 向其他DFF发送DataFrame的DFF配置
向其他DFF发送DataFrame的DFF,需要在DFF边中配置类型为WriteFile的边发送DataFrame。
| DFF ID | 首尾节点 | 边名称 | 描述 | 边类型 | 参数 |
|---|---|---|---|---|---|
| <u64> | <u64>;<u64> | <String> | <String> | WriteFile | mems://beeId/DFF_id/node_id |
参数写法中,mems://表示是将DataFrame发送到其他DFF,后面分别是写入MEMS的beeId、DFF id和节点id。注意只有在边接收到非空的DataFrame,才会向其他DFF发送数据,否则在边中不进行操作。
4.5.4.3 接收其他MEMS的DataFrame的通信配置
要在2个MEMS之间传递DataFrame,还要建立2个MEMS之间的通信,MEMS默认使用端口7058和7059监听其他MEMS的连接,监听端口也可在config配置文件中进行设置,写法如下:
emsListenPort=7058
emsRtMsgListenPort=7059
在另一个MEMS的config配置文件配置接入MEMS的IP和端口,如下所示,其中cloudURL3和cloudURL4为参数名称,beeId为接入MEMS的beeId,127.0.0.1为接入MEMS的IP,7058和7059为接入MEMS的端口:
cloudURL3 = beeId/127.0.0.1:7058
cloudURL4 = 127.0.0.1:7059
上述配置也可在MEMS界面设置项-云中进行配置,如下图所示。

图中,node2为接入MEMS的beeId,127.0.0.1为接入MEMS的IP,7058和7059为接入MEMS的端口。