包含存储数据的节点 - 红色图表节点

时间:2018-02-12 10:49:56

标签: node.js node-red


我的图表节点有问题。我想显示一个折线图,数据源是两条MQTT消息。微控制器在2个主题(linearccdL和linearccdH)中发布两个2049个元素字节数组。数据是单词的上下字节,起初我必须加入它们,它现在可以使用了 当2049个16位数字准备就绪时,我必须在图表上显示它们。根据文档,图节点接受以下形式的数组:

[{
"series": ["A", "B", "C"],
"data": [
    [{ "x": 1504029632890, "y": 5 },
     { "x": 1504029636001, "y": 4 },
     { "x": 1504029638656, "y": 2 }
    ],
    [{ "x": 1504029633514, "y": 6 },
     { "x": 1504029636622, "y": 7 },
     { "x": 1504029639539, "y": 6 }
    ],
    [{ "x": 1504029634400, "y": 7 },
     { "x": 1504029637959, "y": 7 },
     { "x": 1504029640317, "y": 7 }
    ]
],
"labels": [""]
}]

我使用function格式化数据:

var rawDataL = new ArrayBuffer(2049);
var rawDataH = new ArrayBuffer(2049);
var rawData = new Uint16Array(2049);
var outobj = {};
var outarr = [];
var outmsg;

if (msg.topic == "rbmt/linearccdL") {
    context.rawDataL = msg.payload;
    context.Lset=true;
} else if (msg.topic == "rbmt/linearccdH") {
    context.rawDataH = msg.payload;
    context.Hset=true;
}
if (context.Lset & context.Hset) {
    for (var i=0; i<2049; i++) {
        rawData[i]=context.rawDataH[i]*256+context.rawDataL[i];
        outobj={"x":i, "y":rawData[i]};
        outarr.push(outobj);

    }
    context.Lset=false;
    context.Hset=false;
    outmsg = {"series":"[A]", data: outarr};
    return outmsg;
}

放入debug节点后,我可以看到该消息,似乎没问题,但在仪表板上我得到了#34;没有数据&#34;。
我是JS的新手,有人可以帮忙吗? 调试消息:debug msg

0 个答案:

没有答案