return f"ns={namespace_index};s={ost_name}{stand_name.upper()}:{address}.{suffix}"
def read_data_value_sync(
opc_url: str,
node_id: str,
timeout: float = OpcConst.CONNECT_TIMEOUT_S,
) -> ua.DataValue:
"""
Синхронное подключение и чтение DataValue тега. Используется в setup-части
(синхронный контекст pytest), чтобы понять, что OPC UA сервер жив и отдаёт данные.
"""
async def _read() -> ua.DataValue:
client = Client(url=opc_url, timeout=timeout)
try:
await client.connect()
logger.info("[OPC] Подключено к %s", opc_url)
return await client.get_node(node_id).read_data_value()
finally:
await client.disconnect()
return asyncio.run(_read())
стенд сет
check_cmd = (
f"timeout {timeout_s} bash -c 'cat < /dev/null > /dev/tcp/{host}/{port}' "
f"&& echo {Im_const.CMD_STATUS_OK} || echo {Im_const.CMD_STATUS_FAIL}"
)
конф
cfg["stand_manager"] = stand_manager
try:
stand_manager.check_opc_server_status()