Узел Gphoto2 ### В io-библиотеке произошла ошибка («Не удалось получить доступ к USB-устройству») - PullRequest
0 голосов
/ 24 января 2019

Я работаю над подключением между RaspberryPi 3 и DSLR камерой (Canon 1300 D). Когда я запускаю команду для захвата изображения, первый раз работает, и когда я снова запускаю, у меня возникает следующая проблема:

Произошла ошибка в io-библиотеке («Не удалось получить доступ к USB-устройству»): не удалось запросить интерфейс 0 (устройство или ресурс занят). Убедитесь, что никакая другая программа (gvfs-gphoto2-volume-monitor) или модуль ядра (например, sdc2xx, stv680, spca50x) не используют устройство, и у вас есть доступ для чтения / записи к устройству.

Пожалуйста, дайте мне решение для "Как связать Raspberry Pi 3 с DSLR, используя NodeJs?"

Пример кода:

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 });
  });
  });
});

}); * * 1 010

Заранее спасибо.

Йогеш Вагмаре

1 Ответ

0 голосов
/ 11 февраля 2019

Нам нужно установить 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 (); » после завершения процесса. и запустить с помощью навсегда команда

теперь код работает правильно.

Спасибо и С уважением, Йогеш Вагмаре

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...