{"action":"closed","issue":{"url":"https://api.github.com/repos/QCoDeS/Qcodes/issues/1342","repository_url":"https://api.github.com/repos/QCoDeS/Qcodes","labels_url":"https://api.github.com/repos/QCoDeS/Qcodes/issues/1342/labels{/name}","comments_url":"https://api.github.com/repos/QCoDeS/Qcodes/issues/1342/comments","events_url":"https://api.github.com/repos/QCoDeS/Qcodes/issues/1342/events","html_url":"https://github.com/QCoDeS/Qcodes/issues/1342","id":374063730,"node_id":"MDU6SXNzdWUzNzQwNjM3MzA=","number":1342,"title":"Make it possible to dynamically create/discover/delete sub-modules on instruments","user":{"login":"sohailc","id":10454668,"node_id":"MDQ6VXNlcjEwNDU0NjY4","avatar_url":"https://avatars2.githubusercontent.com/u/10454668?v=4","gravatar_id":"","url":"https://api.github.com/users/sohailc","html_url":"https://github.com/sohailc","followers_url":"https://api.github.com/users/sohailc/followers","following_url":"https://api.github.com/users/sohailc/following{/other_user}","gists_url":"https://api.github.com/users/sohailc/gists{/gist_id}","starred_url":"https://api.github.com/users/sohailc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sohailc/subscriptions","organizations_url":"https://api.github.com/users/sohailc/orgs","repos_url":"https://api.github.com/users/sohailc/repos","events_url":"https://api.github.com/users/sohailc/events{/privacy}","received_events_url":"https://api.github.com/users/sohailc/received_events","type":"User","site_admin":false},"labels":[{"id":222346531,"node_id":"MDU6TGFiZWwyMjIzNDY1MzE=","url":"https://api.github.com/repos/QCoDeS/Qcodes/labels/enhancement","name":"enhancement","color":"fbca04","default":true}],"state":"closed","locked":false,"assignee":{"login":"sohailc","id":10454668,"node_id":"MDQ6VXNlcjEwNDU0NjY4","avatar_url":"https://avatars2.githubusercontent.com/u/10454668?v=4","gravatar_id":"","url":"https://api.github.com/users/sohailc","html_url":"https://github.com/sohailc","followers_url":"https://api.github.com/users/sohailc/followers","following_url":"https://api.github.com/users/sohailc/following{/other_user}","gists_url":"https://api.github.com/users/sohailc/gists{/gist_id}","starred_url":"https://api.github.com/users/sohailc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sohailc/subscriptions","organizations_url":"https://api.github.com/users/sohailc/orgs","repos_url":"https://api.github.com/users/sohailc/repos","events_url":"https://api.github.com/users/sohailc/events{/privacy}","received_events_url":"https://api.github.com/users/sohailc/received_events","type":"User","site_admin":false},"assignees":[{"login":"sohailc","id":10454668,"node_id":"MDQ6VXNlcjEwNDU0NjY4","avatar_url":"https://avatars2.githubusercontent.com/u/10454668?v=4","gravatar_id":"","url":"https://api.github.com/users/sohailc","html_url":"https://github.com/sohailc","followers_url":"https://api.github.com/users/sohailc/followers","following_url":"https://api.github.com/users/sohailc/following{/other_user}","gists_url":"https://api.github.com/users/sohailc/gists{/gist_id}","starred_url":"https://api.github.com/users/sohailc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sohailc/subscriptions","organizations_url":"https://api.github.com/users/sohailc/orgs","repos_url":"https://api.github.com/users/sohailc/repos","events_url":"https://api.github.com/users/sohailc/events{/privacy}","received_events_url":"https://api.github.com/users/sohailc/received_events","type":"User","site_admin":false}],"milestone":null,"comments":6,"created_at":"2018-10-25T17:59:50Z","updated_at":"2018-11-12T18:07:19Z","closed_at":"2018-11-12T18:07:19Z","author_association":"CONTRIBUTOR","body":"The QCoDeS design allowes drivers to have sub-modules. Often times these are instrument channels and are fixed in number. But sub-modules need not be tied to physical instrument channels. In fact we sometimes encounter instruments with the ability to dynamically create and delete sub-modules. An example of this are measurement traces and windows on the Keysight N52xx precision network analyzers (PNA). Another instrument which can benifit from dynamic sub-moduling is the Keysight M8020 digital pattern generator, whereby each pattern can be defined in its own sub-module. \r\n\r\nWe therefore propose the following enhancement to the InstrumentChannel class in QCoDeS: \r\n\r\n1. Change the name to (something similar to) InstrumentSubmodule\r\n2. Develop a way to create/discover/delete submodules dynamically. And implementation to accomplish this for the Keysight precision network analyzers is shown [here](https://github.com/sohailc/Qcodes/blob/doc/PNA_N5222B_example/qcodes/instrument_drivers/Keysight/N52xx/_N52xx_channel_ext.py). \r\n\r\nAdditionally, we propose to enhance the ChannelList class by adding an `add` method which will create a new sub-module of the same type. An example of this is likewise shown in the above link. The example file for the N52xx PNA in my branch is also a good resource to understand [this](https://github.com/sohailc/Qcodes/blob/doc/PNA_N5222B_example/docs/examples/driver_examples/Qcodes_example_with_Keysight_Network_Analyzer.ipynb)  \r\n\r\nSince a similar design will benefit other instruments as well, I propose to make dynamic sub-moduling available generally "}}
{"actor":{"display_login":"sohailc"}}