DSLR : empecher la mise en veille (autopoweroff Canon + udev no-autosuspend)
Le boitier se mettait en veille apres quelques minutes d'inactivite et apparaissait deconnecte. Deux causes possibles traitees : - autopoweroff Canon desactive a la connexion (cote firmware) - USB autosuspend du host desactive pour les peripheriques Canon (cote noyau)
This commit is contained in:
@@ -82,6 +82,8 @@ class Camera:
|
||||
try:
|
||||
self.camera = gp.Camera()
|
||||
self.camera.init()
|
||||
# Desactiver la mise en veille auto du DSLR (sinon il se deconnecte tout seul)
|
||||
self._desactiver_veille_init()
|
||||
# Viewfinder activé AVANT de rendre la caméra visible au thread preview
|
||||
self._activer_viewfinder_init()
|
||||
self.connectee = True
|
||||
@@ -239,6 +241,25 @@ class Camera:
|
||||
except Exception as e:
|
||||
log.debug(f"configurer_flash : {e}")
|
||||
|
||||
def _desactiver_veille_init(self):
|
||||
"""Desactive la mise en veille auto du boitier (Canon : autopoweroff en minutes, 0=jamais).
|
||||
Sans ca, le DSLR s'eteint seul apres quelques minutes d'inactivite et apparait deconnecte."""
|
||||
candidats = ["autopoweroff", "auto_power_off", "/main/settings/autopoweroff"]
|
||||
try:
|
||||
cfg = self.camera.get_config()
|
||||
for nom in candidats:
|
||||
try:
|
||||
widget = cfg.get_child_by_name(nom)
|
||||
widget.set_value(0)
|
||||
self.camera.set_config(cfg)
|
||||
log.info(f"Mise en veille DSLR désactivée ({nom})")
|
||||
return
|
||||
except Exception:
|
||||
continue
|
||||
log.debug("Widget autopoweroff non trouvé sur ce modèle")
|
||||
except Exception as e:
|
||||
log.debug(f"_desactiver_veille_init : {e}")
|
||||
|
||||
def _activer_viewfinder_init(self):
|
||||
"""Active le LiveView pendant l'init (pas de lock, appelé avant que le thread démarre)."""
|
||||
try:
|
||||
|
||||
1
scripts/99-canon-no-autosuspend.rules
Normal file
1
scripts/99-canon-no-autosuspend.rules
Normal file
@@ -0,0 +1 @@
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="04a9", TEST=="power/control", ATTR{power/control}="on"
|
||||
@@ -19,6 +19,10 @@ sudo apt install -y \
|
||||
xinput \
|
||||
xdotool
|
||||
|
||||
# Empecher le DSLR Canon de se mettre en veille USB (sinon il se deconnecte seul)
|
||||
sudo cp "$(dirname "$0")/99-canon-no-autosuspend.rules" /etc/udev/rules.d/
|
||||
sudo udevadm control --reload-rules
|
||||
|
||||
# Repertoire du projet
|
||||
APP_DIR="/home/jules/photobooth"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user