{"context": ["https://www.w3.org/2022/wot/td/v1.1"], "id": "simulations/spectrometer", "title": "OceanOpticsSpectrometer", "description": "OceanOptics spectrometers Test Thing", "properties": {"background_correction": {"description": "set True for Seabreeze internal black level correction", "oneOf": [{"oneOf": [{"type": "string"}], "enum": ["AUTO", "CUSTOM", null]}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/background-correction", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/background-correction", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "custom_background_intensity": {"oneOf": [{"type": "array", "items": {"oneOf": [{"type": "number"}, {"type": "integer"}]}}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/custom-background-intensity", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/custom-background-intensity", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "integration_time": {"description": "integration time of measurement in milliseconds", "default": 1000, "type": "number", "observable": true, "minimum": 0.001, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/integration-time", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/integration-time", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/integration-time/change-event", "op": "observeproperty", "htv:methodName": "GET", "contentType": "application/json", "subprotocol": "sse"}]}, "last_intensity": {"description": "last measurement intensity (in arbitrary units)", "oneOf": [{"type": "object", "properties": {"value": {"type": "array", "items": {"type": "number"}}, "timestamp": {"type": "string"}}}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/last-intensity", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/last-intensity", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "max_intensity": {"description": "the maximum intensity that can be returned by the spectrometer in (a.u.). It's possible that the spectrometer saturates already at lower values.", "default": 0.0, "readOnly": true, "type": "number", "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/max-intensity", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}]}, "model": {"description": "model of the connected spectrometer", "readOnly": true, "oneOf": [{"type": "string"}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/model", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}]}, "nonlinearity_correction": {"description": "automatic correction of non linearity in detector CCD", "default": false, "type": "boolean", "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/nonlinearity-correction", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/nonlinearity-correction", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "pixel_count": {"description": "number of points in wavelength, set this value to change", "default": 1024, "type": "integer", "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/pixel-count", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/pixel-count", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "reference_intensity": {"description": "reference intensity to overlap in background", "oneOf": [{"type": "object", "properties": {"value": {"type": "array", "items": {"type": "number"}}, "timestamp": {"type": "string"}}}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/reference-intensity", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/reference-intensity", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "serial_number": {"description": "serial number of the spectrometer to connect/or connected", "oneOf": [{"type": "string"}, {"type": "null"}], "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/serial-number", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/serial-number", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}]}, "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/spectrometer/state", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/state/change-event", "op": "observeproperty", "htv:methodName": "GET", "contentType": "application/json", "subprotocol": "sse"}]}, "status": {"description": "descriptive status of current operation", "default": "", "readOnly": true, "type": "string", "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/status", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}]}, "trigger_mode": {"description": "0 = normal/free running, 1 = Software trigger, 2 = Ext. Trigger Level,3 = Ext. Trigger Synchro/ Shutter mode, 4 = Ext. Trigger Edge", "default": 0, "type": "integer", "observable": true, "enum": [0, 1, 2, 3, 4], "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/trigger-mode", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/trigger-mode", "op": "writeproperty", "htv:methodName": "PUT", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/trigger-mode/change-event", "op": "observeproperty", "htv:methodName": "GET", "contentType": "application/json", "subprotocol": "sse"}]}, "wavelengths": {"description": "wavelength bins of measurement, DATA SCHEMA IS WRONG, use skip data validation on node-wot to fetch value", "default": [], "readOnly": true, "type": "array", "items": {"oneOf": [{"type": "number"}, {"type": "integer"}]}, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/wavelengths", "op": "readproperty", "htv:methodName": "GET", "contentType": "application/json"}]}}, "actions": {"connect": {"input": {"type": "object", "properties": {"serial_number": {"type": "string"}, "trigger_mode": {"type": "integer"}, "integration_time": {"type": "number"}}, "additionalProperties": false}, "synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/connect", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}, "disconnect": {"synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/disconnect", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}, "exit": {"synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/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/spectrometer/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/spectrometer/ping", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}, "reset_fault": {"synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/reset-fault", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}, "start_acquisition": {"synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/start-acquisition", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}, "start_acquisition_single": {"synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/start-acquisition-single", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}, "stop_acquisition": {"synchronous": true, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/stop-acquisition", "op": "invokeaction", "htv:methodName": "POST", "contentType": "application/json"}]}}, "events": {"intensity_measurement_event": {"description": "event generated on measurement of intensity, max 30 per second even if measurement is faster.", "data": {"type": "object", "properties": {"value": {"type": "array", "items": {"type": "number"}}, "timestamp": {"type": "string"}}}, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/intensity-measurement-event", "op": "subscribeevent", "htv:methodName": "GET", "contentType": "application/json", "subprotocol": "sse"}]}}, "forms": [{"href": "https://examples.hololinked.dev/simulations/spectrometer/properties", "op": "readallproperties", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/properties", "op": "writeallproperties", "htv:methodName": "PUT", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/properties", "op": "readmultipleproperties", "htv:methodName": "GET", "contentType": "application/json"}, {"href": "https://examples.hololinked.dev/simulations/spectrometer/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/spectrometer/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/spectrometer-simulator", "type": "text/html", "rel": "external"}]}