Sound Control Protocol for ew D1

Table Of Contents
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