有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Raspberry Pi应用程序的java信息网页

我有一个在rPi2上运行的应用程序。它读取传感器值并在文件(用java编写)上记录时间标记。我需要设置一个网页来显示这些日志。由于Pi将是无头的,我决定用网页的方式。我选择了图表。js作为图表绘制库。它接受如下图表数据:

var lineChartData = {
        labels : ["January","February","March","April","May","June","July"],
        datasets : [
            {
                label: "My First dataset",
                fillColor : "rgba(220,220,220,0.2)",
                strokeColor : "rgba(220,220,220,1)",
                pointColor : "rgba(220,220,220,1)",
                pointStrokeColor : "#fff",
                pointHighlightFill : "#fff",
                pointHighlightStroke : "rgba(220,220,220,1)",
                data : [1.1,2.2,3.3,4.4,5.5,6,7,8,9]
            }
        ]

    }

我需要通过编程更改JSON上的数据和标签值。本地网络和服务于此页面。我试图用这种JSON格式生成日志,但结果表明,如果用户没有从对话框中选择文件,JS无法加载本地文件。有什么想法吗


共 (1) 个答案

  1. # 1 楼答案

    这是一个很酷的项目。我做了以下几件事:

    tmp_数据。txt(测量后通过java在raspi上生成):

    {"labels" : ["January","February","March","April","May","June","July"],
        "datasets" : [
            {
                "label": "My First dataset",
                "fillColor" : "rgba(220,220,220,0.2)",
                "strokeColor" : "rgba(220,220,220,1)",
                "pointColor" : "rgba(220,220,220,1)",
                "pointStrokeColor" : "#fff",
                "pointHighlightFill" : "#fff",
                "pointHighlightStroke" : "rgba(220,220,220,1)",
                "data" : [1.1,2.2,3.3,4.4,5.5,6,5]
            }
        ]
    }
    

    tmp_数据。html:

    <html>
      <head>
        <script src="../Chart.js"></script>
        <script>
            function loadXMLDoc() {
                var xmlhttp=new XMLHttpRequest();
                xmlhttp.onreadystatechange=function() {
                  if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                    var lineChartData = JSON.parse(xmlhttp.responseText);
                    var ctx = document.getElementById("canvas").getContext("2d");
                    new Chart(ctx).Line(lineChartData, {responsive: true});
                  }
                }
                xmlhttp.open("GET","tmp_data.txt",true);
                xmlhttp.send();
            }
        </script>
    
    </head>
        <body onload="loadXMLDoc()">
            <div style="width:30%">
                <div>
                    <canvas id="canvas" height="450" width="600"></canvas>
                </div>
            </div>
        </body>
    </html>
    

    数据文件中的“字段”必须用引号括起来。加载站点时会调用onload函数。txt文件将通过httprequest读取,并且必须与html页面位于同一目录中。我建议raspi上的一些Web服务器提供html
    据我所知,js无法在没有用户交互的情况下在客户端加载本地文件,因为这可能是一个严重的安全问题