首页 > 解决方案 > Gphoto2 节点 ### io-library 发生错误('Could not claim the USB device')

问题描述

我正在研究 RaspberryPi 3 和 DSLR 相机(佳能 1300 D)之间的连接。当我运行捕获图像的命令时,第一次工作,当我再次运行时,我遇到以下问题:

io-library 中发生错误(“无法声明 USB 设备”):无法声明接口 0(设备或资源忙)。确保没有其他程序(gvfs-gphoto2-volume-monitor)或内核模块(例如 sdc2xx、stv680、spca50x)正在使用该设备,并且您具有对该设备的读/写访问权限。

请给我解决方案“如何使用 NodeJs 将 Raspberry Pi 3 与 DSLR 通信?”

代码示例:

app.post('/onDemand', function(req, res) {
  GPhoto.list(function (list) {
  console.log('List:', list);
  if (list.length === 0) return;
  var camera = list[0];
  camera.takePicture({download: true,keep: true}, function (er, data) {
    fs.writeFileSync(__dirname + '/input/picture1.jpg', data);
    var filePath = "./input/picture1.jpg";
    var params = {
      Bucket: 'marzs',
      Body : fs.createReadStream(filePath),
      Key : "marzs/"+Date.now()+"_"+path.basename(filePath)
    };

    s3.putObject(params, function (err, data) {
      if (err) {
          console.log('ERROR MSG: ', err);
          res.status(500).send(err);
      } else {
          console.log('Successfully uploaded data');
          res.status(200).send({ imageURL: data.Location });
      }
      res.status(200).send({ imageURL: data.Location });
  });
  });
});

});

提前致谢。

约格什·瓦格马尔

标签: node.jsraspberry-pi3

解决方案


我们需要在服务器上安装 libusb 并运行以下命令。

gphoto2 --get-config=capturetarget
gphoto2 --set-config=capturetarget=1
gphoto2 --set-config shutterspeed=bulb
gphoto2 --wait-event=2s --set-config eosremoterelease=Immediate --wait-event=5s --set-config eosremoterelease=Off --wait-event-and-download=5s

之后,我们需要在流程完成后使用“ process.exit(); ”退出流程。并通过永远命令运行

现在代码运行正常。

谢谢和问候, Yogesh Waghmare


推荐阅读