通过Pubnub从Photon发送批量读数,以便在EON图表中显示

时间:2016-11-16 15:47:36

标签: javascript charts pubnub photon

使用我的Photon,我记录了4000个传感器读数(存储在一个阵列中)1秒钟。然后我将读数分成100组,并通过PUBNUB将其作为消息发送到网站。

光子的PUBNUB库对于消息的结构非常挑剔,如果消息不是100%正确,则会崩溃(红色闪烁)。有效的结构是[{" Time":" 1456"," Value":" 1"},{" Time& #34;:" 1458","价值":" 2"}]。

这是批处理代码:

void myReadings(int aData[], float aTime[], int nX)
{
    int x = 0;
    while (x <= nX) {
        String stringTemp = "[";
        for (int q= 0; q <= 100; q++)
        {
            if (x <= nX) {
                stringTemp += "{\"Time\":\"" + String(aTime[x]) + "\",\"Value\":\"" + String(aData[x]) + "\"}";
                if (q < 100 and x< nX)
                {
                    stringTemp += ",";
                }
                x += 1;
            }
        }

        stringTemp += "]";
        int strLen = stringTemp.length();
        char * msg = new char[strLen + 1];
        stringTemp.toCharArray(msg, strLen + 1);
        Serial.println(msg);
        TCPClient * client;
        client = PubNub.publish(channel, msg);
        client ->stop();
        Serial.println("Message sent");
        delay(1000);

    }

在网络方面,我无法让我的Javascript在数组中循环并绘制时间与价值点。我知道消息已经到来,但我无法得到任何标题。

请帮助您使用Javascript,它将在数组中循环并绘制点。

这是我正在使用的Javascript:

<script type="text/javascript">
    var pubnub = PUBNUB.init({
        publish_key: 'XXXX',
        subscribe_key: 'YYY',
        error: function (error) { console.log('Error:', error) }
    });
    var GraphChannel = "AmpValue";
    var h = false;

    charttemp = eon.chart({
        pubnub: pubnub,
        channel: GraphChannel,
        limit: 5000,
        xType: 'custom',
        xId: 'Time',
        history: h,
        flow: false,
        generate: {
            bindto: "#charttemp",
            data: { colors: {}, type: "spline" },
            size: { height: 600, width: 1000 },
            transition: { duration: 100 },
            axis: { x: { label: "Time", show: false }, y: { label: "Amps", show: true } },
            grid: { x: { show: false }, y: { show: true } },
        },
        transform: function (m) {
            return { eon: { 'Time': m.Time, 'Value': m.Value } }
        }
    });

</script>

我是否需要修改已发布的消息,或者是否需要修改Javascript以循环播放数组以进行绘图?

0 个答案:

没有答案