From c13d238133e21d80bd2ee94a252de1f8d1915607 Mon Sep 17 00:00:00 2001 From: eendebakpt Date: Wed, 18 May 2016 15:12:40 +0200 Subject: [PATCH 1/3] add get_attribute function to MockModel --- docs/examples/Qcodes example.ipynb | 2 +- qcodes/instrument/mock.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/examples/Qcodes example.ipynb b/docs/examples/Qcodes example.ipynb index 0eb4a6bf1347..56c95dced1bc 100644 --- a/docs/examples/Qcodes example.ipynb +++ b/docs/examples/Qcodes example.ipynb @@ -693,7 +693,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.4.3" } }, "nbformat": 4, diff --git a/qcodes/instrument/mock.py b/qcodes/instrument/mock.py index 0d8699df8063..26c6b441c0f6 100644 --- a/qcodes/instrument/mock.py +++ b/qcodes/instrument/mock.py @@ -135,6 +135,10 @@ def __init__(self, name='Model-{:.7s}'): # this will primarily be called via the attached instruments. super().__init__(name, server_class=None) + def get_attribute(self, name): + ''' Get an attribute from the model (server side) ''' + return self.ask('_magicget:%s' % (name, )) + def _run_server(self): while True: try: @@ -145,6 +149,12 @@ def _run_server(self): instrument = query[0] + if instrument == '_magicget': + name = query[1] + value = getattr(self, name) + self._response_queue.put(value) + continue + if instrument == 'halt': self._response_queue.put(True) break From fa33e520285a292bd03dc533f90364a68a1d35f3 Mon Sep 17 00:00:00 2001 From: eendebakpt Date: Wed, 18 May 2016 16:38:35 +0200 Subject: [PATCH 2/3] dummy --- docs/examples/Qcodes example.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples/Qcodes example.ipynb b/docs/examples/Qcodes example.ipynb index 56c95dced1bc..0eb4a6bf1347 100644 --- a/docs/examples/Qcodes example.ipynb +++ b/docs/examples/Qcodes example.ipynb @@ -693,7 +693,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.3" + "version": "3.5.1" } }, "nbformat": 4, From 2b6b6ad475bc6378071170b18b1c67ad700a5fb7 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Mon, 23 May 2016 17:27:47 +0200 Subject: [PATCH 3/3] added call functionality to mock model --- qcodes/instrument/mock.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/qcodes/instrument/mock.py b/qcodes/instrument/mock.py index 26c6b441c0f6..6832de832dbe 100644 --- a/qcodes/instrument/mock.py +++ b/qcodes/instrument/mock.py @@ -138,6 +138,10 @@ def __init__(self, name='Model-{:.7s}'): def get_attribute(self, name): ''' Get an attribute from the model (server side) ''' return self.ask('_magicget:%s' % (name, )) + + def call_function(self, name, *args): + ''' Call a function from the model (server side) ''' + return self.ask('_magiccall:%s' % (name, ), *args) def _run_server(self): while True: @@ -145,6 +149,7 @@ def _run_server(self): # make sure no matter what there is a query for error handling query = None query = self._query_queue.get() + query_args = query[1:] query = query[0].split(':') instrument = query[0] @@ -154,6 +159,11 @@ def _run_server(self): value = getattr(self, name) self._response_queue.put(value) continue + if instrument == '_magiccall': + name = query[1] + func = getattr(self, name) + self._response_queue.put( func(*query_args) ) + continue if instrument == 'halt': self._response_queue.put(True)