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" } |