Skip to content

Commit 658cea6

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 52feea9 commit 658cea6

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
@@ -1093,6 +1093,32 @@ def _node(node_map, name: str):
10931093
except Exception:
10941094
return None
10951095

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

0 commit comments

Comments
 (0)