Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Protocol Engine milestone: Create and execute basic protocol sessions #7808

Closed
6 tasks
SyntaxColoring opened this issue May 13, 2021 · 2 comments
Closed
6 tasks
Assignees
Labels
protocol-engine Ticket related to the Protocol Engine project and associated HTTP APIs robot-svcs Falls under the purview of the Robot Services squad (formerly CPX, Core Platform Experience).
Milestone

Comments

@SyntaxColoring
Copy link
Contributor

SyntaxColoring commented May 13, 2021

Overview

From our Protocol Engine experience milestones:

As a user, I would like to start a session with a basic protocol and run that protocol.

Background

As specified in another ticket, an endpoint like POST /protocol_upload (not necessarily that exact name) will let you upload a protocol file, and will give you back some kind of handle to that protocol.

Acceptance criteria for this ticket

  • You can create a protocol session on the robot by hitting an HTTP endpoint.
    • Creating a protocol session requires a handle to a protocol, from POST /protocol_upload (or whatever).
  • Creating a protocol session otherwise has no runtime effect. It doesn't make the robot move.
    • Unclear: should the robot's calibration state be captured at this session creation, or should only when we actually run the protocol?
  • A separate action on the protocol session resource (e.g. POST /session/foo/start) makes the robot start moving.
  • A protocol can be started exactly once. Starting the protocol after it has already been started is an error.
    • This includes if the protocol has run to completion. You can't restart a protocol session that's finished; protocol sessions are one-shot.

Out of scope for this ticket

  • Python protocols.
  • Inspecting current protocol state (the run log).
  • Inspecting protocol requirements (pipettes and labware).
  • Pausing, canceling, resuming.
  • Protocol features deemed "advanced" for our purposes, like 8-Channel pipettes, modules, and custom labware. (Unless any of these happen to be easy.)
  • Letting an HTTP client manage protocol sessions other than creating them (listing, deleting, and updating) (unless it happens to be easy).
@SyntaxColoring SyntaxColoring added the robot-svcs Falls under the purview of the Robot Services squad (formerly CPX, Core Platform Experience). label May 13, 2021
@mattwelch mattwelch added this to the CPX Sprint 33 milestone May 18, 2021
@amitlissack
Copy link
Contributor

Important to keep in mind that this functionality already exists in the robot-server.

@SyntaxColoring SyntaxColoring self-assigned this May 18, 2021
@SyntaxColoring SyntaxColoring changed the title Protocol Engine: Basic protocol session creation and execution Protocol Engine milestone: Create and execute basic protocol sessions May 27, 2021
@mattwelch mattwelch modified the milestones: CPX Sprint 33, CPX Sprint 34 Jun 2, 2021
@SyntaxColoring SyntaxColoring added the protocol-engine Ticket related to the Protocol Engine project and associated HTTP APIs label Jun 15, 2021
@mcous
Copy link
Contributor

mcous commented Jun 16, 2021

Closing in favor of #7946, which is the last known item of work in this flow

@mcous mcous closed this as completed Jun 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
protocol-engine Ticket related to the Protocol Engine project and associated HTTP APIs robot-svcs Falls under the purview of the Robot Services squad (formerly CPX, Core Platform Experience).
Projects
None yet
Development

No branches or pull requests

4 participants