Node.js 将Raspistill图像nofiles保存在循环中(nodejs)

Node.js 将Raspistill图像nofiles保存在循环中(nodejs),node.js,raspberry-pi,raspistill,Node.js,Raspberry Pi,Raspistill,我正在制作一个有趣的开源示例,用于使用Raspberry Pi作为硬件进行Edge Compute计算机视觉 我必须访问硬件的当前SDK是基于nodejs的(当python可用时,我将发布第二个SDK)。警告:我是节点新手 我面临的问题是,我想在不保存文件的情况下,使用普通照相机循环拍照。我只想访问缓冲区,提取像素,传递到我的第二个边缘模块 在while(true)循环中拍摄没有文件保存的照片似乎永远不会执行 这是我的样本: 'use strict'; var sleep = require(

我正在制作一个有趣的开源示例,用于使用Raspberry Pi作为硬件进行Edge Compute计算机视觉

我必须访问硬件的当前SDK是基于nodejs的(当python可用时,我将发布第二个SDK)。警告:我是节点新手

我面临的问题是,我想在不保存文件的情况下,使用普通照相机循环拍照。我只想访问缓冲区,提取像素,传递到我的第二个边缘模块

在while(true)循环中拍摄没有文件保存的照片似乎永远不会执行

这是我的样本:

'use strict';

var sleep = require('sleep');
const Raspistill = require('node-raspistill').Raspistill;
var pixel_getter = require('pixel-getter');


while(true) {

const camera = new Raspistill({ verticalFlip: true,
                            horizontalFlip: true,
                            width: 500,
                            height: 500,
                            encoding: 'jpg',
                            noFileSave: true,
                            time: 1 });

camera.takePhoto().then((photo) => {
    console.log('got photo');
    pixel_getter.get(photo,
               function(err, pixels) {
                    console.log('got pixels');
                    console.log(String(pixels));
                    });
    });
sleep.sleep(5);
}
console.log('picture taken');
在上面的代码中,console.log函数实际上都没有日志;这让我相信照片永远不会被拍摄,因此像素无法被提取

如蒙协助,将不胜感激


更新:
看起来循环机械师可能很有趣。我想我真的不在乎它是否在循环中拍照,只要它拍了一张照片,我就把它传递出去,我拍了一张照片,然后不确定地传递出去。

我决定用一个递归循环来解决这个问题,而这个循环非常有效

'use strict';

const sleep = require('sleep');
const Raspistill = require('node-raspistill').Raspistill;
const pixel_getter = require('pixel-getter')

const camera = new Raspistill({ verticalFlip: true,
                            horizontalFlip: true,
                            width: 500,
                            height: 500,
                            encoding: 'jpg',
                            noFileSave: true,
                            time: 5 });

function TakePictureLoop() {
    console.log('taking picture');
    camera.takePhoto().then((photo) => {
        console.log('got photo');
        pixel_getter.get(photo, function(err, pixels) {
            console.log('got pixels');
            TakePictureLoop();
        });
    });
}

TakePictureLoop();

我看到这是为喜欢的人准备的。如果你真的这样做,它最终会使你的pi崩溃,这是POC代码,而不是生产代码。