From c4cbba7998f9d633620921270e11a4089863d9a6 Mon Sep 17 00:00:00 2001
From: Annyas <annyas@astron.nl>
Date: Thu, 23 Sep 2021 12:10:06 +0200
Subject: [PATCH] L2SS-357:Corrected error in recv-sim Dockerfile and adjusted
 notebook

---
 docker-compose/recv-sim/Dockerfile    |   2 +-
 jupyter-notebooks/RECV_notebook.ipynb | 266 +++++++-------------------
 2 files changed, 67 insertions(+), 201 deletions(-)

diff --git a/docker-compose/recv-sim/Dockerfile b/docker-compose/recv-sim/Dockerfile
index 3a06138e1..bf3e34d6a 100644
--- a/docker-compose/recv-sim/Dockerfile
+++ b/docker-compose/recv-sim/Dockerfile
@@ -6,5 +6,5 @@ RUN apt-get update && apt-get install -y python3 python3-pip python3-yaml git &&
     pip3 install -r requirements.txt && \
     git clone --depth 1 --branch master https://git.astron.nl/lofar2.0/pypcc
 
-WORKDIR /recv
+WORKDIR /pypcc
 CMD ["python3","pypcc2.py","--simulator"]
diff --git a/jupyter-notebooks/RECV_notebook.ipynb b/jupyter-notebooks/RECV_notebook.ipynb
index 49114ce9d..0f246c2bd 100644
--- a/jupyter-notebooks/RECV_notebook.ipynb
+++ b/jupyter-notebooks/RECV_notebook.ipynb
@@ -17,29 +17,22 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "d=DeviceProxy(\"LTS/SDP/1\")"
+    "d=DeviceProxy(\"LTS/RECV/1\")"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 4,
    "id": "ranking-aluminum",
    "metadata": {
     "scrolled": false
    },
    "outputs": [
     {
-     "ename": "ConnectionFailed",
-     "evalue": "DevFailed[\nDevError[\n    desc = TRANSIENT CORBA system exception: TRANSIENT_NoUsableProfile\n  origin = Connection::connect\n  reason = API_CorbaException\nseverity = ERR]\n\nDevError[\n    desc = Failed to connect to device lts/sdp/1\n  origin = Connection::connect\n  reason = API_CantConnectToDevice\nseverity = ERR]\n]",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mConnectionFailed\u001b[0m                          Traceback (most recent call last)",
-      "\u001b[0;32m/tmp/ipykernel_21/3603531217.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mstate\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mstate\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"OFF\"\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mstate\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"FAULT\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m     \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitialise\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/tango/green.py\u001b[0m in \u001b[0;36mgreener\u001b[0;34m(obj, *args, **kwargs)\u001b[0m\n\u001b[1;32m    193\u001b[0m             \u001b[0mgreen_mode\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0maccess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'green_mode'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    194\u001b[0m             \u001b[0mexecutor\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_object_executor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgreen_mode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 195\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mexecutor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwait\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    196\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    197\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mgreener\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/tango/green.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fn, args, kwargs, wait, timeout)\u001b[0m\n\u001b[1;32m    107\u001b[0m         \u001b[0;31m# Sychronous (no delegation)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    108\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masynchronous\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0min_executor_context\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 109\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    110\u001b[0m         \u001b[0;31m# Asynchronous delegation\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    111\u001b[0m         \u001b[0maccessor\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdelegate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/tango/device_proxy.py\u001b[0m in \u001b[0;36m__DeviceProxy__state\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1558\u001b[0m                 \u001b[0;32mif\u001b[0m \u001b[0mdev_st\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mDevState\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mON\u001b[0m \u001b[0;34m:\u001b[0m \u001b[0;34m...\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1559\u001b[0m     \"\"\"\n\u001b[0;32m-> 1560\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_state\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1561\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1562\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;31mConnectionFailed\u001b[0m: DevFailed[\nDevError[\n    desc = TRANSIENT CORBA system exception: TRANSIENT_NoUsableProfile\n  origin = Connection::connect\n  reason = API_CorbaException\nseverity = ERR]\n\nDevError[\n    desc = Failed to connect to device lts/sdp/1\n  origin = Connection::connect\n  reason = API_CantConnectToDevice\nseverity = ERR]\n]"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Device is now in on state\n"
      ]
     }
    ],
@@ -106,201 +99,74 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 5,
    "id": "7accae6a",
    "metadata": {},
-   "outputs": [],
-   "source": [
-    "attr_names = d.get_attribute_list()\n",
-    "\n",
-    "\n",
-    "for i in attr_names:\n",
-    "    exec(\"value = print(i, d.{})\".format(i))\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 19,
-   "id": "b88868c5",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "array([[1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],\n",
-       "       [1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],\n",
-       "       [1., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
-       "       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
-       "       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
-       "       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
-       "       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
-       "       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
-       "       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
-       "       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
-       "       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
-       "       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]],\n",
-       "      dtype=float32)"
-      ]
-     },
-     "execution_count": 19,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "wgswitches = d.FPGA_wg_enable_R\n",
-    "print(\"Old values:\\n\",  wgswitches)\n",
-    "wgswitches[9][0] = True\n",
-    "wgswitches[10][0] = True\n",
-    "print(\"Values to be set:\\n\", wgswitches)\n",
-    "d.FPGA_wg_enable_RW =wgswitches\n",
-    "time.sleep(7)\n",
-    "print(\"Values read back after setting:\\n\",d.FPGA_wg_enable_R)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 18,
-   "id": "8f3db8c7",
-   "metadata": {},
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "array([[119.99817, 119.99817, 119.99817, 119.99817, 119.99817, 119.99817,\n",
-       "        119.99817, 119.99817, 119.99817, 119.99817, 119.99817, 119.99817,\n",
-       "        119.99817, 119.99817, 119.99817, 119.99817],\n",
-       "       [119.99817, 119.99817, 119.99817, 119.99817, 119.99817, 119.99817,\n",
-       "        119.99817, 119.99817, 119.99817, 119.99817, 119.99817, 119.99817,\n",
-       "        119.99817, 119.99817, 119.99817, 119.99817],\n",
-       "       [119.99817, 119.99817, 119.99817, 119.99817,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ],\n",
-       "       [  0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ],\n",
-       "       [  0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ],\n",
-       "       [  0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ],\n",
-       "       [  0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ],\n",
-       "       [  0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ],\n",
-       "       [  0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ],\n",
-       "       [  0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ],\n",
-       "       [  0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ],\n",
-       "       [  0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ,   0.     ,   0.     ,\n",
-       "          0.     ,   0.     ,   0.     ,   0.     ]], dtype=float32)"
-      ]
-     },
-     "execution_count": 18,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "phases = d.FPGA_wg_phase_R\n",
-    "print(\"Old values:\\n\",  phases)\n",
-    "phases[9][0] = 1.0334\n",
-    "phases[9][1] = 20.15\n",
-    "phases[10][0] = 130\n",
-    "print(\"Values to be set:\\n\", phases)\n",
-    "d.FPGA_wg_phase_RW = phases\n",
-    "time.sleep(7)\n",
-    "print(\"Values read back after setting:\\n\", d.FPGA_wg_phase_R)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "id": "e45b4874",
-   "metadata": {},
-   "outputs": [
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "version_R *L2SS-357-Rename_PCC_to_RECV [c4d52d7125ece480acb1492a5fc0ba7fc60f9ea1]\n",
+      "Ant_mask_RW [[False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]\n",
+      " [False False False]]\n"
+     ]
+    },
     {
-     "data": {
-      "text/plain": [
-       "array([[29921878., 29921878., 29921878., 29921878., 29921878., 29921878.,\n",
-       "        29921878., 29921878., 29921878., 29921878., 29921878., 29921878.,\n",
-       "        29921878., 29921878., 29921878., 29921878.],\n",
-       "       [29921878., 29921878., 29921878., 29921878., 29921878., 29921878.,\n",
-       "        29921878., 29921878., 29921878., 29921878., 29921878., 29921878.,\n",
-       "        29921878., 29921878., 29921878., 29921878.],\n",
-       "       [29921878., 29921878., 29921878., 29921878.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.],\n",
-       "       [       0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.],\n",
-       "       [       0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.],\n",
-       "       [       0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.],\n",
-       "       [       0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.],\n",
-       "       [       0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.],\n",
-       "       [       0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.],\n",
-       "       [       0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.],\n",
-       "       [       0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.],\n",
-       "       [       0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.,        0.,        0.,\n",
-       "               0.,        0.,        0.,        0.]], dtype=float32)"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
+     "ename": "DevFailed",
+     "evalue": "DevFailed[\nDevError[\n    desc = Read value for attribute CLK_Enable_PWR_R has not been updated\n  origin = Device_3Impl::read_attributes_no_except\n  reason = API_AttrValueNotSet\nseverity = ERR]\n\nDevError[\n    desc = Failed to read_attribute on device lts/recv/1, attribute CLK_Enable_PWR_R\n  origin = DeviceProxy::read_attribute()\n  reason = API_AttributeFailed\nseverity = ERR]\n]",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mDevFailed\u001b[0m                                 Traceback (most recent call last)",
+      "\u001b[0;32m/tmp/ipykernel_26/3093379163.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mattr_names\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m     \u001b[0mexec\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"value = print(i, d.{})\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+      "\u001b[0;32m<string>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n",
+      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/tango/device_proxy.py\u001b[0m in \u001b[0;36m__DeviceProxy__getattr\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m    319\u001b[0m     \u001b[0mattr_info\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__get_attr_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname_l\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    320\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mattr_info\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 321\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0m__get_attribute_value\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattr_info\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    322\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    323\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mname_l\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__get_pipe_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/tango/device_proxy.py\u001b[0m in \u001b[0;36m__get_attribute_value\u001b[0;34m(self, attr_info, name)\u001b[0m\n\u001b[1;32m    281\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__get_attribute_value\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattr_info\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    282\u001b[0m     \u001b[0m_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menum_class\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mattr_info\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 283\u001b[0;31m     \u001b[0mattr_value\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_attribute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    284\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0menum_class\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    285\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0menum_class\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mattr_value\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/tango/green.py\u001b[0m in \u001b[0;36mgreener\u001b[0;34m(obj, *args, **kwargs)\u001b[0m\n\u001b[1;32m    193\u001b[0m             \u001b[0mgreen_mode\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0maccess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'green_mode'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    194\u001b[0m             \u001b[0mexecutor\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_object_executor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgreen_mode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 195\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mexecutor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwait\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    196\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    197\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mgreener\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/tango/green.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fn, args, kwargs, wait, timeout)\u001b[0m\n\u001b[1;32m    107\u001b[0m         \u001b[0;31m# Sychronous (no delegation)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    108\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masynchronous\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0min_executor_context\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 109\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    110\u001b[0m         \u001b[0;31m# Asynchronous delegation\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    111\u001b[0m         \u001b[0maccessor\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdelegate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/tango/device_proxy.py\u001b[0m in \u001b[0;36m__DeviceProxy__read_attribute\u001b[0;34m(self, value, extract_as)\u001b[0m\n\u001b[1;32m    439\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    440\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__DeviceProxy__read_attribute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextract_as\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mExtractAs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mNumpy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 441\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0m__check_read_attribute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_read_attribute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextract_as\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    442\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    443\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/tango/device_proxy.py\u001b[0m in \u001b[0;36m__check_read_attribute\u001b[0;34m(dev_attr)\u001b[0m\n\u001b[1;32m    155\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__check_read_attribute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdev_attr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    156\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mdev_attr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhas_failed\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 157\u001b[0;31m         \u001b[0;32mraise\u001b[0m \u001b[0mDevFailed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mdev_attr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_err_stack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    158\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mdev_attr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    159\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;31mDevFailed\u001b[0m: DevFailed[\nDevError[\n    desc = Read value for attribute CLK_Enable_PWR_R has not been updated\n  origin = Device_3Impl::read_attributes_no_except\n  reason = API_AttrValueNotSet\nseverity = ERR]\n\nDevError[\n    desc = Failed to read_attribute on device lts/recv/1, attribute CLK_Enable_PWR_R\n  origin = DeviceProxy::read_attribute()\n  reason = API_AttributeFailed\nseverity = ERR]\n]"
+     ]
     }
    ],
    "source": [
-    "amplitudes = d.FPGA_wg_amplitude_R\n",
-    "print(\"Old values:\\n\",  amplitudes)\n",
-    "amplitudes[9][0] = 1.0\n",
-    "amplitudes[9][1] = 1.99\n",
-    "amplitudes[10][0] = 0.5\n",
-    "print(\"Values to be set:\\n\", amplitudes)\n",
-    "d.FPGA_wg_amplitude_RW = amplitudes\n",
-    "time.sleep(7)\n",
-    "print(\"Values read back after setting:\\n\", d.FPGA_wg_amplitude_R)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "9b1bbd3e",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "frequencies = d.FPGA_wg_frequency_R\n",
-    "print(\"Old values:\\n\",  frequencies)\n",
-    "frequencies[9][0] = 19000000\n",
-    "frequencies[9][1] = 20000000\n",
-    "frequencies[10][0] = 22000000\n",
-    "print(\"Values to be set:\\n\", frequencies)\n",
-    "d.FPGA_wg_frequency_RW = frequencies\n",
-    "print(\"Values read back after setting:\\n\", d.FPGA_wg_frequency_R)"
+    "attr_names = d.get_attribute_list()\n",
+    "\n",
+    "\n",
+    "for i in attr_names:\n",
+    "    exec(\"value = print(i, d.{})\".format(i))\n"
    ]
   }
  ],
-- 
GitLab