Proposed Decapod Camera Control Server Architecture
Resources
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Redirects to the start page for the Decapod user interface. |
Success: 301 |
DELETE, POST, PUT |
N/A |
Error: 405 |
The set of all cameras connected to the server.
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Returns info about all connected cameras, in JSON format.
{
cameras: [
{
model: "Model Name",
port: "connection port",
resolution: 14.6,
captureFormats: "formats"
capabilities: "camera capabilities"
}
]
}
|
Success: 200 |
DELETE, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Information about number of captures in JSON format
{
index: #, // unique index for captures
firstCaptureIndex: #, // index of first existing capture
lastCaptureIndex: #, // index of last existing capture
totalCaptures: # // total number of existing captures
}
|
Success: 200 |
DELETE, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
The conventional capture page. |
Success: 200 |
DELETE, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Information about whether the cameras meet all criteria for captures
{
"statusCode": "",
"message": ""
}
|
Success: 200 |
DELETE, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
URLS to the zip in JSON format
{
url: "http://localhost:8081/data/conventional/export/capture.zip"
}
|
success: 200 |
POST |
trigger a capture
{
index: #,
totalCaptures: #,
captures: [url, url]
}
|
success: 202 |
DELETE |
remove all capture data |
success: 204 |
PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
DELETE |
remove all captured images |
success: 204 |
GET, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
URLS to the capture(s) in JSON format
{
images: [url, url]
}
|
success: 200 |
DELETE |
Remove given capture, updates totalCaptures |
success: 204 |
POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Information about number of captures in JSON format
{
index: #, // unique index for captures
firstCaptureIndex: #, // index of first existing capture
lastCaptureIndex: #, // index of last existing capture
totalCaptures: # // total number of existing captures
}
|
Success: 200 |
DELETE, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
The stereo capture page. |
Success: 200 |
DELETE, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Information about whether the cameras meet all criteria for captures
{
"statusCode": "",
"message": ""
}
|
Success: 200 |
DELETE, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
URLS to the capture(s) in JSON format
{
url: "http://localhost:8081/data/conventional/export/capture.zip"
}
|
success: 200 |
POST |
trigger a capture
{
index: #,
totalCaptures: #,
captures: [url, url]
}
|
success: 202 |
DELETE |
remove all capture data |
success: 204 |
PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
DELETE |
remove all captured images |
success: 204 |
GET, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
URLS to the capture(s) in JSON format
{
images: [url, url]
}
|
success: 200 |
DELETE |
Remove given capture, updates totalCaptures |
success: 204 |
POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
calibration xml file |
success: 200 |
POST |
trigger a capture for calibration
{
index: #,
totalCaptures: #,
captures: [url, url]
}
|
success: 202 |
PUT |
trigger the generation of the calibration info |
success: 202 |
DELETE |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Information about number of captures in JSON format
{
index: #, // unique index for captures
firstCaptureIndex: #, // index of first existing capture
lastCaptureIndex: #, // index of last existing capture
totalCaptures: # // total number of existing captures
}
|
Success: 200 |
DELETE, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
The structured capture page. |
Success: 200 |
DELETE, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Information about whether the cameras meet all criteria for captures
{
"statusCode": "",
"message": ""
}
|
Success: 200 |
DELETE, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
URLS to the capture(s) in JSON format
{
url: "http://localhost:8081/data/conventional/export/capture.zip"
}
|
success: 200 |
POST |
trigger a capture
{
index: #,
totalCaptures: #,
captures: [url, url]
}
|
success: 202 |
DELETE |
remove all capture data |
success: 204 |
PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
DELETE |
remove all captured images |
success: 204 |
GET, POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
URLS to the capture(s) in JSON format
{
images: [url, url]
}
|
success: 200 |
DELETE |
Remove given capture, updates totalCaptures |
success: 204 |
POST, PUT |
N/A |
Error: 405 |
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
calibration xml file |
success: 200 |
POST |
trigger a capture for calibration
{
index: #,
totalCaptures: #,
captures: [url, url]
}
|
success: 202 |
PUT |
trigger the generation of the calibration info |
202 |
DELETE |
N/A |
Error: 405 |
Camera Status
Note: The camera status are checked in the listed order.
Stauts Code |
Message |
Server returned JSON |
|---|---|---|
NO_CAMERAS |
No cameras detected |
{
"statusCode": "NO_CAMERAS",
"message": "No cameras detected"
}
|
CAMERA_DISCONNECTED |
A Camera has been disconnected |
{
"statusCode": "CAMERA_DISCONNECTED",
"message": "A Camera has been disconnected",
"numCamerasDisconnected": #
}
|
NO_CAPTURE |
Could not capture an image |
{
"statusCode": "NO_CAPTURE",
"message": "Could not capture an image"
}
|
TOO_MANY_CAMERAS |
Too many cameras detected |
{
"statusCode": "TOO_MANY_CAMERAS",
"message": "Too many cameras detected",
"cameras": [{}, {}] // Summaries of all the cameras
}
|
READY |
Ready |
{
"statusCode": "READY",
"message": "Ready"
}
|