Node-RED> 一.Windows环境下的安装及使用

Node-RED是一种基于Node.js的编程工具,用于以新颖有趣的方式将硬件设备,API和在线服务连接在一起。它提供了一个基于浏览器的编辑器,可以使用调色板中的各种节点轻松地将流连接在一起,只需单击即可将其部署到运行时。Node-Red提供基于网页的编程环境。通过拖拽已定义node到工作区并用线连接node创建数据流来实现编程。程序员通过点击“部署”按钮实现一键保存并执行。程序以JSON字符串的格式保存,方便用户分享、修改。
摘要由CSDN通过智能技术生成

目录

1.Node-RED简介

2.安装Node.js环境安装

3.安装Node-RED

4.Node-RED启动

5.Node-RED使用


1.Node-RED简介

        Node-RED是一种基于Node.js的编程工具,用于以新颖有趣的方式将硬件设备,API和在线服务连接在一起。它提供了一个基于浏览器的编辑器,可以使用调色板中的各种节点轻松地将流连接在一起,只需单击即可将其部署到运行时。

        Node-Red提供基于网页的编程环境。通过拖拽已定义node到工作区并用线连接node创建数据流来实现编程。程序员通过点击“部署”按钮实现一键保存并执行。程序以JSON字符串的格式保存,方便用户分享、修改。 

        Node-Red基于Node.js,它的执行模型和Node.js一样,充分利用其事件驱动的非阻塞模型。这使得它非常适合在低成本硬件(如Raspberry Pi)和云端运行在网络边缘。理论上,Node.js的所有模块都可以被封装成Node-Red的一个或几个node。

2.安装Node.js环境安装

Node.js官网下载:Download | Node.js

下载完成后,安装即可,可以在命令行CMD中执行 “node -v”查询安装的node.js版本。

3.安装Node-RED

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一段 C++ 代码,定义了一个名为 ReleaseOneValue 的函数,函数的参数是一个 void 指针 data。以下是每行代码的解释: 1. `void ReleaseOneValue(void* data)`:定义了一个返回类型为 void,参数为 void 指针的函数 ReleaseOneValue。 2. `if (data == NULL) { return; }`:如果传入的参数 data 是空指针,则直接返回,不做任何操作。 3. `ValueNode* node = (ValueNode*)data;`:将参数 data 强制转换为 ValueNode 类型的指针,并将其赋值给变量 node。 4. `if (node->value_.use_count_ <= 1)`:判断 node 的 value_ 成员变量中的 use_count_ 是否小于等于 1。 5. `node->value_.use_count_ = 0;`:将 node 的 value_ 成员变量中的 use_count_ 设置为 0。 6. `node_list_tail_->next_node_ = node;`:将 node 添加到链表 node_list_tail_ 的尾部。 7. `node->next_node_ = NULL;`:将 node 的 next_node_ 成员变量设置为 NULL。 8. `node_list_tail_ = node;`:将 node_list_tail_ 的值更新为 node。 9. `value_status_.free_num_++;`:将 value_status_ 中的 free_num_ 成员变量加 1。 10. `node->value_.RelResourceInTime();`:调用 node 的 value_ 成员变量中的 RelResourceInTime 函数,该函数用于释放动态分配的内存。 11. `if(rphead && ::is_open_reverse)`:如果变量 rphead 不为空且全局变量 ::is_open_reverse 为真,则执行以下操作: 12. `if(PACKET_NONE != rphead->btCurStaus)`:如果 rphead 的 btCurStaus 成员变量不等于 PACKET_NONE,则执行以下操作: 13. `rphead->pktbuf = NULL;`:将 rphead 的 pktbuf 成员变量设置为 NULL,以防止重复存包。 14. `rphead->CdrRaw.ncdrid = node->value_.GetCdrid();`:将 rphead 的 CdrRaw 成员变量中的 ncdrid 设置为 node 的 value_ 成员变量中的 Cdrid。 15. `rphead->CdrRaw.tstart.tm_cycles = node->value_.GetTstart();`:将 rphead 的 CdrRaw 成员变量中的 tstart.tm_cycles 设置为 node 的 value_ 成员变量中的 Tstart。 16. `rphead->CdrRaw.cdrstat = PACKET_END;`:将 rphead 的 CdrRaw 成员变量中的 cdrstat 设置为 PACKET_END。 17. `rphead->btCurStaus = PACKET_END;`:将 rphead 的 btCurStaus 成员变量设置为 PACKET_END。 18. `pubSendPkt((void*)rphead);`:调用 pubSendPkt 函数,将 rphead 作为参数传入。 19. `} else { node->value_.use_count_--; }`:如果 rphead 为空或全局变量 ::is_open_reverse 为假,则将 node 的 value_ 成员变量中的 use_count_ 减 1。 20. `return;`:函数执行完毕,返回。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值