簡體   English   中英

Raspberry Pi應用程序的信息網頁

[英]Info Web Page For Raspberry Pi Application

我有一個在rPi2上運行的應用程序。 讀取傳感器值並在文件上記錄時間標記(用Java編寫)。 我需要設置一個網頁來顯示這些日志。 由於Pi會變得無腦,所以我決定采用網頁方式。 我選擇了Charts.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就無法加載本地文件。 那么對此有什么想法嗎?

這是一個很酷的項目。 我做了以下工作:

tmp_data.txt(測量后通過raspi上的java生成):

{"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_data.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上的某些網絡服務器將提供html。
據我所知,如果沒有用戶交互,js無法在客戶端上加載本地文件,因為這可能是一個嚴重的安全問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM