Tag: pi

为什么使用promise的asynchronousIO会生成一个零长度的文件?

任何人都可以找出这个代码有什么问题吗? 我试图写一个文件的less量字节,我得到的是一个零长度的文件没有错误报告。 我试图在node.js中使用asynchronous文件IO和bluebird promise来将一些数据写入本地文件。 我已经使用callback函数成功编写了此函数的同步版本和asynchronous版本。 但是,因为callback版本嵌套地狱,有各种各样的error handling问题,并不容易维护,我想我会尝试一个版本使用承诺,而不是因为这应该是它的长处(更好的error handling,更less的嵌套,更容易顺序asynchronous操作)。 不幸的是,承诺版本只会导致长度为零的文件。 以下是承诺版本的代码: // at initialization time var Promise = require('bluebird'); var fs = Promise.promisifyAll(require('fs')); // code in a function var header = new Buffer('[temperatures] {"formatVersion": "1", "fields": ["t", "atticTemp", "outsideTemp"]}\r\n'); filename += ".new"; console.log("async write started"); var fd; fs.openAsync(filename, "w", 438).then(function(ffd) { fd = ffd; return fs.writeAsync(fd, […]

Estimote贴纸+ Node.js +树莓派

我正在使用Noble / Bleacon搭配Raspberry-Pi和MacbookProRetina,我试图发现一个Estimote贴纸,但是这真的很困难,因为它每隔X分钟播放一次iBeacon数据包。 据我所知,有人告诉我,它广播更多的其他types的数据包(运动传感器,温度),而不是标准的iBeacon数据包。 任何机会,我可以发现这些贴纸与我的设置?

如何使用android应用程序控制覆盆子pi gpio端口?

使用Android应用程序控制Raspberry Pi的GPIO端口有哪些方法可用? 我已经看过使用nodejs和简单的socketio – 但是如何去实现这个技术真的不明智吗? 有人能够更多地解释这种方法/build议一个替代scheme/有现有的例子吗? 谢谢

节点mdns dns服务错误

我试图用mdns节点模块实现zeroconf protocole,但是当我使用它时我有这个错误(在树莓pi 2上): error: Error: dns service error: unknown at Error (native) at new Advertisement (/var/www/lisa/node_modules/mdns/lib/advertisement.js:56:10) at Object.create [as createAdvertisement] (/var/www/lisa/node_modules/mdns/lib/advertisement.js:64:10) at Object.module.exports.bootstrap (/var/www/lisa/config/bootstrap.js:22:17) at Sails.runBootstrap (/var/www/lisa/node_modules/sails/lib/app/private/bootstrap.js:44:25) at Sails.bound [as runBootstrap] (/var/www/lisa/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21) at Sails.initialize (/var/www/lisa/node_modules/sails/lib/app/private/initialize.js:48:9) at bound (/var/www/lisa/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21) at /var/www/lisa/node_modules/sails/node_modules/async/lib/async.js:607:21 at /var/www/lisa/node_modules/sails/node_modules/async/lib/async.js:246:17 at iterate (/var/www/lisa/node_modules/sails/node_modules/async/lib/async.js:146:13) at /var/www/lisa/node_modules/sails/node_modules/async/lib/async.js:157:25 at /var/www/lisa/node_modules/sails/node_modules/async/lib/async.js:248:21 at /var/www/lisa/node_modules/sails/node_modules/async/lib/async.js:612:34 at /var/www/lisa/node_modules/sails/lib/app/load.js:201:13 at /var/www/lisa/node_modules/sails/node_modules/async/lib/async.js:451:17 […]

couchbase服务器+ couchbase lite + couchbase syncgetway + nodejs + raspbarry pi

我想在nodejs中用couchbase lite和couchbase syncgetway开发一个CRUD应用程序。 我想在Raspberry-pi上运行这个节点js应用程序。 由于我无法在Raspberry-pi上安装couchbase服务器,所以我必须使用couchbase lite作为我的应用的数据存储。 因为我想在服务器和Raspberry-pi上使用couchbase syncgetway来同步数据。 我为此search了很多,但没有发现任何东西。 我已经尝试了在Raspberry-pi上安装couchbase lite的步骤,这是措辞很好,但我没有find任何nodejs模块与couchbaselite进行通信。 有只有Objective-C,Java,Swift,Android库,但不是Nodejs。

避免强制门户

