node-red的udp数据处理及switch应用

news/2024/5/18 14:00:53 标签: udp, 网络, 服务器

1.配置udp in节点
本次实验接受是字符串信息,故打开udp监听端口,输出也是字符串:"$f0,AF31A1FBA599,19,F6D88D5A2302,00,00,00,005E00410000580000120953000000,-83#↵"
在这里插入图片描述
2.function节点代码编写
funcition用于编写函数,对数据进行处理,输出想要的值。主要通过简单的代码实现数据处理。
2.1udp数据解析函数:

var header = (msg.payload[1] + msg.payload[2]);
var gatewayMAC = msg.payload.slice(4,16);
var tagID = msg.payload.slice(28,32)

var battery = parseInt((msg.payload[48] + msg.payload[49]), 16);
var heartrate = parseInt((msg.payload[54] + msg.payload[55]), 16);
var temperature = (parseInt(msg.payload.slice(62,63), 16)) * 0.1 + 20;

if (header == "f0") {
    msg.payload = 
        {
            tagID: tagID,
            battery: battery,
            heartrate: heartrate,
            temperature: temperature
        };    
    return msg;
}

2.2B8CF Data函数:是以tagID来过滤数据重新生成对象object数据,msg是jason的object和array,进行topic和payload分类标识

const targetTagID = "2302";

if (msg.payload.tagID === targetTagID) {
    var msg =
        [
            {topic:"battery", payload: msg.payload.battery },
            {topic:"heartrate", payload: msg.payload.heartrate },
            {topic:"temperature", payload: msg.payload.temperature },
        ];
    return msg;
}

请注意:输出数据是3组就再这里配置3
在这里插入图片描述
3、配置switch节点
switch左边连接function输出3组数据,右边是switch输出3组数据是根据topic(2.2函数重新的对象)来分类输出的。在这里插入图片描述
在这里插入图片描述
在layout处进行数据展示布局设计在这里插入图片描述
在这里插入图片描述

node-red后台运行

nohup node-red &
启动之后会提示:nohup:ignoring input and appending output to 'nohup.out’直接点击回车。
查看进程:ps aux | grep node-red
此时不要直接关闭连接页面,如果直接关闭会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown。
所以此时输入:exit,退出终端。

chatGPT建议:openwrt docker运行nodered及homeassistant

docker run -it -p 1880:1880 --name mynodered nodered/node-red
docker run --name home-assistant --net=host -v /opt/home-assistant-config:/config -e “TZ=Asia/Shanghai” -d homeassistant/home-assistant


http://www.niftyadmin.cn/n/1160010.html

相关文章

oracle服务丢失的处理方法之OracleServiceORCL不存在示例

oracle服务是oracle数据库的重要组成部分,下面就教您oracle服务丢失的处理方法,如果您之前遇到过oracle服务丢失的问题,不妨一看。 今天发现数据库服务器上的所有oracle服务都丢失了——也就是说在服务管理器中没有oracle服务了,如…

OpenWRT docker安装homeassistant、node-red、zigbee2mqtt

N1 OpenWRT安装HA和Node-RED chatGPT建议:openwrt docker运行nodered及homeassistant docker run -it -p 1880:1880 --name mynodered nodered/node-red docker run --name home-assistant --nethost -v /opt/home-assistant-config:/config -e “TZAsia/Shanghai…

精简版StringBuilder,提速字符串拼接 QuickStringWriter完整代码

using System; using System.Collections.Generic; using System.Text;namespace blqw {public class QuickStringWriter : IDisposable{public QuickStringWriter() : this(2048) { }/// <summary>/// 实例化新的对象,并且指定初始容量/// </summary>/// <para…

Web API入门指南(安全)转

安全检测的工具站点&#xff1a;https://www.owasp.org/index.php/Category:Vulnerability_Scanning_Tools Web API入门指南有些朋友回复问了些安全方面的问题&#xff0c;安全方面可以写的东西实在太多了&#xff0c;这里尽量围绕着Web API的安全性来展开&#xff0c;介绍一些…

JS学习之页面加载

1、window.opener.location.reload();意思是让打开的父窗口刷新。window.opener指的是本窗口的父窗口&#xff0c;window.opener.location.href只是一个链接&#xff0c;如果想实现父窗口的提交就调用&#xff0c;window.opener.action"" 和window.opener.submit(); …

c# 活动窗口 键盘监听

/// /// 監視クラス /// class HotKey { [DllImport("user32.dll ", SetLastError true)] public static extern bool RegisterHotKey( IntPtr hWnd, int id, KeyModifiers fsModifiers, Keys vk ); [DllImport("user32.dll ", SetLastError true)] publ…

Node.js笔记2

入门二 5. 事件 Node.js中所有的异步I/O操作完成时都会发送一个事件到事件队列。 Events 事件模块 events.EventEmitter 简单用法&#xff1a; var EventEmitter require(events).EventEmitter; var event new EventEmitter(); event.on(some_event, function() { console.lo…

N年的经验在别人眼里是怎么看的?

很多人简历上都喜欢总结这么一句话&#xff1a;N年XXX领域的经验。N值越大&#xff0c;似乎越NB。 可是&#xff0c;我怎么看到很多人做了几十年的饭&#xff0c;水平变化不大&#xff0c;和专业厨师还是差得远。 还有写一辈子字的&#xff0c;开一辈子车的&#xff0c;这些人也…