{"context": ["https://www.w3.org/2022/wot/td/v1.1"], "id": "simulations/camera", "title": "Camera", "description": "Simulated camera device that generates synthetic images of laser beam modes", "properties": {"binning": {"description": "Binning factor, applied to both dimensions", "default": [1, 1], "oneOf": [{"type": "array", "items": [{"type": "integer"}]}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/binning", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/binning", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "cam_id": {"description": "Camera ID shown in IDS Camera Manager (not dev. ID)", "oneOf": [{"type": "null"}, {"oneOf": [{"type": "string"}, {"exclusiveMinimum": 0, "type": "integer"}]}], "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/cam-id", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/cam-id", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "colormap": {"description": "Color mode that will be used on captured images", "default": "inferno", "type": "string", "enum": ["magma", "inferno", "plasma", "viridis", "cividis", "twilight", "twilight_shifted", "turbo", "berlin", "managua", "vanimo", "Blues", "BrBG", "BuGn", "BuPu", "CMRmap", "GnBu", "Greens", "Greys", "OrRd", "Oranges", "PRGn", "PiYG", "PuBu", "PuBuGn", "PuOr", "PuRd", "Purples", "RdBu", "RdGy", "RdPu", "RdYlBu", "RdYlGn", "Reds", "Spectral", "Wistia", "YlGn", "YlGnBu", "YlOrBr", "YlOrRd", "afmhot", "autumn", "binary", "bone", "brg", "bwr", "cool", "coolwarm", "copper", "cubehelix", "flag", "gist_earth", "gist_gray", "gist_heat", "gist_ncar", "gist_rainbow", "gist_stern", "gist_yarg", "gnuplot", "gnuplot2", "gray", "hot", "hsv", "jet", "nipy_spectral", "ocean", "pink", "prism", "rainbow", "seismic", "spring", "summer", "terrain", "winter", "Accent", "Dark2", "Paired", "Pastel1", "Pastel2", "Set1", "Set2", "Set3", "tab10", "tab20", "tab20b", "tab20c", "grey", "gist_grey", "gist_yerg", "Grays", "magma_r", "inferno_r", "plasma_r", "viridis_r", "cividis_r", "twilight_r", "twilight_shifted_r", "turbo_r", "berlin_r", "managua_r", "vanimo_r", "Blues_r", "BrBG_r", "BuGn_r", "BuPu_r", "CMRmap_r", "GnBu_r", "Greens_r", "Greys_r", "OrRd_r", "Oranges_r", "PRGn_r", "PiYG_r", "PuBu_r", "PuBuGn_r", "PuOr_r", "PuRd_r", "Purples_r", "RdBu_r", "RdGy_r", "RdPu_r", "RdYlBu_r", "RdYlGn_r", "Reds_r", "Spectral_r", "Wistia_r", "YlGn_r", "YlGnBu_r", "YlOrBr_r", "YlOrRd_r", "afmhot_r", "autumn_r", "binary_r", "bone_r", "brg_r", "bwr_r", "cool_r", "coolwarm_r", "copper_r", "cubehelix_r", "flag_r", "gist_earth_r", "gist_gray_r", "gist_heat_r", "gist_ncar_r", "gist_rainbow_r", "gist_stern_r", "gist_yarg_r", "gnuplot_r", "gnuplot2_r", "gray_r", "hot_r", "hsv_r", "jet_r", "nipy_spectral_r", "ocean_r", "pink_r", "prism_r", "rainbow_r", "seismic_r", "spring_r", "summer_r", "terrain_r", "winter_r", "Accent_r", "Dark2_r", "Paired_r", "Pastel1_r", "Pastel2_r", "Set1_r", "Set2_r", "Set3_r", "tab10_r", "tab20_r", "tab20b_r", "tab20c_r", "grey_r", "gist_grey_r", "gist_yerg_r", "Grays_r"], "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/colormap", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/colormap", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "detector_size": {"description": "Size of the detector in pixels", "default": [1280, 1080], "oneOf": [{"type": "array", "items": [{"type": "integer"}]}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/detector-size", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/detector-size", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "exposure_time": {"description": "Exposure time for image in milliseconds", "default": 10, "unit": "ms", "type": "number", "observable": true, "exclusiveMinimum": 0, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/exposure-time", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/exposure-time", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/exposure-time/change-event", "op": "observeproperty", "htv:methodName": "GET", "contentType": "application/json", "subprotocol": "sse"}]}, "frame_rate": {"description": "Frame rate of the camera (that you request images at, may not correspond if exposure time is high)", "default": 10, "unit": "s^-1", "type": "number", "observable": true, "maximum": 60, "exclusiveMinimum": 0, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/frame-rate", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/frame-rate", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/frame-rate/change-event", "op": "observeproperty", "htv:methodName": "GET", "contentType": "application/json", "subprotocol": "sse"}]}, "jpeg_image": {"description": "last captured image in JPEG format", "default": "", "readOnly": true, "oneOf": [{"type": "string", "contentEncoding": "base64", "contentMediaType": "image/jpeg"}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/jpeg-image", "op": "readproperty", "htv:methodName": "GET", "contentType": "image/jpeg"}]}, "json_image": {"description": "raw image data", "default": [0], "readOnly": true, "oneOf": [{"type": "array", "items": {"type": "array", "items": {"type": "integer", "minimum": 0, "maximum": 255}}}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/json-image", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}]}, "pixel_clock": {"description": "Pixel clock in MHz", "default": 10, "unit": "MHz", "type": "integer", "exclusiveMinimum": 0, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/pixel-clock", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/pixel-clock", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "png_image": {"description": "last captured image in PNG format", "default": "", "readOnly": true, "oneOf": [{"type": "string", "contentEncoding": "base64", "contentMediaType": "image/png"}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/png-image", "op": "readproperty", "htv:methodName": "GET", "contentType": "image/png"}]}, "state": {"description": "current state machine's state if state machine present, `None` indicates absence of state machine.State machine returned state is always a string even if specified as an Enum in the state machine.", "readOnly": true, "oneOf": [{"type": "string"}, {"type": "null"}], "observable": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/state", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/state/change-event", "op": "observeproperty", "htv:methodName": "GET", "contentType": "application/json", "subprotocol": "sse"}]}, "status": {"description": "current status of operation", "default": "", "readOnly": true, "type": "string", "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/status", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}]}, "temperature": {"description": "Camera temperature in degrees Celsius", "default": 0.0, "readOnly": true, "unit": "\u00b0C", "type": "number", "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/temperature", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}]}}, "actions": {"exit": {"synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/exit", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}, "get_thing_model": {"description": "generate the [Thing Model](https://www.w3.org/TR/wot-thing-description11/#introduction-tm) of the object.The model is a JSON that describes the object's properties, actions, events and their metadata, without theprotocol information. The model can be used by a client to understand the object's capabilities.", "input": {"properties": {"ignore_errors": {"default": false, "type": "boolean"}, "skip_names": {"default": [], "items": {"type": "string"}, "type": "array"}}, "type": "object"}, "synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/resources/wot-tm", "op": "invokeaction", "htv:methodName": "GET", "contentType": "application/json"}]}, "ping": {"description": "ping to see if it is alive. Successful when action succeeds with no return value andno timeout or exception raised on the client side.", "synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/ping", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}, "start_acquisition": {"description": "Starts a server side acquisition loop, automatically reading the latest images", "input": {"type": "object", "properties": {"number_of_frames": {"type": "integer", "minimum": 1}, "mode": {"type": "string", "enum": ["NORMAL", "BURST"]}, "jpeg_image_stream": {"type": "boolean", "default": false}, "png_image_stream": {"type": "boolean", "default": false}, "raw_image_stream": {"type": "boolean", "default": false}}, "additionalProperties": false}, "synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/start-acquisition", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}, "stop_acquisition": {"synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/stop-acquisition", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}}, "events": {"image_captured_event": {"description": "Event triggered when new image is captured", "data": {"type": "string", "format": "date-time"}, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/image-captured-event", "op": "subscribeevent", "htv:methodName": "GET", "contentType": "application/json", "subprotocol": "sse"}]}, "jpeg_image_stream": {"description": "Event triggered when new image is captured, JPEG is published here", "data": {"type": "string", "contentEncoding": "base64", "contentMediaType": "image/jpeg"}, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/image-stream/jpeg", "op": "subscribeevent", "htv:methodName": "GET", "contentType": "image/jpeg", "subprotocol": "sse"}]}, "json_image_stream": {"description": "Event triggered when new raw image is captured, JSON is published here", "data": {"type": "array", "items": {"type": "array", "items": {"type": "integer", "minimum": 0, "maximum": 255}}}, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/json-image-stream", "op": "subscribeevent", "htv:methodName": "GET", "contentType": "application/json", "subprotocol": "sse"}]}, "png_image_stream": {"description": "Event triggered when new image is captured, PNG is published here", "data": {"type": "string", "contentEncoding": "base64", "contentMediaType": "image/png"}, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/image-stream/png", "op": "subscribeevent", "htv:methodName": "GET", "contentType": "image/png", "subprotocol": "sse"}]}}, "forms": [{"href": "https://examples.hololinked.dev/simulations/camera/properties", "op": "readallproperties", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/properties", "op": "writeallproperties", "htv:methodName": "PUT", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/properties", "op": "readmultipleproperties", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/camera/properties", "op": "writemultipleproperties", "htv:methodName": "PATCH", "contentType": "application/json"}], "securityDefinitions": {"nosec": {"scheme": "nosec", "description": "currently no security scheme supported"}}, "security": ["nosec"], "links": [{"href": "https://control-panel.hololinked.dev/#https://examples.hololinked.dev/simulations/camera/resources/wot-td", "type": "text/html", "rel": "manifest"}, {"href": "https://github.com/hololinked-dev/hololinked", "type": "text/html", "rel": "service-doc"}, {"href": "https://github.com/VigneshVSV", "type": "text/html", "rel": "external"}, {"href": "https://gitlab.com/hololinked/examples/servers/simulations/camera-simulator", "type": "text/html", "rel": "external"}]}