JQuery误读服务器端csv文件



我在树莓派上写了一个程序来读取GPIO输入,并将它们写入。csv文件,然后由Javascript脚本读取并显示在树莓派上的网页上。

Pi每0.1秒轮询pin并写入文件,脚本每0.2秒读取该文件并更新网页。

我遇到的问题是,有时脚本将读取值为全零,而不是保存在文件中的实际数字,而不会抛出任何错误。这是随机发生的,有时脚本确实正确读取文件。刷新页面,重新启动apache和重启Pi似乎没有效果。

脚本没有返回错误的事实使我相信问题发生在脚本获取文件之前,但在cat中查看文件显示正确的值。

有人有什么想法吗?

相关Javascript代码:
var csv_path = "/data/loads.csv";
function update_vars() {
//get latest data
var response = $.get(csv_path, function(data) {
    var csv_string = data;
    var res = csv_string.split("n")[1].split(",");
    //parse values into variables
    ...
});

示例文件内容:

TV,AC,Oven,Light,Solar,inverter,inverter(controlled)
1,3,2,6,0,0,0

Javascript日志输出示例:

TV,AC,Oven,Light,Solar,inverter,inverter(controlled)
0,0,0,0,0,0,0

我最终解决了这个问题,用MySQL数据库和php代替了csv文件和javascript。

现在,我的python使用php脚本向数据库添加一个条目,选择正确的值并显示它们。这样做的好处是不需要在客户端处理任何东西。

对于我的应用程序来说,这感觉有点过分,但它似乎工作得更好,更不用说现在理解LAMP堆栈是什么了。

最新更新