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:
|
||||
|
||||
Reference in New Issue
Block a user