Sennheiser Sound Control Protocol (SSC) Media control protocol TeamConnect Ceiling 2 Firmware Version 1.8.0 Sennheiser electronic GmbH & Co. KG Am Labor 1, 30900 Wedemark, Germany, www.sennheiser.com TI 1245 v1.8.
Table of Contents 1. Introduction.........................................................................................................................................6 2. Open Sound Control Overview.......................................................................................................... 7 2.1 JavaScript Object Notation Overview.........................................................................................7 3. Conventions......................................................
6.4 Secure Shell Transport/TCP/IP................................................................................................ 34 6.5 SSC Server Discovery................................................................................................................ 34 6.6 IEEE 802.15.4 / ZigBee / DECT................................................................................................. 35 6.7 Low-bandwidth serial infrared link.........................................................
7.39 "/device/location"....................................................................................................................... 48 7.40 "/device/language"..................................................................................................................... 48 7.41 "/device/date"............................................................................................................................. 48 7.42 "/device/restore"..........................................
7.88 "/beam/orientation/offset"....................................................................................................... 66 7.89 "/osc/state/auth/access"......................................................................................................... 66 7.90 "/osc/state/prettyprint"............................................................................................................ 66 7.91 "/osc/state/close"..............................................................
Introduction 1. Introduction Modern professional audio devices are designed as building blocks for large, complex systems.
Open Sound Control Overview 2. Open Sound Control Overview Open Sound Control (OSC) is a protocol developed at The Center For New Music and Audio Technology (CNMAT) at University of California, Berkeley. The OSC specification Version 1.1 is available from the Open Sound Control website at http://www.opensoundcontrol.org/. It is a very simple and very extensible protocol that can be implemented easily in embedded systems.
Conventions 3. Conventions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP14/RFC 2119, "Key words for use in RFCs to Indicate Requirement Levels". 3.
SSC Data Structure Specification 4. SSC Data Structure Specification 4.1 Applying JSON to the OSC device model OSC models the controlled device as a tree-shaped hierarchy of methods, with the method addresses constructed from the names of all the nodes in the hierarchy, written like a file path.
SSC Data Structure Specification For command and control applications it is desirable to access single properties independently. This can be achieved in JSON syntax by the simple convention, that all the properties of an SSC Server that are not mentioned in a JSON message are left unchanged.
SSC Data Structure Specification 4.3 SSC JSON Message Syntax 4.3.1 Elementary data types All SSC data is composed of the primitive JSON data types: • string: a sequence of zero or more Unicode characters in UTF-8 encoding, wrapped in double quotes, using backslash escapes. A character is represented as a single character string. Binary zero bytes can be included in a string using Unicode escape notation: "\u0000". • number: a number in conventional "scientific" notation. 0, 42, -23, 3.141259, 1.
SSC Data Structure Specification 4.3.3 SSC Addresses Every SSC Server implements a set of SSC Methods. SSC Methods are the potential destinations of SSC Messages received by the SSC Server, and correspond to each of the points of control that the application makes available. "Invoking" an SSC Method is analogous to a procedure call; it means supplying the method with arguments and causing the method’s effect to take place.
SSC Data Structure Specification 4.3.4 SSC Message Dispatching and Pattern Matching When an SSC Server receives an SSC Message, it must invoke the appropriate SSC Methods in its SSC Address Space based on the SSC Message’s SSC Address Patterns. This process is called dispatching the SSC Message to the SSC Methods that match its SSC Address Patterns. All the matching SSC Methods are invoked with the same argument data, namely, the SSC Arguments in the SSC Message.
SSC Data Structure Specification property addressed by the Method. The SSC Method Reply then contains the array value. An SSC Method Call with a JSON array as Method Argument is used to change the property addressed by the SSC Method.
SSC Data Structure Specification in the specified range. The range specification count MUST be equal to the number of value array elements.
SSC Data Structure Specification }}} }}} TX: { "presets": { "bank1": { "carriers": [ {"index":-1,"count":0} ] RX: { "presets": { "bank1": { "carriers": [ {"index":4,"count":0} ] Error handling If an SSC Method Call queries an array value, and specifies an array range that is not a subrange of the actual array value, then the SSC Server MUST adapt the specified range to fit the actual array range, in the following order: • adapt the requested array range index to the nearest valid actual array index, i.
SSC Data Structure Specification subscriptions, or authorisation). If the SSC Server keeps such state, it MUST be coupled to the SSC Session. When the SSC Session terminates, session state SHOULD be cleared (e.g., all SSC Method subscriptions of the client are cancelled). An SSC Session begins implicitly with the first SSC Method Call that a specific SSC Client sends to an SSC Server.
General SSC Address Schema 5. General SSC Address Schema Some parts of the SSC address space are reserved by this specification for purposes of meta-protocol information, generic device-independent features, and device capability description. The reserved parts of the address space are rooted in the addresses: /osc /device /internal The addresses and methods rooted in these reserved addresses are described in the following sections.
General SSC Address Schema RX: { "osc": { "error": [ { "out1": { "xlr23": [ 404, { "desc": "not found" }]}, "out2": { "xlr1": [ 307, { "desc": "not just now" }]} } ] }, "out1": { "xlr1": { "mute": true }} } If the request message violates the JSON syntax, the complete message cannot reliably be parsed and MUST NOT be partially parsed or executed, so that the SSC Server MUST send an error response (400, "not understood") relating to the complete message, not to any method address.
General SSC Address Schema 409 conflict 410 gone 413 request too long 414 request too complex 416 requested range not satisfiable 422 unprocessable entity (error in a complex method parameter) 423 locked 424 failed dependency 450 answer too long 454 parameter address not found (e.g., address in a subscription request) 5xx - Server Error 500 internal server error 501 not implemented 503 service unavailable 5.1.
General SSC Address Schema The method /osc/schema may be called with a null parameter. This is equivalent to querying for the root address schema. The SSC Client is able to enumerate the complete SSC Address Space of the SSC Server by starting with a query for the address root scheme { "osc": { "schema": null }}, and recursively querying all the SSC Addresses where the replies point to SSC containers. 5.1.
General SSC Address Schema Similar as described for /osc/schema, the SSC Server may format the Method Replies in bundled or unbundled representation of the SSC Addresses, and the SSC Client MUST be able to understand either. 5.1.7 Session-specific SSC Address Space - /osc/state SSC Methods under the /osc/state Address have results which are specific to the SSC Session between SSC Client and SSC Server.
General SSC Address Schema a subscription which is already subscribed by that client on that connection, then the SSC Server MUST treat this as if the existing subscription was silently terminated and immediately requested anew.
General SSC Address Schema all been requested for subscription individually. In this case all the subscription notifications would each contain the SSC Method Reply to a single subscribed address. Alternatively, the SSC Server MAY bundle subscription notifications which happen to be sent at the same time into a single notification.
General SSC Address Schema RX: { "out1": { "xlr2": { "level": 15 }}} ... RX: { "out1": { "xlr2": { "level": 3 }}} ... RX: { "out1": { "xlr2": { "level": 9 }}} ... RX: { "osc": { "error": [ { "out1": { "xlr2": { "level": [310, { "desc": "subscription terminates" } ] }}}] }} Subscribing to multiple addresses in a single request: TX: { "osc": { "state": { "subscribe": [ { "out1": { "xlr\*": { "level": null }}} ] }}} RX: { "osc": { "state": { "subscribe": [ { "out1": { "xlr1": { "level": null
General SSC Address Schema { }]}] } } ]} } Subscribing to array elements if array_ranges are supported (see also section "Accessing array ranges"): TX: { "osc": { "state": { "subscribe": [ { "device": { "log": [ {"index":-1, "count":1} ] } } ] } } } RX: { "osc": { "state": { "subscribe": [ { "device": { "log": [ {"index":-1, "count":1} ] } } ] } } } ... {"device”:{"log”: [{ "index”: 1016, "count”: 1 }, "turbogenerator trip signal blocked”] }} ...
General SSC Address Schema TX: RX: TX: RX: { { { { "osc": { "state": {"baseaddr":[{ "out1": {"xlr2": null}}] }} "osc": { "state": {"baseaddr":[{ "out1": {"xlr2": null}}] }} "gain": -10 } "gain": -10 } The SSC Client may query the server for the support of this feature by invoking /osc/feature/ baseaddr. 5.1.
General SSC Address Schema 5.1.15 SSC protocol feature reflection - /osc/feature This SSC Address Space is provided to enable the SSC Client to query the SSC Server whether optional protocol features are supported. In the spirit of extensibility, the SSC Server MUST send a reply with a value of false for each feature that is doesn’t know about, even if the feature didn´t exist at all when the server was implemented.
General SSC Address Schema 5.2.3 /device/identity/serial Read-only string. Unique product number, preferrably identical to the number on a product label. 5.2.4 /device/identity/vendor Read-only string: often "Sennheiser". 5.2.5 /device/name User-settable persistent device name. This name should be the preferred, and most convenient way for the customer to identify devices.
General SSC Address Schema 5.2.10 /device/network This address space allows remote configuration of network settings. Devices without network connectivity don’t need to implement the address space. Devices that don’t support IPv4 should not implement the IPv4 address space. /device/network/ether/interfaces Read-only array containing a list of all the user-relevant ethernet interface of the device. The names SHALL match the user-readable labeling of the connectors of the device.
General SSC Address Schema at /device/network/ether/macs. The interface index array MUST contain the indices of all physical interfaces which share the IPv6 configuration accessible by the following methods. /device/network/ipv6/ipaddr Read-only array of all the IPv6 addresses used on the specified physical interfaces in standard string notation. The interface specifiers for link-local IPv6 addresses MUST be stripped from the address because they have only internal relevance.
SSC Transport Layer Adaptations 6. SSC Transport Layer Adaptations The SSC data format as defined in the previous sections can be transported by different transport protocols, or stored in persistent files. This section specifies what transports are supported, and how the specific features of transport layers shall be applied to transporting SSC Messages. If an SSC Server supports more than a single transport for SSC, it SHALL behave consistently regardless of the transport used. 6.
SSC Transport Layer Adaptations SSC Messages are transported as HTTP request or reply contents. The MIME-Type of the contents MUST be specified as "application/json" in the HTTP header field "Content-Type". Using this MIME-Type eases integration of SSC-over-HTTP into Web-Apps using JSON libraries. The SSC Client MUST send SSC Messages to the SSC Server as the contents of HTTP POST requests. The Reply of the server is transported back as the contents of the HTTP response.
SSC Transport Layer Adaptations means of the server discovery protocol. The default port number is 80, same as for standard HTTP, or 443 for HTTPS. Rationale: The standard HTTP ports are least likely to be blocked by firewall setups. The SSC service can easily coexist with other HTTP services on the same device by utilising a separated HTTP URI base, so a separate port should not be needed.
SSC Transport Layer Adaptations 6.6 IEEE 802.15.4 / ZigBee / DECT One SSC Message per transport packet. 6.7 Low-bandwidth serial infrared link Tbd. Framing defined separately. 6.8 Byte-stream connections (serial interface etc.) SSC Messages are separated from the byte stream in the same way as used for TCP/IP connections. Physical parameters of the serial link are out of the scope of this specification. 6.9 Unidirectional low-bandwidth monitoring Tbd.
SSC Transport Layer Adaptations The relaxed rules allow these SSC transactions: TX: RX: TX: RX: TX: RX: { { { { { { "osc": { "state": { "baseaddr": "/out1/xlr2" }}} "osc": { "state": { "baseaddr": "/out1/xlr2" }}} "gain": -10 } "gain": -10 } "mute": null } "mute": false } to be entered interactively in this even more intuitive way: TX: RX: TX: RX: TX: RX: osc/state/baseaddr: "/out1/xlr2" { "osc": { "state": { "baseaddr": "/out1/xlr2" }}} gain: -10 { "gain": -10 } mute: { "mute": false } 6.
SSC Method List 7. SSC Method List 7.1 "/m/beam/elevation" The metering method returns the elevation of the beam in degree. • type: Number • const: false • writeable: false • max: 90 • min: 0 • subscr: true Example SSC subscr: {"osc":{"state":{"subscribe":[ {"m":{"beam":{"elevation":null}}}]}}} Example SSC get: {"m":{"beam":{"elevation":null}}} 7.2 "/m/beam/azimuth" The metering method returns the azimuth of the beam in degree.
SSC Method List • units: dBfs • max: 0 • min: -120 • subscr: true Example SSC subscr: {"osc":{"state":{"subscribe":[ {"m":{"ref1":{"rms":null}}}]}}} Example SSC get: {"m":{"ref1":{"rms":null}}} 7.5 "/device/identification/visual" If set to true the device will go to identification state. The LEDs will blink for 10 seconds. Parameter resets to false after the timeout of 10 seconds.
SSC Method List 7.8 "/device/button/description" Description for the container "device/button". • type: String • const: true • writeable: false Example SSC request: {"device":{"button":{"description":null}}} 7.9 "/device/identity/version" Returns the firmware version of the device. • type: String • const: true • writeable: false Example SSC request: {"device":{"identity":{"version":null}}} 7.10 "/device/identity/vendor" Vendor name of the product.
SSC Method List 7.14 "/device/update/progress" Returns the progress state of the device firmware update. • type: Number • const: false • writeable: false • max: 100 • min: 0 • subscr: true Example SSC subscr: {"osc":{"state":{"subscribe":[ {"device":{"update": {"progress":null}}}]}}} Example SSC request: {"device":{"update":{"progress":null}}} 7.15 "/device/update/error" Returns the result of the device firmware update.
SSC Method List • default: BLUE • const: false • writeable: true • options: 1. LIGHT GREEN 2. GREEN 3. BLUE 4. RED 5. YELLOW 6. ORANGE 7. CYAN 8. PINK • subscr: true Example SSC set: {"device":{"led":{"custom":{"color":"CYAN"}}}} Example SSC subscr: {"osc":{"state":{"subscribe":[ {"device":{"led":{"custom": {"color":null}}}}]}}} Example SSC request: {"device":{"led":{"custom":{"color":null}}}} Example SSC response: {"device":{"led":{"custom":{"color":"CYAN"}}}} 7.
SSC Method List 7.20 "/device/led/mic_on/color" User defined mic on color. The selected color will be shown for 5 seconds. • type: String • default: GREEN • const: false • writeable: true • options: 1. LIGHT GREEN 2. GREEN 3. BLUE 4. RED 5. YELLOW 6. ORANGE 7. CYAN 8.
SSC Method List Example SSC request: {"device":{"led":{"brightness":null}}} Example SSC response: {"device":{"led":{"brightness":5}}} 7.23 "/device/network/ether/macs" List of all MAC addresses. • type: String • const: true • writeable: false • count: 1 Example SSC request: {"device":{"network":{"ether":{"macs":null}}}} 7.24 "/device/network/ether/interfaces" List of IPv4 interface names.
SSC Method List Example SSC request: {"device":{"network":{"ipv4":{"manual_netmask":null}}}} Example SSC response: {"device":{"network":{"ipv4":{"manual_netmask":["255.255.254.0"]}}}} 7.27 "/device/network/ipv4/manual_ipaddr" List of IPv4 addresses which will be applied after setting "device/network/ipv4/auto" to "false". • type: String • default: ["192.168.178.23"] • const: false • writeable: true • count: 1 • subscr: true Example SSC set: {"device":{"network":{"ipv4":{"manual_ipaddr":["192.
SSC Method List Example SSC subscr: {"osc":{"state":{"subscribe":[ {"device":{"network":{"ipv4": {"ipaddr":null}}}}]}}} Example SSC request: {"device":{"network":{"ipv4":{"ipaddr":null}}}} 7.30 "/device/network/ipv4/interfaces" List of current IPv4 interfaces corresponding to the list of interface names in "device/network/ether/ interfaces".
SSC Method List Example SSC request: {"device":{"network":{"ipv4":{"auto":null}}}} Example SSC response: {"device":{"network":{"ipv4":{"auto":[true]}}}} 7.33 "/device/network/mdns" If set to true the SSC service and hostname of the device will be published via the MDNS protocol.
SSC Method List 7.36 "/device/system" User settable parameter which can be used freely to store device information. • type: String • default: System • const: false • writeable: true • length: 30 • subscr: true Example SSC set: {"device":{"system":"Device"}} Example SSC subscr: {"osc":{"state":{"subscribe":[ {"device":{"system":null}}]}}} Example SSC request: {"device":{"system":null}} Example SSC response: {"device":{"system":"Device"}} 7.
SSC Method List • subscr: true Example SSC set: {"device":{"name":"MIC2_A-1"}} Example SSC subscr: {"osc":{"state":{"subscribe":[ {"device":{"name":null}}]}}} Example SSC request: {"device":{"name":null}} Example SSC response: {"device":{"name":"MIC2_A-1"}} 7.39 "/device/location" This parameter can be used to define in which room and building the device is located. An UTF-8 string up to 100 characters is supported.
SSC Method List • type: String • const: false • writeable: true • options: 1. FACTORY_DEFAULTS 2. AUDIO_DEFAULTS 3. DANTE_FACTORY_DEFAULTS Example SSC set: {"device":{"restore":"FACTORY_DEFAULTS"}} Example SSC request: {"device":{"restore":null}} Example SSC response: {"device":{"restore":"FACTORY_DEFAULTS"}} 7.
SSC Method List Example SSC get: {"audio":{"equalizer":{"preset":null}}} Example SSC response: {"audio":{"equalizer":{"preset":"CUSTOM"}}} 7.46 "/audio/equalizer/custom" Gain settings for the 7-band graphical equalizer. The cut-off frequencies are: 125, 250, 500, 1000, 2000, 4000, 8000 Filter quality is Q=1.4142 • type: Number • default: [0,0,0,0,0,0,0] • const: false • writeable: true • count: 7 • units: dB • max: 8 • min: -8 • inc: 0.
SSC Method List RX: {"audio":{"exclusion":{"zones": [[0, 15, 0, 360], [20, 30, 240, 265], [10, 50, 110, 160], [10, 50, 200, 250], [10, 50, 290, 340]]}} If limits are set to values which do not meet constraint of minimal aperture the upper value will be adjusted automatically. If the available range is not sufficient the min value will also be adjusted.
SSC Method List • const: false • writeable: true • count: 5 • subscr: true Example SSC set: {"audio":{"exclusion": {"active":[true, false, false, false, false]}}} Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"exclusion":{"active":null}}}]}}} Example SSC get: {"audio":{"exclusion":{"active":null}}} Example SSC response: {"audio":{"exclusion": {"active":[true, false, false, false, false]}}} 7.
SSC Method List • inc: 5 • subscr: true Example SSC set: {"audio":{"exclusion_zone":{"azimuth":{"2":[0,120]}}}} Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"exclusion_zone": {"azimuth":{"2":null}}}}]}}} Example SSC request: {"audio":{"exclusion_zone":{"azimuth":{"2":null}}}} Example SSC response: {"audio":{"exclusion_zone":{"azimuth":{"2":[0,120]}}}} 7.50 "/audio/exclusion_zone/azimuth/1" HINT: This method is deprecated! Please use "/audio/exclusion/zones" instead.
SSC Method List Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"exclusion_zone": {"elevation":{"1":null}}}}]}}} Example SSC request: {"audio":{"exclusion_zone":{"elevation":{"1":null}}}} Example SSC response: {"audio":{"exclusion_zone":{"elevation":{"1":[0,60]}}}} 7.52 "/audio/noise_gate/threshold" Audio level threshold which triggers the Noise-Gate to open the audio output of the microphone channel. An implicit hysteresis is applied to this threshold for closing the channel.
SSC Method List • default: false • const: false • writeable: true • subscr: true Example SSC set: {"audio":{"noise_gate":{"active":true}}} Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"noise_gate": {"active":null}}}]}}} Example SSC request: {"audio":{"noise_gate":{"active":null}}} Example SSC response: {"audio":{"noise_gate":{"active":true}}} 7.55 "/audio/out1/label" Label that can be found on the housing for connector "Analog Out".
SSC Method List Example SSC response: {"audio":{"out1":{"attenuation":-10}}} 7.58 "/audio/out2/identity/version" Software version of the Dante interface. • type: String • const: true • writeable: false Example: SSC get: {"audio":{"out2":{"identity":{"version":null}}}} 7.59 "/audio/out2/network/ether/macs" List of Dante MAC addresses. • type: String • const: true • writeable: false • count: 2 Example: SSC get: {"audio":{"out2":{"network":{"ether":{"macs":null}}}}} 7.
SSC Method List • count: 2 • subscr: true Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"out2":{"net work":{"ipv4":{"netmask":null}}}}}]}}} Example SSC get: {"audio":{"out2":{"network":{"ipv4":{"netmask":null}}}}} 7.63 "/audio/out2/network/ipv4/manual_ipaddr" List of IPv4 addresses which will be applied after setting audio/out2/network/ipv4/auto to false • type: String • default: ["169.254.10.10","172.31.10.
SSC Method List • type: String • const: false • writeable: false • count: 2 • subscr: true Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"out2":{"network":{"ipv4":{"ipaddr":null}}}}}]}}} Example SSC get: {"audio":{"out2":{"network": {"ipv4":{"ipaddr":null}}}}} 7.66 "/audio/out2/network/ipv4/interfaces" List of current IPv4 interfaces corresponding to the list of interface names in audio/out2/network/ether/interfaces.
SSC Method List • subscr: true Example SSC set: {"audio":{"out2":{"network":{"ipv4":{"auto":[true,false]}}}}} Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"out2":{"network": {"ipv4":{"auto":null}}}}}]}}} Example SSC get: {"audio":{"out2":{"network":{"ipv4":{"auto":null}}}}} Example SSC response: {"audio":{"out2":{"network":{"ipv4":{"auto":[true,false]}}}}} 7.69 "/audio/out2/label" Label that can be found on the housing for connector audio/out2.
SSC Method List • default: [60, 80, 160, 200] • const: false • writeable: true • count: 1 • inc: 5 • subscr: true Example SSC set: {"audio":{"priority":{"zones":[60, 80, 160, 200]}}} Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"priority": {"zones":null}}}]}}} Example SSC request: {"audio":{"priority":{"zones":null}}} Example SSC response: {"audio":{"priority":{"zones":[60, 80, 160, 200]}}} 7.73 "/audio/priority/weights" Priority zone weights (1.
SSC Method List Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"priority": {"active":null}}}]}}} Example SSC request: {"audio":{"priority":{"active":null}}} Example SSC response: {"audio":{"priority":{"active":[false]}}} 7.75 "/audio/ref1/label" Label that can be found on the housing for connector "Dante Out". • type: String • const: true • writeable: false Example SSC request: {"audio":{"ref1":{"label":null}}} 7.76 "/audio/ref1/gain" AEC Reference gain.
SSC Method List 7.78 "/audio/ref1/desc" Description for container audio/ref1. • type: String • const: true • writeable: false Example SSC request: {"audio":{"ref1":{"desc":null}}} 7.79 "/audio/source_detection/threshold" Threshold for detecting the speaker depending on the room noise level. • type: String • default: normal_room • const: false • writeable: true • options: 1. quiet_room 2. normal_room 3.
SSC Method List • default: -20 • const: false • writeable: true • units: dB • max: -3 • min: -50 • subscr: true Example SSC set: {"audio":{"voice_lift":{"emergency_mute_threshold":-30}}} Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"voice_lift":{"emergency_ mute_threshold":null}}}]}}} Example SSC request: {"audio":{"voice_lift":{"emergency_mute_threshold":null}}} Example SSC response: {"audio":{"voice_lift":{"emergency_mute_threshold":-30}}} 7.
SSC Method List • type: Boolean • default: false • const: false • writeable: true • subscr: true Example SSC set: {"audio":{"mute":true}} Example SSC subscr: {"osc":{"state":{"subscribe":[ {"audio":{"mute":null}}]}}} Example SSC request: {"audio":{"mute":null}} Example SSC response: {"audio":{"mute":true}} 7.85 "/audio/installation_type" Type of installation of the microphone. The audio signal will be optimized for the choosen installation type.
SSC Method List Example SSC response: {"beam":{"orientation":{"visual":true}}} 7.87 "/beam/orientation/offset" All beam azimuth values can be adjusted by this offset to match the installation of the device to the room. • type: Number • default: 0 • const: false • writeable: true • options 1. 0 • subscr: true 2. 90 3. 180 4.
SSC Method List Example SSC request: {"osc":{"feature":{"timetag":null}}} 7.93 "/osc/feature/baseaddr" SSC interactive method address base is not supported. Returns false. Example SSC request: {"osc":{"feature":{"baseaddr":null}}} 7.94 "/osc/feature/subscription" SSC subscriptions are supported. Returns true. Example SSC request: {"osc":{"feature":{"subscription":null}}} 7.95 "/osc/feature/pattern" SSC message dispatching and pattern matching are supported. Returns "*?".
SSC String characters 8. SSC String characters • ASCII 32...126 excluding escaped characters ASCII 34(‘"’), ASCII 47(‘/’) and ASCII 92(‘\’). • No escaped primitives ‘\b’, ‘\f’, ‘\r’ ,’\n’, ‘\t’ • No unicode patterns ‘\uxxxx’ SSC Developer‘s guide for TeamConnect Ceiling 2 | 67/68
SSC Error List 9.