Articles of raspberry pi

构buildNode.js给出错误:Node.jsconfiguration错误:找不到可接受的C编译器

在尝试使用Ubuntu 14.04系统交叉编译ARM(Raspberry Pi B)的Node.js v0.10.30时,遇到错误消息: Node.js configure error: No acceptable C compiler found! Please make sure you have a C compiler installed on your system and/or consider adjusting the CC environment variable if you installed it in a non-standard prefix. 我该如何解决这个问题并成功编译node.js? 在新的Ubuntu 14.04 x64安装上使用的命令: sudo apt-get install gcc g++ git git clone git://github.com/joyent/node.git cd node […]

如何在开发过程中模拟串口?

我正在为我的Raspberry Pi开发node.js应用程序,它从串口接收数据,但是我不直接开发应用程序,而是使用我的主计算机。 所以我有我的app.js这个代码: var serialport = require("serialport"); var SerialPort = serialport.SerialPort; var sp = new SerialPort("/dev/ttyACM0", { parser: serialport.parsers.readline("\n") }); sp.on("data", function (rawData) { … 这在Rasperry Pi上运行良好,但我希望能够在开发计算机上运行应用程序,而无需评论有关串口的每个代码块。 达到这个目标的最好方法是什么? 有没有办法模拟串口?

树莓派,Arduino,Node.js和串口

我试图从一个node.js服务器脚本与我的arduino谈话。 这是我的代码: var app = require('express')() , server = require('http').createServer(app) , io = require('socket.io').listen(server) , SerialPort = require('serialport').SerialPort; //SERIAL var portName = '/dev/ttyACM0'; var sp = new SerialPort(); // instantiate the serial port. sp.open(portName, { // portName is instatiated to be COM3, replace as necessary baudRate: 115200, // this is synced to what was set […]

如何使用asynchronousI / O将实时数据集写入磁盘?

我是在node.js中开发的新手(尽pipe在客户端JavaScript方面经验相对丰富),并且在处理node.js中的asynchronous操作时遇到了很多关于良好实践的问题。 我的具体问题(虽然我想这是一个相当通用的主题)是,我有一个node.js应用程序(在树莓派上运行),每隔10秒将数个温度探测器的读数logging到内存数据结构中。 这工作得很好。 数据随着时间在内存中积累,随着数据积累并达到特定的大小阈值,数据会定期老化(只保留最后N天的数据)以防止数据增长超过一定的大小。 这个温度数据被用来控制一些其他的电器。 然后,我有一个单独的间隔计时器,每隔一段时间将这些数据写出到磁盘(如果进程崩溃,则保留它)。 我使用asynchronousnode.js( fs.open() , fs.write()和fs.close() )磁盘IO将数据写入磁盘。 而且,由于磁盘IO的asynchronous特性,在我看来,我试图写入磁盘的数据结构可能会在我写入磁盘的过程中被修改。 这可能是一件坏事。 如果在将数据写入磁盘时数据只附加到数据结构中,那么实际上并不会导致写入数据的方式出现问题,但是在某些情况下,在logging新数据时可能会修改较早的数据这真的会弄乱我在写入磁盘过程中的完整性。 我可以想到我可以在我的代码中使用各种有点丑陋的保护措施,例如: 切换到同步IO以将数据写入磁盘(对于服务器响应的原因,实际上并不想这么做)。 设置一个标志,当我开始写数据,并没有logging任何新的数据,而该标志设置(导致我在写入过程中丢失的数据logging)。 选项2更复杂的版本,我设置标志和设置标志时,新的数据进入一个单独的临时数据结构,当文件IO完成,然后合并真实的数据(可行,但似乎丑陋)。 拍摄原始数据的快照副本,并花时间将该副本写入磁盘,知道没有人会修改副本。 我不想这样做,因为数据集是相当大的,我在有限的内存环境(树莓派)。 所以,我的问题是当asynchronousIO的其他操作可能需要修改该数据时用什么devise模式来编写一个大的数据集? 处理我的问题的方法是否比上面列出的具体解决方法更多?

为ARM6交叉编译Node.js(树莓派)

我试图让node.js v0.7.9编译为覆盆子pi,但是由于node和v8相当大,我希望能够在另一个更强大的PC上进行交叉编译。 我使用https://github.com/raspberrypi/tools中的linux-x86 arm-bcm2708-linux-gnueabi工具链,并使用它们成功构build了系统的其他可执行文件。 我最终设置了CC,CXX,CPP,STRIP,OBJCOPY等。 variables转换为环境variables中的工具链等价物,然后使用./configure –dest-cpu=arm –without-snapshot运行configuration以获取最终的可执行文件。 将其复制到系统并运行它会产生以下错误: Extension or internal compilation error at line 0. Segmentation fault 但是,对于像node –version和node –help这样的非javascript任务,不会发生分段错误。 有没有任何CFLAGS / CXXFLAGS我可能会丢失造成这个问题? 有点困惑….