我试图做一个设备没有互联网连接,redirect到它的无线连接到一个独特的页面,像海盗一样的任何连接。 我使用NodeJS服务器和dnsmasq将所有连接redirect到服务器。 这是完美的工作,但是当我尝试与Android或iOS智能手机连接时,它将其检测为强制门户,并且页面显示在身份validationpopup窗口中。 我看到设备尝试连接到一些IP,如果没有响应,则认为连接正在通过强制门户。 有没有办法避免这种情况? 非常感谢! 编辑:我发现页面的列表“白名单”: Android Captive Portal Detection: Domain names to white list: clients3.google.com iOS for iPhone: iPhone is more complicated, since it uses many different domain names, maybe for load balancing. It also changed its strategy using different domain names through different OS versions. iOS 6: Domain names to white list: […]

Profiler显示在节点:: ContextifyScript :: New中花费的时间百分比

将项目移动到使用Node v6.6.0的Raspberry Pi(Model B)本机运行时,我注意到性能受到显着影响(可能会如预期的那样)。 我尝试了剖析代码,看看可能的改进可能在哪里,并且发现在node::ContextifyScript::New(v8::FunctionCallbackInfo<v8::Value> const&)花费了将近40%的CPU时间。 这个function是做什么的? 有没有可能find更多关于如何通过分析器优化这个脚本的信息?

Docker-compose挂在Dockerfile不支持的地方

我有一个有趣的问题…会喜欢任何提示,build议或指针在正确的方向。 不知道从哪里开始,真的。 基本上,我们有一个docker-compose.yml和Dockerfile。 Dockerfile: FROM hypriot/rpi-node:7 # Create app directory RUN mkdir -p /usr/src/rrp-database WORKDIR /usr/src/rrp-database # Install app dependencies COPY package.json /usr/src/rrp-database RUN npm install # Bundle app source COPY . /usr/src/rrp-database 泊坞窗,compose.yml: mysql: image: hypriot/rpi-mysql environment: – MYSQL_ROOT_PASSWORD=sqltest – MYSQL_DATABASE=rrplocal volumes: – ./data/mysql:/var/lib/mysql ports: – 3306:3306 application: build: . working_dir: /opt/rrp/src/rrp-database ports: – […]

使用Node.js在RPi上播放本地文件

我有一个树莓派设置了一个Node.js应用程序,当它看到从亚马逊的Dashbuttonbutton时,响应。 它原本应该是从https://github.com/initialstate/silent-doorbell无声门铃,但我想只是让它播放本地声音文件。 我认为应该很容易,但是我对编码的经验不足,使我只能尝试在互联网上find的新东西。 我可以从terminal播放下面的文件,它玩的很好: $ omxplayer example.mp3 但是,不pipe我怎么试着把它放在Node.js应用程序中,并按下Dashbutton时触发它将不起作用。 var dash_button = require('node-dash-button'), dash = dash_button('XX:XX:XX:XX:XX:XX'), //REPLACE WITH YOUR ADDRESS exec = require('child_process').exec; Omx = require('node-omxplayer'); player = Omx('~/node_modules/node-dash-button/example.mp3'); let spawn = require('child_process').spawn; dash.on('detected', function() { console.log('Button pushed!'); player.play(); }); 当我运行与我的最新如上,我得到这个: /home/pi/node_modules/node-dash-button/doorbell.js:7 let spawn = require('child_process').spawn; ^^^^^ SyntaxError: Unexpected identifier at exports.runInThisContext (vm.js:73:16) at Module._compile (module.js:443:25) […]

我如何保持subprocess在Node JS中运行和父进程通信?

我在我的树莓派上使用了一个用Node JS编写的blynk客户端,它连接并authentication了blynk服务器。 我有另一个进程,我想运行扫描BLE信号的同时保持连接到服务器和轮询button按下。 我让他们都在同一时间执行,但通信只有当我改变虚拟引脚“V0”的状态。 我是新的Node JS,也许我误解,但是,为什么一旦subprocess进行身份validation,它会停止我的父进程,并不会执行父进程的输出,除非我改变状态“V0” //Parent Process var Bleacon = require('./index'); var uuid = '3247ff7d3f0d4b2c9df61189398eb85e'; var arr = []; var ledPin = 17; var math = require('mathjs'); var child_process=require('child_process'); const child = child_process.fork("doorlock.js"); console.log("child scanning…"); Bleacon.startScanning(uuid); Beacon() function Beacon() { Bleacon.on('discover', function(bleacon) { if (bleacon.uuid == uuid) { console.log("uuid matches"); if (bleacon.proximity == 'immediate') […]