Specifications
B&K Components Device Interface Protocol (BKC-DIP) Specification
Version 2.01.00
Updated 01/24/07
Page 10 of 54
New Features of BKC-DIP V2.0 vs. V1.0
Several new features have been added to the BKC-DIP protocol. For those familiar with BKC-
DIP V1.0, this section concisely lists all the new features now available. For those just becoming
acquainted with BKC-DIP, you may want to note which features are not available in the B&K
Components devices with V1.0 BKC-DIP implementations.
NOTE: If using this document with a BKC-DIP V1.0 device, please remember that the following
features do not apply. This will NOT be explicitly noted throughout the remainder of the
documentation.
The changes from protocol V1.0 to V2.0 are listed below.
8 alpha-numeric character tags
The optional tag which can be appended to the receive ID with a colon, “:” has been increased to 8
alpha-numeric characters as opposed to 4.
Changes to the Parser Allowing “ , : ; ( ) in Strings
Perhaps the most important change to BKC-DIP V2.0 from V1.0 is the augmented support for
strings. In previous versions of BKC-DIP specific characters could only appear as protocol syntax
and were not allowed in any other context, specifically strings.
In adding the new Serial Macro feature (see the Macro specifier section below), it was desirable
to allow BKC-DIP commands to be emitted. This implied that entire BKC-DIP commands needed
to be supported as a valid BKC-DIP string, which further implied that BKC-DIP delimiters (i.e. “ ,
: ; ( ) ) NOT be interpeted inside double quoted strings.
This further implied the addition of the escape character “\”, backslash to allow double quotes and
the escape character itself to be embedded into strings.
A Serial Macro Set command follows as an example:
(0, S, M0=0, 0=1, 1=C4, 4=”(0:1234,S,P1=0,0=\”Title\”;)”;)
Notice the BKC-DIP command (0:1234,S,P1=0,0=”Title”;) as a string in the previous example.
Parser Synchronization
In V1.0 versions of BKC-DIP, any time the parser received an opening parenthesis, “(“, the parser
state machine was reset. This implied that no matter what characters had previously be sent to the
BKC-DIP device, sending a ( would begin a new BKC-DIP command.
The same still holds true with one very important exception: double quoted strings (which are
delimited by the ASCII character “, 34). The V2.0 BKC-DIP parser holds state regarding finding
a double quote character. When the parser finds a double quote it will not interpret any character
until it finds a matching unescaped double quote. This implies that the parser could get into a state
that a open parenthesis would not reset, namely if the parser is in the midst of a quoted string. The
following examples will illustrate.
Let’s assume that a user wanted to set Zone 1 Preset 0’s title to extremely clever and descriptive
word “Title”. The user began typing the following:
(0, S, P1=0, 0=”Pit










