Cordova应用程序从通过USB连接的Beaglebone黑色设备读取文件

时间:2017-11-13 12:52:43

标签: android jquery node.js linux cordova

我正在开发一个移动应用程序作为称重秤的UI(硬件:Beaglebone black - Debian wheezy OS),使用Cordova(HTML,css和JQuery)。

称重秤数据已存储在位于机器/ tmp /目录的FIFO文件中。

我的要求是从Android移动设备上运行的UI应用程序中读取该FIFO文件。显示其中的值。机器已通过USB OTG连接到我的手机。

以下是我的尝试:

我在设备上写了一个'C'程序,用于阻止FIFO文件只读,并在控制台中打印。

int main()
{
    int fd1;
    char * myfifo = "/tmp/myfifo";
    char str1[180], str2[180];
    fd1 = open(myfifo,O_RDONLY); // block fifo file for reading
    read(fd1, str1, 180);
    printf("%s\n", str1);
    close(fd1);
    return 0;
}

我在Windows机器上有一个带有node-serialport包的no​​dejs脚本,通过COM端口连接到设备。

使用此节点脚本,我可以通过COM端口以root用户身份连接到设备的终端,并能够执行“C”程序。我通过执行此nodejs脚本在Windows机器终端窗口中获​​取数据。

var SerialPort = require('serialport');
var myPort = new SerialPort('COM3', 9600);
var Readline = SerialPort.parsers.Readline;
var parser = new Readline();

myPort.pipe(parser);

myPort.on('open', showPortOpen);
parser.on('data', readSerialData);
myPort.on('error', showError);
myPort.on('close', showPortClose);

function showPortOpen() {
    myPort.write('root\r', function(err) {
        if (err) {
            console.log(err);
        }
    });
    command = '/root/readtest\r'; // location of the compiled C program on device
    setInterval(() => { // keep executing the program with specific interval
        myPort.write(command, function(err) {
        if (err) {
            console.log(err);
        }
        });
    },500);
}
function readSerialData(data) {
    console.log(data);
}
function showPortClose() {
    console.log('port closed.');
}
function showError(error) {
    console.log('Serial port error: ' + error);
}
  1. 是否可以使用Linux命令行实现'C'程序部分? (原因是因为我不想在设备上安装任何东西,只能在移动设备上安装。)
  2. 是否可以将此nodejs脚本与我的cordova应用程序捆绑在一起在移动设备的后台运行?

  3. 从我的应用程序中读取FIFO文件并在UI中显示的任何其他选项?

  4. 是否可以使用cordova插件cordovarduino读取文件?

0 个答案:

没有答案