Sound Control Protocol for ew D1
Table Of Contents
- 1. Introduction
- 2. Open Sound Control Overview
- 3. Conventions
- 4. SSC Data Structure Specification
- 5. General SSC Address Schema
- 5.1 SSC Meta Information - /osc
- 5.1.1 SSC Protocol version - /osc/version
- 5.1.2 SSC error state - /osc/error
- 5.1.3 SSC transaction ID - /osc/xid
- 5.1.4 SSC Ping - /osc/ping
- 5.1.5 SSC Schema reflection - /osc/schema
- 5.1.6 SSC Method parameter range reflection - /osc/limits
- 5.1.7 Connection-specific SSC Address Space - /osc/state
- 5.1.8 SSC connection close - /osc/state/close
- 5.1.9 SSC subscriptions - /osc/state/subscribe
- 5.1.10 SSC reply output style - /osc/state/prettyprint
- 5.1.11 SSC interactive method address base - /osc/state/baseaddr
- 5.1.12 SSC timed method execution - /osc/timetag
- 5.1.13 SSC Method time stamps - /osc/timestamp
- 5.1.14 SSC Method Authorisation - /osc/tan
- 5.1.15 SSC protocol feature reflection - /osc/feature
- 5.2 Generic Device Information and Settings Address Space - /device
- 5.1 SSC Meta Information - /osc
- 6. SSC Transport Layer Adaptations
- 6.1 UDP/IP
- 6.2 TCP/IP
- 6.3 HTTP(S)/TCP/IP
- 6.4 Secure Shell Transport/TCP/IP
- 6.5 SSC Server Discovery
- 6.6 IEEE 802.15.4 / ZigBee / DECT
- 6.7 Low-bandwidth serial infrared link
- 6.8 Byte-stream connections (serial interface etc.)
- 6.9 Unidirectional low-bandwidth monitoring
- 6.10 Configuration files
- 6.11 Scripting files
- 7. Developer’s Guide for evolution wireless D1
- 8. SSC Method List
- 8.1 /interface/version
- 8.2 /osc/xid
- 8.3 /osc/version
- 8.4 /osc/error
- 8.5 /osc/schema
- 8.6 /osc/limits
- 8.7 /osc/feature/pattern
- 8.8 /osc/feature/baseaddr
- 8.9 /osc/feature/subscription
- 8.10 /osc/feature/timetag
- 8.11 /osc/state/subscribe
- 8.12 /osc/state/close
- 8.13 /osc/state/prettyprint
- 8.14 /device/name
- 8.15 /device/language
- 8.16 /device/identity/product
- 8.17 /device/identity/version
- 8.18 /device/identity/serial
- 8.19 /device/identity/vendor
- 8.20 /device/network/ether/interfaces
- 8.21 /device/network/ether/macs
- 8.22 /device/network/ipv4/interfaces
- 8.23 /device/network/ipv4/auto
- 8.24 /device/network/ipv4/ipaddr
- 8.25 /device/network/ipv4/netmask
- 8.26 /device/network/ipv4/gateway
- 8.27 /device/network/ipv4/fixed_ipaddr
- 8.28 /device/network/ipv4/fixed_netmask
- 8.29 /device/network/ipv4/fixed_gateway
- 8.30 /device/network/ipv6/interfaces
- 8.31 /device/network/ipv6/ipaddr
- 8.32 /device/state
- 8.33 /device/progress
- 8.34 /device/update/confirmation
- 8.35 /device/max_rf_power_Level
- 8.36 /device/reset
- 8.37 /device/factory_reset
- 8.38 /rx1/identify
- 8.39 /rx1/pair
- 8.40 /rx1/rf_quality
- 8.41 /rx1/rf_stack_active
- 8.42 /rx1/walktest
- 8.43 /rx1/mute_switch_active
- 8.44 /rx1/autolock
- 8.45 /rx1/warnings
- 8.46 /brightness
- 8.47 /mates/active
- 8.48 /mates/tx1/device_type
- 8.49 /mates/tx1/bat_type
- 8.50 /mates/tx1/bat_state
- 8.51 /mates/tx1/bat_gauge
- 8.52 /mates/tx1/bat_lifetime
- 8.53 /mates/tx1/bat_bars
- 8.54 /mates/tx1/bat_health
- 8.55 /mates/tx1/bat_cycles
- 8.56 /mates/tx1/switch1/label
- 8.57 /mates/tx1/switch1/state
- 8.58 /mates/tx1/acoustic
- 8.59 /mates/tx1/warnings
- 8.60 /audio/out1/label
- 8.61 /audio/out1/level_db
- 8.62 /audio/out1/gain_db
- 8.63 /audio/out1/type
- 8.64 /audio/equalizer/custom
- 8.65 /audio/equalizer/preset
- 8.66 /audio/de_esser/preset
- 8.67 /audio/agc/preset
- 8.68 /audio/low_cut
- 8.69 /audio/effects_reset
- 8.70 /get_master_subscriber
- 9. SSC Error List
- 9.1 1xx Informational
- 9.2 2xx Success
- 9.3 3xx Redirection
- 9.4 4xx Client Error
- 9.4.1 400 Bad Request
- 9.4.2 401 Unauthorized
- 9.4.3 403 Forbidden
- 9.4.4 404 Not Found
- 9.4.5 406 Not Acceptable (E.g. wrong type for parameter)
- 9.4.6 408 Request Timeout
- 9.4.7 409 Conflict
- 9.4.8 410 Gone
- 9.4.9 413 Request Entity Too Large
- 9.4.10 414 Request Too Complex
- 9.4.11 422 Unprocessable Entity
- 9.4.12 423 Locked
- 9.4.13 424 Failed Dependency
- 9.4.14 450 Answer Too Long
- 9.4.15 454 Parameter Address Not Found
- 9.5 5xx Server Error
SSC Developer‘s guide for evolution wireless D1 | 11/56
SSC Data Structure Specification
• string => boolean: Any non-empty string is true, an empty string is false.
• number => string: a string representation of the number suitable for interpretation by strtod() is
used.
• number => boolean: Number zero is false, everything else is true.
• boolean => string: true results in "true", false in an empty string "".
• boolean => number: true is 1, false is 0.
4.3.2 SSC Messages
A Message is the protocol unit of transmission. Any application that sends SSC Messages is an SSC
Client, any application that receives SSC Messages is an SSC Server.
An SSC Message MUST be sent as a single closed JSON form describing a JSON object. Extra
whitespace between the elements of the message MUST be ignored by the receiver.
This means that every SSC Message is enclosed in a pair of curly brackets { }.
The length of an SSC Message is variable. If the underlying transport protocol is packet-based, like
UDP/IP or ZigBee, then exactly one SSC Message SHOULD be contained in one transport packet. If
the underlying transport protocol is a byte-stream, like TCP/IP or a serial link, then SSC Messages
MUST be terminated, additionally to the grouping provided by the JSON syntax, with Message Sep-
arator Characters specific to the transport. The message separator characters MUST NOT be able to
occur unescaped in the non-ignored contents of the packet. Compare section 6.2, page 30.
4.3.3 SSC Addresses
Every SSC Server implements a set of SSC Methods. SSC Methods are the potential desti¬na-tions
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. The SSC Serv-
er MUST respond to each received SSC Message by sending an SSC Method Reply Message to the
originating SSC Client.
An SSC Server’s SSC Methods are arranged in a tree structure called an SSC Address Space. The
leaves of this tree are the SSC Methods and the branch nodes are called SSC Containers. An SSC
Server’s SSC Address Space MAY be dynamic; that is, its contents and shape MAY change over time.
Each SSC Method and each SSC Container other than the root of the tree MUST have a symbolic
name which MUST be composed entirely of printable ASCII characters other than the following:
" " space, ASCII 32
" double quote, ASCII 34
# number sign, ASCII 35
* asterisk, ASCII 42
, comma, ASCII 44
/ slash, ASCII 47
: colon, ASCII 58
? question mark, ASCII 63
[ open bracket, ASCII 91
] close bracket, ASCII 93
{ open curly brace, ASCII 123
} close curly brace, ASCII 125
The SSC Address of an SSC Method is a symbolic name giving the full path to the SSC Method in the
SSC Address Space, starting from the root of the tree. An SSC Method’s SSC Address begins with
the character "/" (forward slash), followed by the names of all the containers, in order, along the path
from the root of the tree to the SSC Method, separated by forward slash characters, followed by the
name of the SSC Method. The syntax of SSC Addresses was chosen to match the syntax of URLs. The
SSC address syntax SHOULD be used in documentation, but it SHOULD NOT be used as an argument