Skip to content

Instantly share code, notes, and snippets.

@kasbah
Created July 13, 2021 11:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kasbah/7cb78e84b924fedf5757163137a7a060 to your computer and use it in GitHub Desktop.
Save kasbah/7cb78e84b924fedf5757163137a7a060 to your computer and use it in GitHub Desktop.
components:
schemas:
Action:
properties:
action:
type: string
data: {}
href:
type: string
id:
type: string
input: {}
links:
type: object
log:
items:
$ref: '#/components/schemas/LogRecord'
type: array
output: {}
progress:
type: integer
status:
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
Extension:
properties:
description:
type: string
links:
type: object
meta:
type: object
pythonName:
type: string
pythonObject:
type: string
title:
type: string
type: object
LogRecord:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
type: integer
lineno:
type: integer
message:
type: string
name:
type: string
type: object
info:
title: OpenFlexure Microscope openflexure:microscope:7f0b3fa7-dac6-494d-95b7-cb7d6addd215
version: 2.10.0b1
openapi: 3.0.2
paths:
/api/v2/:
get:
description: "A W3C compliant Thing Description is a JSON representation\nof\
\ the API, including links to different endpoints.\nYou can browse it directly\
\ (e.g. in Firefox), though for \ninteractive API documentation you should\
\ try the swagger-ui \ndocs, at `docs/swagger-ui/`"
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json: {}
description: W3C Thing Description
summary: Thing Description
tags: []
/api/v2/extensions:
get:
description: 'List enabled extensions.
Returns a list of Extension representations, including basic documentation.
Describes server methods, web views, and other relevant Lab Things metadata.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Extension'
description: A list of available extensions and their properties
summary: List enabled extensions.
tags:
- extensions
/api/v2/actions:
get:
description: "Action queue\n\nThis endpoint returns a list of all actions that\
\ have run since \nthe server was started, including ones that have completed\
\ and \nactions that are still running. Each entry includes links to \nmanage\
\ and inspect that action."
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Action'
type: array
description: List of Action objects
summary: Action queue
tags: []
/api/v2/actions/{task_id}:
delete:
description: 'Cancel a running Action
A `DELETE` request will stop a running action.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Action'
description: Action object that was cancelled
'404':
description: Action not found
summary: Cancel a running Action
tags: []
get:
description: 'Show the status of an Action
A `GET` request will return the current status
of an action, including logs. For completed
actions, it will include the return value.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Action'
description: Action object
'404':
description: Action not found
summary: Show the status of an Action
tags: []
/api/v2/events/logging:
get:
description: Default method for GET requests. Returns the action queue (including
already finished actions) for this action
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
data:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
event:
type: string
timestamp:
format: date-time
type: string
type: object
description: Event queue
summary: Default method for GET requests. Returns the action queue (including
already finished actions) for this action
tags:
- events
/api/v2/extensions/org.openflexure.autofocus/static/{path}:
get:
description: Files and folders within this path will be served from a static
directory.
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
description: Static file
'404':
description: Static file not found
summary: Serve static files
tags: []
/api/v2/extensions/org.openflexure.autofocus/measure_sharpness:
post:
description: 'Measure the sharpness from the MJPEG stream
Take a JPEG snapshot from the camera (extracted from the live preview stream)
and return its size. This is the sharpness metric used by the fast autofocus
method.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Measure the sharpness from the MJPEG stream
tags: []
/api/v2/extensions/org.openflexure.autofocus/autofocus:
get:
description: 'Manage actions for autofocus.
This `View` class will return a list of `Action` objects representing
each time autofocus has been run in response to a `GET` request,
and will start a new `Action` in response to a `POST` request.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
dz:
description: An ascending list of relative z positions
example:
- -300
- -200
- -100
- 0
- 100
- 200
- 300
items:
format: integer
type: number
type: array
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed `autofocus` actions.
tags:
- actions
post:
description: "Perform a simple autofocus routine.\n\nThe stage is moved to z\
\ positions (relative to current position) in dz,\nand at each position an\
\ image is captured and the sharpness function \nevaulated. We then move\
\ back to the position where the sharpness was\nhighest. No interpolation\
\ is performed.\n\ndz is assumed to be in ascending order (starting at -ve\
\ values)\n\nThis `POST` request starts an Action, i.e. the hardware will\
\ do something\nthat may continue after the HTTP request has been responded\
\ to. The \nresponse will always be an Action object, that details the current\
\ \nstatus of the action and provides an interface to poll for completion.\n\
\nIf the action completes within a specified timeout, we will return\nan HTTP\
\ status code of `200` and the return value will include any\noutput from\
\ the action. If it does not complete, we will return a\n`201` response code,\
\ and the action's endpoint may be polled to follow\nits progress."
requestBody:
content:
application/json:
schema:
properties:
dz:
description: An ascending list of relative z positions
example:
- -300
- -200
- -100
- 0
- 100
- 200
- 300
items:
format: integer
type: number
type: array
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
dz:
description: An ascending list of relative z positions
example:
- -300
- -200
- -100
- 0
- 100
- 200
- 300
items:
format: integer
type: number
type: array
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
dz:
description: An ascending list of relative z positions
example:
- -300
- -200
- -100
- 0
- 100
- 200
- 300
items:
format: integer
type: number
type: array
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Perform a simple autofocus routine.
tags:
- actions
/api/v2/extensions/org.openflexure.autofocus/fast_autofocus:
get:
description: 'Manage actions for fast_autofocus.
This `View` class will return a list of `Action` objects representing
each time fast_autofocus has been run in response to a `GET` request,
and will start a new `Action` in response to a `POST` request.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
dz:
description: Total Z range to search over (in stage steps)
example: 2000
format: integer
type: number
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed `fast_autofocus` actions.
tags:
- actions
post:
description: "Perform a fast down-up-down-up autofocus\n\nThis \"fast\" autofocus\
\ method moves the stage continuously in Z, while\nfollowing the sharpness\
\ using the MJPEG stream. This version is the\nsimplest \"fast\" autofocus\
\ method, and performs the following sequence \nof moves:\n\n1. Move to `-dz/2`,\
\ i.e. the bottom of the range\n2. Move up by `dz`, i.e. to the top of the\
\ range, while recording the\n sharpness of the image as a function of time.\
\ Record the estimated\n position of the stage when the sharpness was maximised,\
\ `fz`.\n3. Move back to the bottom (by `-dz`)\n4. Move up to the position\
\ where it was sharpest.\n\n## Backlash correction\nThis routine should cancel\
\ out backlash: the stage is moving upwards as\nwe record the sharpnes vs\
\ z data, and it is also moving upwards when\nwe make the final move to the\
\ sharpest point. Mechanical backlash should\ntherefore be the same in both\
\ cases.\n\nThis does not account for lag between the sharpness measurements\
\ and the\nstage's motion; that has been tested for and seems not to be a\
\ big issue\nmost of the time, but may need to be accounted for in the future,\
\ if\nhardware or software changes increase the latency.\n\n## Sharpness metric\n\
This method uses the MJPEG preview stream to estimate the sharpness of\nthe\
\ image. MJPEG streams consist of a series of independent JPEG images,\n\
so each frame can be looked at in isolation (though see later for an \nimportant\
\ caveat). JPEG images are compressed lossily, by taking the \ndiscrete cosine\
\ transform (DCT) of each 8x8 block in the image. A very\nrough precis of\
\ how this works is that after the DCT, cosine components \nthat are deemed\
\ unimportant (i.e. smaller than a threshold) are discarded.\nThe effect is\
\ that images with lots of high-frequency information have a\nlarger file\
\ size.\n\nWe look only at the size of each JPEG frame in the stream, so we\
\ get a\nremarkably robust estimate of image sharpness without even opening\
\ the \nimages! That's what lets us analyse 30 images/second even on the\
\ very\nlimited processing power available to the Raspberry Pi 3.\n\n## Warning:\
\ frame independence\nWe assume that JPEG frames are independent. This is\
\ only true if the\nMJPEG stream is encoded at *constant quality* without\
\ any additional\nbit rate control. By default, many streams will reduce\
\ the quality\nfactor if they exceed a target bit rate, which badly affects\
\ this\nmethod. We turn off bit rate limiting for the Raspberry Pi camera,\n\
which fixes the problem, at the expense of sometimes failing if\nparticularly\
\ sharp images appear in the stream, as there is a fairly\nsmall maximum size\
\ for each JPEG frame beyond which empty images are \nreturned.\n\n## Estimation\
\ of sharpness vs z\nWhat we record during an autofocus is two time series,\
\ from two parallel\nthreads. One thread monitors the camera, and records\
\ the size of each\nJPEG frame as a function of time. NB this is time from\
\ `time.time()`\nin Python, so will not be microsecond-accurate. The other\
\ thread is\nresponsible for moving the stage, and records its current Z position\
\ \nbefore and after each move. Interpolating between these `(t, z)` points\n\
gives us a `z` value for each JPEG size, and so we can estimate the \nJPEG\
\ size as a function of `z` and hence determine the `z` value at \nwhich sharpness\
\ is maximised.\n\nThis `POST` request starts an Action, i.e. the hardware\
\ will do something\nthat may continue after the HTTP request has been responded\
\ to. The \nresponse will always be an Action object, that details the current\
\ \nstatus of the action and provides an interface to poll for completion.\n\
\nIf the action completes within a specified timeout, we will return\nan HTTP\
\ status code of `200` and the return value will include any\noutput from\
\ the action. If it does not complete, we will return a\n`201` response code,\
\ and the action's endpoint may be polled to follow\nits progress."
requestBody:
content:
application/json:
schema:
properties:
dz:
description: Total Z range to search over (in stage steps)
example: 2000
format: integer
type: number
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
dz:
description: Total Z range to search over (in stage steps)
example: 2000
format: integer
type: number
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
dz:
description: Total Z range to search over (in stage steps)
example: 2000
format: integer
type: number
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Perform a fast down-up-down-up autofocus
tags:
- actions
/api/v2/extensions/org.openflexure.autofocus/fast_up_down_up_autofocus:
get:
description: 'Manage actions for fast_up_down_up_autofocus.
This `View` class will return a list of `Action` objects representing
each time fast_up_down_up_autofocus has been run in response to a `GET` request,
and will start a new `Action` in response to a `POST` request.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
backlash:
description: Distance to undershoot, before correction move.
format: integer
minimum: 0
type: number
dz:
description: Total Z range to search over (in stage steps)
example: 2000
format: integer
type: number
initial_move_up:
description: Set to Flase to disable the initial move upwards
type: boolean
target_z:
description: Target finishing position, relative to the focus.
example: -100
format: integer
type: number
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed `fast_up_down_up_autofocus` actions.
tags:
- actions
post:
description: "Perform a fast up-down-up autofocus, with feedback\n\nAutofocus\
\ by measuring on the way down, and moving back up with feedback.\nThis is\
\ a \"fast\" autofocus method, i.e. it moves the stage continuously\nwhile\
\ monitoring the sharpness using the MJPEG stream. See `fast_autofocus`\n\
for more details.\n\nThis autofocus method is very efficient, as it only passes\
\ the peak once.\nThe sequence of moves it performs is:\n\n1. Move to the\
\ top of the range `dz/2` (can be disabled)\n\n2. Move down by `dz` while\
\ monitoring JPEG size to find the focus.\n\n3. Move back up to the `target_z`\
\ position, relative to the sharpest image.\n\n4. Measure the sharpness,\
\ and compare against the curve recorded in (2) to \\\n estimate how much\
\ further we need to go. Make this move, to reach our \\\n target position.\n\
\nMoving back to the target position in two steps allows us to correct for\n\
backlash, by using the sharpness-vs-z curve as a rough encoder for Z. The\n\
main source of error is that the curves on the way up and the way down are\
\ \nnot always identical, largely due to small lateral shifts as the Z axis\
\ is\nmoved.\n\nParameters:\n dz: number of steps over which to scan (optional,\
\ default 2000)\n\n target_z: we aim to finish at this position, relative\
\ to focus. This may \n be useful if, for example, you want to acquire\
\ a stack of images in Z. \n It is optional, and the default value\
\ of 0 will finish at the focus.\n\n initial_move_up: (optional, default\
\ True) set this to `False` to move down\n from the starting position.\
\ Mostly useful if you're able to combine\n the initial move with\
\ something else, e.g. moving to the next scan point.\n\n backlash: (optional,\
\ default 25) is a small extra move made in step\n 3 to help counteract\
\ backlash. It should be small enough that you\n would always expect\
\ there to be greater backlash than this. Too small\n might slightly\
\ hurt accuracy, but is unlikely to be a big issue. Too big\n may\
\ cause you to overshoot, which is a problem.\n\n mini_backlash: (optional,\
\ default 25) is an alias for `backlash` and will be\n removed in due\
\ course.\n\nThis `POST` request starts an Action, i.e. the hardware will\
\ do something\nthat may continue after the HTTP request has been responded\
\ to. The \nresponse will always be an Action object, that details the current\
\ \nstatus of the action and provides an interface to poll for completion.\n\
\nIf the action completes within a specified timeout, we will return\nan HTTP\
\ status code of `200` and the return value will include any\noutput from\
\ the action. If it does not complete, we will return a\n`201` response code,\
\ and the action's endpoint may be polled to follow\nits progress."
requestBody:
content:
application/json:
schema:
properties:
backlash:
description: Distance to undershoot, before correction move.
format: integer
minimum: 0
type: number
dz:
description: Total Z range to search over (in stage steps)
example: 2000
format: integer
type: number
initial_move_up:
description: Set to Flase to disable the initial move upwards
type: boolean
target_z:
description: Target finishing position, relative to the focus.
example: -100
format: integer
type: number
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
backlash:
description: Distance to undershoot, before correction move.
format: integer
minimum: 0
type: number
dz:
description: Total Z range to search over (in stage steps)
example: 2000
format: integer
type: number
initial_move_up:
description: Set to Flase to disable the initial move upwards
type: boolean
target_z:
description: Target finishing position, relative to the focus.
example: -100
format: integer
type: number
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
backlash:
description: Distance to undershoot, before correction move.
format: integer
minimum: 0
type: number
dz:
description: Total Z range to search over (in stage steps)
example: 2000
format: integer
type: number
initial_move_up:
description: Set to Flase to disable the initial move upwards
type: boolean
target_z:
description: Target finishing position, relative to the focus.
example: -100
format: integer
type: number
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Perform a fast up-down-up autofocus, with feedback
tags:
- actions
/api/v2/extensions/org.openflexure.autofocus/move_and_measure:
get:
description: 'Manage actions for move_and_measure.
This `View` class will return a list of `Action` objects representing
each time move_and_measure has been run in response to a `GET` request,
and will start a new `Action` in response to a `POST` request.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
dz:
description: The relative Z move to make
format: integer
type: number
required:
- dz
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed `move_and_measure` actions.
tags:
- actions
post:
description: "Make a relative move in Z and measure dynamic sharpness\n\nThis\
\ accesses the underlying method used by the fast autofocus routines, to\n\
move the stage while monitoring the sharpness, as reported by the size of\n\
each JPEG frame in the preview stream. It returns a dictionary with\nstage\
\ position vs time and image size (i.e. sharpness) vs time.\n\nThis `POST`\
\ request starts an Action, i.e. the hardware will do something\nthat may\
\ continue after the HTTP request has been responded to. The \nresponse will\
\ always be an Action object, that details the current \nstatus of the action\
\ and provides an interface to poll for completion.\n\nIf the action completes\
\ within a specified timeout, we will return\nan HTTP status code of `200`\
\ and the return value will include any\noutput from the action. If it does\
\ not complete, we will return a\n`201` response code, and the action's endpoint\
\ may be polled to follow\nits progress."
requestBody:
content:
application/json:
schema:
properties:
dz:
description: The relative Z move to make
format: integer
type: number
required:
- dz
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
dz:
description: The relative Z move to make
format: integer
type: number
required:
- dz
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
dz:
description: The relative Z move to make
format: integer
type: number
required:
- dz
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Make a relative move in Z and measure dynamic sharpness
tags:
- actions
/api/v2/extensions/org.openflexure.scan/static/{path}:
get:
description: Files and folders within this path will be served from a static
directory.
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
description: Static file
'404':
description: Static file not found
summary: Serve static files
tags: []
/api/v2/extensions/org.openflexure.scan/tile:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
annotations:
example:
Client: SwaggerUI
type: object
autofocus_dz:
format: integer
type: number
bayer:
description: Include raw bayer data in capture
type: boolean
fast_autofocus:
type: boolean
filename:
example: MyFileName
type: string
grid:
example:
- 3
- 3
- 3
items:
format: integer
minimum: 1
type: number
type: array
namemode:
example: coordinates
type: string
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
stride_size:
example:
- 2000
- 1500
- 100
items:
format: integer
type: number
type: array
style:
type: string
tags:
example:
- docs
items:
type: string
type: array
temporary:
description: Delete capture on shutdown
type: boolean
use_video_port:
type: boolean
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: ''
requestBody:
content:
application/json:
schema:
properties:
annotations:
example:
Client: SwaggerUI
type: object
autofocus_dz:
format: integer
type: number
bayer:
description: Include raw bayer data in capture
type: boolean
fast_autofocus:
type: boolean
filename:
example: MyFileName
type: string
grid:
example:
- 3
- 3
- 3
items:
format: integer
minimum: 1
type: number
type: array
namemode:
example: coordinates
type: string
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
stride_size:
example:
- 2000
- 1500
- 100
items:
format: integer
type: number
type: array
style:
type: string
tags:
example:
- docs
items:
type: string
type: array
temporary:
description: Delete capture on shutdown
type: boolean
use_video_port:
type: boolean
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
annotations:
example:
Client: SwaggerUI
type: object
autofocus_dz:
format: integer
type: number
bayer:
description: Include raw bayer data in capture
type: boolean
fast_autofocus:
type: boolean
filename:
example: MyFileName
type: string
grid:
example:
- 3
- 3
- 3
items:
format: integer
minimum: 1
type: number
type: array
namemode:
example: coordinates
type: string
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
stride_size:
example:
- 2000
- 1500
- 100
items:
format: integer
type: number
type: array
style:
type: string
tags:
example:
- docs
items:
type: string
type: array
temporary:
description: Delete capture on shutdown
type: boolean
use_video_port:
type: boolean
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
annotations:
example:
Client: SwaggerUI
type: object
autofocus_dz:
format: integer
type: number
bayer:
description: Include raw bayer data in capture
type: boolean
fast_autofocus:
type: boolean
filename:
example: MyFileName
type: string
grid:
example:
- 3
- 3
- 3
items:
format: integer
minimum: 1
type: number
type: array
namemode:
example: coordinates
type: string
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
stride_size:
example:
- 2000
- 1500
- 100
items:
format: integer
type: number
type: array
style:
type: string
tags:
example:
- docs
items:
type: string
type: array
temporary:
description: Delete capture on shutdown
type: boolean
use_video_port:
type: boolean
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: ''
tags:
- actions
/api/v2/extensions/org.openflexure.zipbuilder/static/{path}:
get:
description: Files and folders within this path will be served from a static
directory.
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
description: Static file
'404':
description: Static file not found
summary: Serve static files
tags: []
/api/v2/extensions/org.openflexure.zipbuilder/get/{session_id}:
delete:
description: Close and delete a particular capture collection ZIP file
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Close and delete a particular capture collection ZIP file
tags: []
get:
description: Download a particular capture collection ZIP file
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Download a particular capture collection ZIP file
tags: []
/api/v2/extensions/org.openflexure.zipbuilder/get:
get:
description: ''
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
data_size:
format: decimal
type: number
id:
type: string
links:
type: object
zip_size:
format: decimal
type: number
type: object
description: Read property
summary: ''
tags:
- properties
/api/v2/extensions/org.openflexure.zipbuilder/build:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
items:
type: string
type: array
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
required:
- input
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: ''
requestBody:
content:
application/json:
schema:
items:
type: string
type: array
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
items:
type: string
type: array
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
required:
- input
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
items:
type: string
type: array
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
required:
- input
type: object
description: Action started
summary: ''
tags:
- actions
/api/v2/extensions/org.openflexure.autostorage/static/{path}:
get:
description: Files and folders within this path will be served from a static
directory.
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
description: Static file
'404':
description: Static file not found
summary: Serve static files
tags: []
/api/v2/extensions/org.openflexure.autostorage/list-locations:
get:
description: ''
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json: {}
description: Read property
summary: ''
tags:
- properties
/api/v2/extensions/org.openflexure.autostorage/location:
get:
description: ''
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
example: Default
type: string
description: Read property
summary: ''
tags:
- properties
post:
description: ''
requestBody:
content:
application/json:
schema:
example: Default
type: string
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
example: Default
type: string
description: Write property
summary: ''
tags:
- properties
/api/v2/extensions/org.openflexure.autostorage/location-from-title:
post:
description: ''
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: ''
tags: []
/api/v2/extensions/org.openflexure.camera-stage-mapping/static/{path}:
get:
description: Files and folders within this path will be served from a static
directory.
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
description: Static file
'404':
description: Static file not found
summary: Serve static files
tags: []
/api/v2/extensions/org.openflexure.camera-stage-mapping/calibrate_1d:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
direction:
example:
- 1
- 0
- 0
items:
format: float
type: number
type: array
required:
- direction
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: Calibrate one axis of the microscope stage against the camera.
requestBody:
content:
application/json:
schema:
properties:
direction:
example:
- 1
- 0
- 0
items:
format: float
type: number
type: array
required:
- direction
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
direction:
example:
- 1
- 0
- 0
items:
format: float
type: number
type: array
required:
- direction
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
direction:
example:
- 1
- 0
- 0
items:
format: float
type: number
type: array
required:
- direction
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Calibrate one axis of the microscope stage against the camera.
tags:
- actions
/api/v2/extensions/org.openflexure.camera-stage-mapping/calibrate_xy:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
type: string
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: Calibrate both axes of the microscope stage against the camera.
requestBody:
content:
application/json: {}
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
type: string
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
type: string
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Calibrate both axes of the microscope stage against the camera.
tags:
- actions
/api/v2/extensions/org.openflexure.camera-stage-mapping/move_in_image_coordinates:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
x:
description: The number of pixels to move in X
example: 100
format: float
type: number
y:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- x
- y
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: Move the microscope stage, such that we move by a given number
of pixels on the camera
requestBody:
content:
application/json:
schema:
properties:
x:
description: The number of pixels to move in X
example: 100
format: float
type: number
y:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- x
- y
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
x:
description: The number of pixels to move in X
example: 100
format: float
type: number
y:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- x
- y
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
x:
description: The number of pixels to move in X
example: 100
format: float
type: number
y:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- x
- y
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Move the microscope stage, such that we move by a given number of pixels
on the camera
tags:
- actions
/api/v2/extensions/org.openflexure.camera-stage-mapping/closed_loop_move_in_image_coordinates:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
x:
description: The number of pixels to move in X
example: 100
format: float
type: number
y:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- x
- y
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: Move the microscope stage, such that we move by a given number
of pixels on the camera
requestBody:
content:
application/json:
schema:
properties:
x:
description: The number of pixels to move in X
example: 100
format: float
type: number
y:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- x
- y
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
x:
description: The number of pixels to move in X
example: 100
format: float
type: number
y:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- x
- y
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
x:
description: The number of pixels to move in X
example: 100
format: float
type: number
y:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- x
- y
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Move the microscope stage, such that we move by a given number of pixels
on the camera
tags:
- actions
/api/v2/extensions/org.openflexure.camera-stage-mapping/test_closed_loop_spiral_scan:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
N:
description: The number of rings in the spiral scan
example: 3
format: integer
type: number
x_step:
description: The number of pixels to move in X
example: 100
format: float
type: number
y_step:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- N
- x_step
- y_step
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: Move the microscope stage, such that we move by a given number
of pixels on the camera
requestBody:
content:
application/json:
schema:
properties:
N:
description: The number of rings in the spiral scan
example: 3
format: integer
type: number
x_step:
description: The number of pixels to move in X
example: 100
format: float
type: number
y_step:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- N
- x_step
- y_step
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
N:
description: The number of rings in the spiral scan
example: 3
format: integer
type: number
x_step:
description: The number of pixels to move in X
example: 100
format: float
type: number
y_step:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- N
- x_step
- y_step
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
N:
description: The number of rings in the spiral scan
example: 3
format: integer
type: number
x_step:
description: The number of pixels to move in X
example: 100
format: float
type: number
y_step:
description: The number of pixels to move in Y
example: 100
format: float
type: number
required:
- N
- x_step
- y_step
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Move the microscope stage, such that we move by a given number of pixels
on the camera
tags:
- actions
/api/v2/extensions/org.openflexure.camera-stage-mapping/get_calibration:
get:
description: Get the calibration data in JSON format.
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json: {}
description: Read property
summary: Get the calibration data in JSON format.
tags:
- properties
/api/v2/captures:
get:
description: List all image captures
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
annotations:
type: object
dataset:
properties:
id:
type: string
name:
type: string
type:
type: string
type: object
format:
type: string
id:
type: string
links:
type: object
name:
type: string
path:
description: Path of file on microscope device
type: string
tags:
items:
type: string
type: array
time:
format: date
type: string
type: object
description: Read property
summary: List all image captures
tags:
- captures
- properties
/api/v2/captures/{id_}:
delete:
description: Delete a single image capture
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Delete a single image capture
tags:
- captures
get:
description: Description of a single image capture
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Description of a single image capture
tags:
- captures
/api/v2/captures/{id_}/download/{filename}:
get:
description: Image data for a single image capture
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Image data for a single image capture
tags:
- captures
/api/v2/captures/{id_}/tags:
put:
description: Add tags to a single image capture
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Add tags to a single image capture
tags:
- captures
delete:
description: Delete tags from a single image capture
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Delete tags from a single image capture
tags:
- captures
get:
description: Get tags associated with a single image capture
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Get tags associated with a single image capture
tags:
- captures
/api/v2/captures/{id_}/annotations:
put:
description: Update metadata for a single image capture
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Update metadata for a single image capture
tags:
- captures
get:
description: Get annotations associated with a single image capture
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Get annotations associated with a single image capture
tags:
- captures
/api/v2/instrument/settings:
put:
description: Update current microscope settings, including camera and stage
requestBody:
content:
application/json: {}
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json: {}
description: Write property
summary: Update current microscope settings, including camera and stage
tags:
- properties
get:
description: Current microscope settings, including camera and stage
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json: {}
description: Read property
summary: Current microscope settings, including camera and stage
tags:
- properties
/api/v2/instrument/settings/{route}:
put:
description: Update a nested section of the current microscope settings
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Update a nested section of the current microscope settings
tags:
- properties
get:
description: Show a nested section of the current microscope settings
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Show a nested section of the current microscope settings
tags:
- properties
/api/v2/instrument/state:
get:
description: Show current read-only state of the microscope
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json: {}
description: Read property
summary: Show current read-only state of the microscope
tags:
- properties
/api/v2/instrument/state/{route}:
get:
description: Show a nested section of the current microscope state
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Show a nested section of the current microscope state
tags:
- properties
/api/v2/instrument/configuration:
get:
description: Show current read-only state of the microscope
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json: {}
description: Read property
summary: Show current read-only state of the microscope
tags:
- properties
/api/v2/instrument/configuration/{route}:
get:
description: Show a nested section of the current microscope state
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Show a nested section of the current microscope state
tags:
- properties
/api/v2/docs/swagger.json:
get:
description: 'OpenAPI v3 documentation
A JSON document containing an API description in OpenAPI format'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: OpenAPI v3 documentation
tags: []
/api/v2/docs/swagger.yaml:
get:
description: 'OpenAPI v3 documentation
A YAML document containing an API description in OpenAPI format'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: OpenAPI v3 documentation
tags: []
/api/v2/instrument/stage/type:
put:
description: Set the stage geometry.
requestBody:
content:
application/json:
schema:
OneOf:
- SangaStage
- SangaDeltaStage
description: The translation stage geometry
example: SangaStage
type:
- string
- 'null'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
OneOf:
- SangaStage
- SangaDeltaStage
description: The translation stage geometry
example: SangaStage
type:
- string
- 'null'
description: Write property
summary: Set the stage geometry.
tags:
- properties
get:
description: Get the stage geometry.
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
OneOf:
- SangaStage
- SangaDeltaStage
description: The translation stage geometry
example: SangaStage
type:
- string
- 'null'
description: Read property
summary: Get the stage geometry.
tags:
- properties
/api/v2/instrument/camera/lst:
get:
description: Get the stage geometry.
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content_type: image/png
description: Lens-shading table in RGB format
summary: Get the stage geometry.
tags:
- properties
/api/v2/streams/mjpeg:
get:
description: 'MJPEG stream from the microscope camera.
Note: While the code actually getting frame data from a camera and storing
it in
camera.frame runs in a thread, the gen(microscope.camera) generator does not.
This response is therefore blocking. The generator just yields the most recent
frame from the camera object, passed to the Flask response, and then repeats
until
the connection is closed.
Without monkey patching, or using a native threaded server, the stream
will block all proceeding requests.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content_type: multipart/x-mixed-replace
description: "An MJPEG stream of camera images.\n\nThis endpoint will serve\
\ JPEG images sequentially, \nwith each frame separated by `--frame` and\
\ a \n`Content-Type: image/jpeg` header.\nUsing this endpoint as the `src`\
\ of an HTML `<img>` \ntag will result in the video stream displaying\
\ without \nfurther effort.\n\nIf you save the stream to disk (e.g. with\
\ `curl`), be \naware that the text in between frames may confuse some\
\ \nvideo players."
summary: MJPEG stream from the microscope camera.
tags:
- properties
/api/v2/streams/snapshot:
get:
description: Single snapshot from the camera stream
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content_type: image/jpeg
description: Snapshot taken
summary: Single snapshot from the camera stream
tags:
- properties
/api/v2/actions/camera/capture/:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
annotations:
example:
Client: SwaggerUI
type: object
bayer:
description: Include raw bayer data in capture
type: boolean
filename:
example: MyFileName
type: string
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
tags:
example:
- docs
items:
type: string
type: array
temporary:
description: Delete capture on shutdown
type: boolean
use_video_port:
type: boolean
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
properties:
annotations:
type: object
dataset:
properties:
id:
type: string
name:
type: string
type:
type: string
type: object
format:
type: string
id:
type: string
links:
type: object
name:
type: string
path:
description: Path of file on microscope device
type: string
tags:
items:
type: string
type: array
time:
format: date
type: string
type: object
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: Create a new capture
requestBody:
content:
application/json:
schema:
properties:
annotations:
example:
Client: SwaggerUI
type: object
bayer:
description: Include raw bayer data in capture
type: boolean
filename:
example: MyFileName
type: string
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
tags:
example:
- docs
items:
type: string
type: array
temporary:
description: Delete capture on shutdown
type: boolean
use_video_port:
type: boolean
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
annotations:
example:
Client: SwaggerUI
type: object
bayer:
description: Include raw bayer data in capture
type: boolean
filename:
example: MyFileName
type: string
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
tags:
example:
- docs
items:
type: string
type: array
temporary:
description: Delete capture on shutdown
type: boolean
use_video_port:
type: boolean
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
properties:
annotations:
type: object
dataset:
properties:
id:
type: string
name:
type: string
type:
type: string
type: object
format:
type: string
id:
type: string
links:
type: object
name:
type: string
path:
description: Path of file on microscope device
type: string
tags:
items:
type: string
type: array
time:
format: date
type: string
type: object
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
annotations:
example:
Client: SwaggerUI
type: object
bayer:
description: Include raw bayer data in capture
type: boolean
filename:
example: MyFileName
type: string
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
tags:
example:
- docs
items:
type: string
type: array
temporary:
description: Delete capture on shutdown
type: boolean
use_video_port:
type: boolean
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
properties:
annotations:
type: object
dataset:
properties:
id:
type: string
name:
type: string
type:
type: string
type: object
format:
type: string
id:
type: string
links:
type: object
name:
type: string
path:
description: Path of file on microscope device
type: string
tags:
items:
type: string
type: array
time:
format: date
type: string
type: object
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Create a new capture
tags:
- actions
/api/v2/actions/camera/ram-capture/:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
bayer:
description: Include raw bayer data in capture
type: boolean
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
use_video_port:
type: boolean
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: Take a non-persistant image capture.
requestBody:
content:
application/json:
schema:
properties:
bayer:
description: Include raw bayer data in capture
type: boolean
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
use_video_port:
type: boolean
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content_type: image/jpeg
description: A JPEG image, representing the capture
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
bayer:
description: Include raw bayer data in capture
type: boolean
resize:
properties:
height:
example: 480
format: integer
type: number
width:
example: 640
format: integer
type: number
required:
- height
- width
type: object
use_video_port:
type: boolean
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Take a non-persistant image capture.
tags:
- actions
/api/v2/actions/camera/preview/start:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
window:
example:
- 0
- 0
- 640
- 480
items:
format: integer
type: number
type: array
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: Start the onboard GPU preview.
requestBody:
content:
application/json:
schema:
properties:
window:
example:
- 0
- 0
- 640
- 480
items:
format: integer
type: number
type: array
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
window:
example:
- 0
- 0
- 640
- 480
items:
format: integer
type: number
type: array
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
window:
example:
- 0
- 0
- 640
- 480
items:
format: integer
type: number
type: array
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Start the onboard GPU preview.
tags:
- actions
/api/v2/actions/camera/preview/stop:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
type: string
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: Stop the onboard GPU preview.
requestBody:
content:
application/json: {}
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
type: string
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
type: string
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Stop the onboard GPU preview.
tags:
- actions
/api/v2/actions/stage/move/:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
absolute:
description: Move to an absolute position
example: false
type: boolean
x:
example: 100
format: integer
type:
- number
- 'null'
y:
example: 100
format: integer
type:
- number
- 'null'
z:
example: 20
format: integer
type:
- number
- 'null'
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: 'Move the microscope stage in x, y, z
Any axes that are not specifed will not move.'
requestBody:
content:
application/json:
schema:
properties:
absolute:
description: Move to an absolute position
example: false
type: boolean
x:
example: 100
format: integer
type:
- number
- 'null'
y:
example: 100
format: integer
type:
- number
- 'null'
z:
example: 20
format: integer
type:
- number
- 'null'
type: object
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
absolute:
description: Move to an absolute position
example: false
type: boolean
x:
example: 100
format: integer
type:
- number
- 'null'
y:
example: 100
format: integer
type:
- number
- 'null'
z:
example: 20
format: integer
type:
- number
- 'null'
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
properties:
absolute:
description: Move to an absolute position
example: false
type: boolean
x:
example: 100
format: integer
type:
- number
- 'null'
y:
example: 100
format: integer
type:
- number
- 'null'
z:
example: 20
format: integer
type:
- number
- 'null'
type: object
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Move the microscope stage in x, y, z
tags:
- actions
/api/v2/actions/stage/zero/:
get:
description: 'List running and completed actions.
Actions are run with `POST` requests. See the `POST` method for this URL
for
details of the action. Sending a `GET` request to an action endpoint will
return
action descriptions for each time the action has been run, including whether
they
have completed, and any return values.'
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
type: string
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action queue
summary: List running and completed actions.
tags:
- actions
post:
description: 'Zero the stage coordinates.
Does not move the stage, but rather makes the current position read as [0,
0, 0]'
requestBody:
content:
application/json: {}
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
'200':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
type: string
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action completed immediately
'201':
content:
application/json:
schema:
properties:
action:
type: string
data:
type: string
href:
type: string
id:
type: string
input:
type: string
links:
type: object
log:
items:
properties:
created:
format: date-time
type: string
filename:
type: string
levelname:
type: string
levelno:
format: integer
type: number
lineno:
format: integer
type: number
message:
type: string
name:
type: string
type: object
type: array
output:
type: string
progress:
format: integer
type: number
status:
OneOf:
- pending
- running
- completed
- cancelled
- error
type: string
timeCompleted:
format: date-time
type: string
timeRequested:
format: date-time
type: string
type: object
description: Action started
summary: Zero the stage coordinates.
tags:
- actions
/api/v2/log:
get:
description: Most recent 1mb of log output
responses:
5XX:
content:
application/json:
schema:
properties:
code:
format: integer
type: number
message:
type: string
name:
type: string
type: object
description: Unexpected error
summary: Most recent 1mb of log output
tags: []
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment