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: Allow starting and pausing a JSON protocol over HTTP #7921

Closed
sanni-t opened this issue Jun 10, 2021 · 0 comments · Fixed by #8059
Closed

Protocol Engine: Allow starting and pausing a JSON protocol over HTTP #7921

sanni-t opened this issue Jun 10, 2021 · 0 comments · Fixed by #8059
Assignees
Labels
feature-request A request for a new feature or a change that isn't a bug. May require further triage or scoping. 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

@sanni-t
Copy link
Member

sanni-t commented Jun 10, 2021

As a user, I want to be able to reliably and predictably start and pause my running JSON protocol over HTTP.

  • When a play POST request is sent to the robot server, the protocol should start executing the commands from the beginning.

    • Implementation details:
      • A new ID for the action is generated and appended to commands/actions list.
      • PE state & session state are updated
      • CommandQueueWorker starts a task to fetch and execute the next command in the protocol
  • The server should respond with either an action successful or unsuccessful response with explanation

    • If successful, respond with the action ID (& updated session state?)
    • If unsuccessful, respond with appropriate error messages.
  • When a pause POST request is sent to the robot server, the protocol should pause execution in a way that makes it possible to resume the protocol reliably.

    • Implementation details:
      • A new ID for the action is generated and appended to commands/actions list.
      • PE state & session state are updated
      • CommandQueueWorker stops its fetch task
      • The last command that was executing before pause is received is completed. Next command is not fetched. [NOTE: This behavior could change depending on UX spike results]
      • This behavior is coarser than the current implementation of pause. refactor(engine): pause HardwareAPI when engine is paused #7923 will address updating this behavior.
  • The server should respond with either an action successful or unsuccessful response with explanation

    • If successful, respond with the action ID (& updated session state?)
    • If unsuccessful, respond with appropriate error messages.
@sanni-t sanni-t added feature-request A request for a new feature or a change that isn't a bug. May require further triage or scoping. robot-svcs Falls under the purview of the Robot Services squad (formerly CPX, Core Platform Experience). protocol-engine Ticket related to the Protocol Engine project and associated HTTP APIs labels Jun 10, 2021
@mattwelch mattwelch added this to the CPX Sprint 36 milestone Jun 29, 2021
@SyntaxColoring SyntaxColoring self-assigned this Jul 1, 2021
@mcous mcous self-assigned this Jul 6, 2021
@SyntaxColoring SyntaxColoring removed their assignment Jul 7, 2021
mcous added a commit that referenced this issue Jul 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request A request for a new feature or a change that isn't a bug. May require further triage or scoping. 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

Successfully merging a pull request may close this issue.

4 participants