{"action":"created","issue":{"url":"https://api.github.com/repos/NSLS-II/bluesky/issues/164","labels_url":"https://api.github.com/repos/NSLS-II/bluesky/issues/164/labels{/name}","comments_url":"https://api.github.com/repos/NSLS-II/bluesky/issues/164/comments","events_url":"https://api.github.com/repos/NSLS-II/bluesky/issues/164/events","html_url":"https://github.com/NSLS-II/bluesky/pull/164","id":101514834,"number":164,"title":"ENH: Support a Shutter interface with open and close.","user":{"login":"danielballan","id":2279598,"avatar_url":"https://avatars.githubusercontent.com/u/2279598?v=3","gravatar_id":"","url":"https://api.github.com/users/danielballan","html_url":"https://github.com/danielballan","followers_url":"https://api.github.com/users/danielballan/followers","following_url":"https://api.github.com/users/danielballan/following{/other_user}","gists_url":"https://api.github.com/users/danielballan/gists{/gist_id}","starred_url":"https://api.github.com/users/danielballan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danielballan/subscriptions","organizations_url":"https://api.github.com/users/danielballan/orgs","repos_url":"https://api.github.com/users/danielballan/repos","events_url":"https://api.github.com/users/danielballan/events{/privacy}","received_events_url":"https://api.github.com/users/danielballan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-08-17T21:33:58Z","updated_at":"2015-09-12T15:15:21Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/NSLS-II/bluesky/pulls/164","html_url":"https://github.com/NSLS-II/bluesky/pull/164","diff_url":"https://github.com/NSLS-II/bluesky/pull/164.diff","patch_url":"https://github.com/NSLS-II/bluesky/pull/164.patch"},"body":"Sending booleans to shutter PVs is confusing. (\"Is 0 open or close?\") Methods called `open` and `close` are not. The Shutter interface is expected to support `read()`, `describe()`, `open()`, `close()`. All of these methods take no arguments.\r\n\r\nIt might be useful to implement the properties `is_open` and `is_closed`. Those need not be known to the RunEngine, so they are not addressed in this PR."},"comment":{"url":"https://api.github.com/repos/NSLS-II/bluesky/issues/comments/139783421","html_url":"https://github.com/NSLS-II/bluesky/pull/164#issuecomment-139783421","issue_url":"https://api.github.com/repos/NSLS-II/bluesky/issues/164","id":139783421,"user":{"login":"danielballan","id":2279598,"avatar_url":"https://avatars.githubusercontent.com/u/2279598?v=3","gravatar_id":"","url":"https://api.github.com/users/danielballan","html_url":"https://github.com/danielballan","followers_url":"https://api.github.com/users/danielballan/followers","following_url":"https://api.github.com/users/danielballan/following{/other_user}","gists_url":"https://api.github.com/users/danielballan/gists{/gist_id}","starred_url":"https://api.github.com/users/danielballan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danielballan/subscriptions","organizations_url":"https://api.github.com/users/danielballan/orgs","repos_url":"https://api.github.com/users/danielballan/repos","events_url":"https://api.github.com/users/danielballan/events{/privacy}","received_events_url":"https://api.github.com/users/danielballan/received_events","type":"User","site_admin":false},"created_at":"2015-09-12T15:15:21Z","updated_at":"2015-09-12T15:15:21Z","body":"The other downside of special interfaces is that scan logic is not so easily transferrable between different experiments, especially the cycler-based stuff. I think there are other ways we could make interfaces verifiable, like adding validation methods.\r\n\r\n```\r\nshutter.validate({'shutter': 'open'})\r\n```"}}