Skip to content

Commit 91bd8c7

Browse files
committed
Add _node_value helper for safe node reads
Introduce a static _node_value(node_map, name, default) helper that performs a best-effort read of GenICam node values. It looks up the node, returns default if missing, then tries node.value and falls back to node.GetValue() while swallowing exceptions. This prevents debug helpers and open() from failing when test/SDK nodes expose different accessors or raise errors.
1 parent 2235399 commit 91bd8c7

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

dlclivegui/cameras/backends/gentl_backend.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,6 +1090,32 @@ def _node(node_map, name: str):
10901090
except Exception:
10911091
return None
10921092

1093+
@staticmethod
1094+
def _node_value(node_map, name: str, default=None):
1095+
"""Best-effort read of a GenICam node value.
1096+
1097+
Debug helpers must not make open() fail just because a value cannot be read.
1098+
Harvesters-style fake/test nodes usually expose `.value`; some SDK-style
1099+
nodes may expose `GetValue()`.
1100+
"""
1101+
node = GenTLCameraBackend._node(node_map, name)
1102+
if node is None:
1103+
return default
1104+
1105+
try:
1106+
return node.value
1107+
except Exception:
1108+
pass
1109+
1110+
try:
1111+
getter = getattr(node, "GetValue", None)
1112+
if getter is not None:
1113+
return getter()
1114+
except Exception:
1115+
pass
1116+
1117+
return default
1118+
10931119
@staticmethod
10941120
def _node_symbolics(node) -> list[str]:
10951121
try:

0 commit comments

Comments
 (0)