{"action":"created","issue":{"url":"https://api.github.com/repos/m-labs/artiq/issues/431","repository_url":"https://api.github.com/repos/m-labs/artiq","labels_url":"https://api.github.com/repos/m-labs/artiq/issues/431/labels{/name}","comments_url":"https://api.github.com/repos/m-labs/artiq/issues/431/comments","events_url":"https://api.github.com/repos/m-labs/artiq/issues/431/events","html_url":"https://github.com/m-labs/artiq/issues/431","id":153552802,"number":431,"title":"Automatic plotting/configure applets from scripts","user":{"login":"dkienzler","id":19231710,"avatar_url":"https://avatars.githubusercontent.com/u/19231710?v=3","gravatar_id":"","url":"https://api.github.com/users/dkienzler","html_url":"https://github.com/dkienzler","followers_url":"https://api.github.com/users/dkienzler/followers","following_url":"https://api.github.com/users/dkienzler/following{/other_user}","gists_url":"https://api.github.com/users/dkienzler/gists{/gist_id}","starred_url":"https://api.github.com/users/dkienzler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dkienzler/subscriptions","organizations_url":"https://api.github.com/users/dkienzler/orgs","repos_url":"https://api.github.com/users/dkienzler/repos","events_url":"https://api.github.com/users/dkienzler/events{/privacy}","received_events_url":"https://api.github.com/users/dkienzler/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/m-labs/artiq/labels/state:needs-discussion","name":"state:needs-discussion","color":"006b75"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":44,"created_at":"2016-05-06T22:42:38Z","updated_at":"2016-05-26T18:08:13Z","closed_at":null,"body":"Hi,\r\n\r\nIs there a way to call applets from the script for given datasets or automaticly plot the output of a fit/scan etc.? If not, I think we need that.\r\n\r\nBest,\r\nDaniel"},"comment":{"url":"https://api.github.com/repos/m-labs/artiq/issues/comments/221949310","html_url":"https://github.com/m-labs/artiq/issues/431#issuecomment-221949310","issue_url":"https://api.github.com/repos/m-labs/artiq/issues/431","id":221949310,"user":{"login":"dhslichter","id":9222487,"avatar_url":"https://avatars.githubusercontent.com/u/9222487?v=3","gravatar_id":"","url":"https://api.github.com/users/dhslichter","html_url":"https://github.com/dhslichter","followers_url":"https://api.github.com/users/dhslichter/followers","following_url":"https://api.github.com/users/dhslichter/following{/other_user}","gists_url":"https://api.github.com/users/dhslichter/gists{/gist_id}","starred_url":"https://api.github.com/users/dhslichter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhslichter/subscriptions","organizations_url":"https://api.github.com/users/dhslichter/orgs","repos_url":"https://api.github.com/users/dhslichter/repos","events_url":"https://api.github.com/users/dhslichter/events{/privacy}","received_events_url":"https://api.github.com/users/dhslichter/received_events","type":"User","site_admin":false},"created_at":"2016-05-26T18:08:13Z","updated_at":"2016-05-26T18:08:13Z","body":"How about we make a single non-closable window at GUI startup (like the DDS or TTL windows, in a spatial configuration which is saved by ARTIQ between GUI restarts), which Joe has called the \"canvas\". The canvas is the \"home base\" for applet plots, and can contain one or more docked applets (again, in a configuration saved by ARTIQ between GUI restarts).  The applets are all named.  An experiment can send datasets for plotting to a particular applet by name.  The experiment can tell the applet the names of the datasets to be plotted (i.e. the experiment can tell a given applet to change the datasets it is plotting).  \r\n\r\nThe user can pop the applets out of the canvas to resize/zoom/etc, and these applets will maintain their undocked locations/sizes after GUI restart.  If an applet is closed and an experiment subsequently wants to send it data, it re-appears docked in the canvas window, at the end of the current dock, without changing the focus of the canvas window.  \r\n\r\nEach applet should add a radio button set with the options \"hold and drop\", \"hold and new\", and \"overwrite\".  If the first option is checked, subsequent datasets sent by the experiment to be plotted are just ignored.  If the second option is checked, subsequent datasets sent by the experiment to the applet are instead routed to a new applet which is created as docked in the canvas.  If the \"hold and new\" applet has name `appletname`, the new one will have name `appletname_copy1`, and so forth.  The decision to create a new window is governed by the \"hold and new\" status of `appletname_copyk`, where `k` is the largest number if there are multiple new applets created in this manner that exist.  When an applet of name `appletname_copyn` is closed, the applet should be stopped, not just made invisible (i.e. in current design, it should be removed from the applet list, not just have its \"enable\" box unchecked).  \r\n\r\nIn \"overwrite\", the data in the applet is overwritten when the datasets change.  If an applet is changed to \"overwrite\" from either of the \"hold\" settings, it is updated immediately with the current values of the plotted datasets.  However, any \"new\" windows of the type `appletname_copyn` are unaffected by the change of status of `appletname` or any other `appletname_copyn`.  When datasets are broadcast to applets by name (e.g. to `appletname`), they are sent to all applets with base name `appletname` (i.e. to all `appletname_copyn`).  All copies `appletname_copyn` must plot the same datasets as `appletname`.  If the name of the datasets sent to `appletname` changes, it will also change for all applets `appletname_copyn`.  The compiler should throw an error if a user attempts in the experiment file to create or update an applet whose name ends in the form `_copyn`\r\n\r\nThis scheme:\r\n- means no windows will be popping up in random places, in the way of the user's clicks\r\n- allows experiments to dictate exactly what datasets they are sending, and to which plot\r\n- gives implementation of the \"hold\" functionality, with a well-defined way for handling the case where an additional plot or plots are desired to compare with the data in a held plot or plots showing the same datasets\r\n- doesn't require extra user clicks or operations for the creation/update of applets\r\n"}}
{"actor":{"display_login":"dhslichter"}}