From 9631a7d4676ba4161e5388d192c2c2fec8674db1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Thu, 15 Feb 2024 09:23:14 +0100 Subject: [PATCH] adds device connection image --- README.md | 2 ++ docs/images/DeviceConnection_component.png | Bin 0 -> 25870 bytes 2 files changed, 2 insertions(+) create mode 100644 docs/images/DeviceConnection_component.png diff --git a/README.md b/README.md index 90e41fa..b650ae0 100644 --- a/README.md +++ b/README.md @@ -256,6 +256,8 @@ The `DeviceConnection` component acts as a base class within the `pydase` framew In the frontend, this class abstracts away the direct interaction with the `connect` method and the `connected` property. Instead, it showcases user-defined attributes, methods, and properties. When the `connected` status is `False`, the frontend displays an overlay that prompts manual reconnection through the `connect()` method. Successful reconnection removes the overlay. +![DeviceConnection Component](docs/images/DeviceConnection_component.png) + ##### Customizing Connection Logic Users are encouraged to primarily override the `connect` method to tailor the connection process to their specific device. This method should adjust the `self._connected` attribute based on the outcome of the connection attempt: diff --git a/docs/images/DeviceConnection_component.png b/docs/images/DeviceConnection_component.png new file mode 100644 index 0000000000000000000000000000000000000000..04c5bcd6238941cc6ba2290956c94f54db1f8322 GIT binary patch literal 25870 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 e^^{ic(IYnJA~XNedUBD`p><#HUWM9|=l=tKVV%