Camera IP Setting Command .............................34
Revision History ...................................................35
2
Page 3
VISCA1) Commands
Use of control software based upon this command list
may cause malfunction or damage to hardware and
software. We are not liable for any such damage.
Overview of VISCA
In VISCA, the side outputting commands, for example,
a computer, is called the controller, while the side
receiving the commands, such as a BRC-X1000/H800/
2)
H780
seven peripheral devices including this unit can be
connected to a single controller using communication
conforming to the RS-422 standard. The parameters of
RS-422 are as follows.
• Communication speed: 9600 bps/38400 bps
• Data bits : 8
• Start bit : 1
• Stop bit : 1
• Non parity
Flow control using XON/XOFF and RTS/CTS, etc., is
not supported.
, is called the peripheral device. In VISCA, up to
Note
In the same network, all the camera address selectors
should be set to “0” (automatic setting) or all the
selectors should be manually set to “1” to “7”. Do not
mix the automatic and manual settings.
Each VISCA equipment has VISCA IN and VISCA
OUT connectors.
Set the DTR input (the S output of the controller) of
VISCA IN to H when controlling VISCA equipment
from the controller.
Fig. 1 VISCA network configuration
VISCA Controller
VISCA Equipment
IN
OUT
IN
Peripheral devices are connected in a daisy chain. As
shown in Fig. 1, the actual internal connection is a onedirection ring, so that messages return to the controller
via the peripheral devices. The devices on the network
are assigned addresses.
The address of the controller is fixed at 0.
The addresses of peripheral devices are as follows.
When the camera address selector is set to 0
(automatic setting mode)
The peripheral devices are assigned to the addresses, 1,
2, 3… in the connected order, starting from the one
connected nearest to the controller. These addresses are
set when the controller sends address commands during
initialization of the network.
When the camera address selector is set to 1
through 7 (manual setting mode)
The addresses of the peripheral devices will be set to the
pre-selected numbers. Within a single system, the same
number can be used only once. If an address switch is
used in a setting other than 0, set the address switch on
this connected unit to different numbers.
1) VISCA is a protocol developed by Sony for controlling a consumer’s camcorder. “VISCA” is a trademark of Sony Corporation.
2) The product name of this unit, “Color video camera BRC-X1000/H800/H780” is referred to as “the unit” or “color video camera” in
this document. BRC-H780 is the model on sale in China.
3
Page 4
VISCA Communication
Specifications
VISCA packet structure
The basic unit of VISCA communication is called a
packet (Fig. 2). The first byte of the packet is called the
header and comprises the sender’s and receiver’s
addresses. For example, the header of the packet sent to
the unit (address 1) from the controller (address 0) is
81H in hexadecimals. Packet sent to the unit (address 2)
Packet (3 to 16 bytes)
is 82H. In the command list, as the header is 8X, input
the address of the unit to X. The header of the reply
packet from the unit assigned address 1 is 90H. The
packet from the unit assigned address 2 is A0H.
Some of the setting commands can be sent to all devices
at one time (broadcast) *.
In the case of broadcast, the header should be 88H in
hexadecimal.
When the terminator is FFH, it signifies the end of the
packet.
* The broadcast function is not available for VISCA over IP.
HeaderTerminator
Byte 1Byte 2Byte 3
Sender’s
10
Bit 7
(MSB)
Note
address
Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Receiver’s address
Message (1 to 14 bytes)
(LSB)
Fig. 2 Packet structure
Fig. 2 shows the packet structure, while Fig. 3 shows the
actual waveform. Data flow will take place with the LSB
first.
Start
Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5
bit
(LSB)(MSB)
1 byte
FF
11111111
Bit 7
Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
(MSB)
Bit 6 Bit 7
Stop
bit.
(LSB)
Fig. 3 Actual waveform for 1 byte.
4
Page 5
Timing Chart
As VISCA command processing can only be carried out
a maximum of one time in a Vertical (V) cycle, it takes
maximum 4V-cycle time for an ACK/Completion to be
returned.
If the Command and ACK/Completion communication
time is shorter than 1V-cycle time, a command can be
received at every 1V cycle. From this point, if two or
more commands are to be sent successively, wait for a
reply command (an ACK or error message for a general
command, and an inquiry packet for an inquiry
command) of the previous command to be received
before sending the next command.
Returned by the unit when it receives a command. No
ACK message is returned for an inquiry.
• Completion message
Returned by the unit when execution of commands or
inquiries is completed. In the case of inquiry
commands, reply data for the inquiry is contained
after the 3rd byte of the packet. If the ACK message is
omitted, the socket number will contain 0.
Reply Packet Note
Ack X0 4Y FF Y = socket number
Completion (Commands)X0 5Y FF Y = socket number
Completion (Inquiries)X0 5Y ... FF Y = socket number
X = 9 to F: Address of the unit + 8
* Locked to “X = 9” for VISCA over IP.
*
General commands
Command
RxD
TxD
Within 4V
ACK Completion
Inquiry commands
Within 4V
Command
RxD
TxD
Inquiry Packet
16 Bytes
Command and inquiry
• Command
Sends operational commands to the unit.
• Inquiry
Used for inquiring about the current state of the unit.
For actual values to be sent, see Command Lists or
Inquiry Command Lists.
2)
= category code
RR
• Error message
When a command or inquiry command could not be
executed or failed, an error message is returned
instead of a completion message.
Error Packet Description
X0 6Y 01 FF Message length error
X0 6Y 02 FF Syntax Error
X0 6Y 03 FF Command buffer full
X0 6Y 04 FF Command canceled
X0 6Y 05 FF No socket (to be canceled)
X0 6Y 41 FF Command not executable
X = 9 to F: Address of the unit + 8, Y = socket number
* Locked to “X = 9” for VISCA over IP.
Socket number
When command messages are sent to the unit, it is
normal to send the next command message after
receiving the completion message or error message.
However, to deal with advanced uses, the unit has two
sets of buffers (memories) for commands, so that up to
two commands including the commands currently being
executed can be received. (There is a wait longer than a
1V cycle between commands.) However, depending on
the command, it may be necessary to wait until the first
command is completed due to system reasons. When the
unit receives commands, it notifies which command
buffer was used using the socket number of ACK
message.
As the completion message or error message also has a
socket number, it indicates which command has ended.
Even when two command buffers are being used, the
unit management command and some inquiry messages
can be executed.
The ACK message is not returned for these commands
and inquiries, and only the completion message of
socket number 0 is returned.
*
5
Page 6
Command execution cancel
To cancel a command which has already been sent, send
a Cancel command as the next command. To cancel one
of two commands which have been sent, use the cancel
message.
VISCA interface command
• IF_Clear
Clears the command buffer in the unit. When cleared,
the operation currently being executed is not
guaranteed.
Cancel Packet Note
Cancel8X 2Y FF Y = socket number
X = 1 to 7: Address of the unit, Y = socket number
* Locked to “X = 1” for VISCA over IP.
*
Error message “Command cancelled” will be returned
for this command, but this is not a fault. It indicates that
the command has been cancelled.
Note
To cancel a command when VISCA PAN-TILT Drive
(page 17) is being executed, wait at least 200 msec after
executing. Then send a cancel command to ensure that
PAN-TILT Drive stops effectively.
To execute a PAN-TILT Drive command again, wait at
least 200 msec after the message “Command cancelled”
has appeared.
VISCA Device Setting Command
Before starting control of the unit, make sure to send the
Address command and IF_Clear command using the
broadcast.
For VISCA network administration
• Address*
Sets an address of a peripheral device. Use when
initializing the network, and receiving the following
network change message.
* Not available for VISCA over IP.
Command PacketReply PacketNote
IF_Clear8X 01 00 01 FFX0 50 FF
IF_Clear (broadcast)
X = 1 to 7: Address of the unit (For inquiry packet)
X = 9 to F: Address of the unit +8 (For reply packet)
*1 The broadcast function is not available for VISCA over IP.
*2 Locked to “X = 1” for VISCA over IP.
*3 Locked to “X = 9” for VISCA over IP.
*
1
88 01 00 01 FF88 01 00 01 FF
*2
*3
VISCA interface and inquiry
• CAM_VersionInq
Returns information on the VISCA interface.
InquiryInquiry Packet Reply PacketDescription
CAM_VersionInq 8X 09 00 02 FF Y0 50 GG GG HH HH JJ JJ KK FF GGGG = Vender ID
0001: Sony
HHHH = Model ID
0519: BRC-X1000
051A: BRC-H800
051B: BRC-H780
JJJJ = ROM revision
KK = Maximum socket # (02)
X = 1 to 7: Address of the unit (For inquiry packet)
X = 9 to F: Address of the unit +8 (For reply packet)
*1 Locked to “X = 1” for VISCA over IP.
*2 Locked to “X = 9” for VISCA over IP.
*1
*2
• Network Change*
Sent from the peripheral device to the controller when
a device is removed from or added to the network. The
address must be re-set when this message is received.
* Not available for VISCA over IP.
Packet Note
Address 88 30 01 FF Always broadcasted.
Network Change X0 38 FF
X = 9 to F: Address of the unit + 8
6
Page 7
VISCA Command/ACK Protocol
CommandCommand Message Reply MessageComments
General Command81 01 04 38 02 FF
(Example)
81 01 04 38 FF
(Example)
81 01 04 38 02 FF
(Example)
81 01 04 08 02 FF
(Example)
Inquiry Command81 09 04 38 FF
(Example)
81 09 05 38 FF
(Example)
Address Set
IF_Clear
(Broadcast)
*1
*1
88 30 01 FF88 30 02 FFThe device address number plus 1 is returned.
88 01 00 01 FF88 01 00 01 FFThe same command is returned.
IF_Clear (For x)8x 01 00 01 FFy0 50 FF (Completion)ACK is not returned for this command.
Command Cancel8x 2p FFy0 6p 04 FF
*1 Not available for VISCA over IP.
*2 When the camera address selector is set to an address other than 0, the value x in 88 30 0x FF will be variable.
90 41 FF (ACK)+90 51 FF
(Completion)
Returns ACK when a command has been accepted, or
Completion when a command has been executed.
90 42 FF 90 52 FF
90 60 02 FF
(Syntax Error)
90 60 03 FF
(Command Buffer Full)
90 61 41 FF
(Command Not Executable)
Accepted a command which is not supported or a command
lacking parameters.
Could not accept the command as there are two commands
currently being executed.
Could not execute the command in the current mode.
90 62 41 FF
90 50 02 FF (Completion) Does not return ACK.
90 60 02 FF
Accepted an incompatible command.
(Syntax Error)
Returned when the command of the socket specified is
(Command Cancelled)
cancelled. Completion for the command cancelled is not
returned.
y0 6p 04 FF
(No Socket)
Returned when the command of the specified socket has
already been completed or when the socket number specified
is wrong.
*2
Do not transmit the command (except Address Set, IF_Clear, Command Cancel) when any menu is displayed on the
screen. If displayed, clear the menu first using MENU Display OFF (page 18) Command, and then proceed.
7
Page 8
VISCA Camera-Issued Messages
ACK/Completion Messages
CommandCommand MessageComments
ACKz0 4y FF
(y: Socket No.)
Completionz0 5y FF
(y: Socket No.)
z = Device address + 8 (Locked to “z = 9” for VISCA over IP.)
Error Messages
CommandCommand MessageComments
Syntax Errorz0 60 02 FFReturned when the command format is different or when a command with
Command Buffer Fullz0 60 03 FFCould not accept a command that is received while two commands are
Command Cancelledz0 6y 04 FF
(y: Socket No.)
No Socketz0 6y 05 FF
(y: Socket No.)
Command Not Executablez0 6y 41 FF
(y: Socket No.)
z = Device address + 8 (Locked to “z = 9” for VISCA over IP.)
Returned when the command is accepted.
Returned when the command has been executed.
illegal command parameters is accepted.
currently being executed (two sockets have been used).
Returned when a command which is being executed in a socket specified by
the cancel command is cancelled. The completion message for the command
is not returned.
Returned when no command is executed in a socket specified by the cancel
command, or when an invalid socket number is specified.
Returned when a command cannot be executed due to current conditions.
For example, when a command for controlling the manual focus is received
during the auto focus mode.
Network Change Message*
CommandCommand MessageComments
Network Changez0 38 FFIssued when power is supplied to the camera.
* Not available for VISCA over IP.
8
Page 9
VISCA over IP
Overview of VISCA over IP
With VISCA over IP function, you can control the
camera using VISCA on a controller equipped with IP
communication capabilities via LAN. You can connect
up to 5 controllers simultaneously on the network.
VISCA Controller
VISCA Equipment
IN
OUT
The communication specifications of VISCA over IP are
as follows:
In these instructions, the device outputting commands,
for example, a computer, is called the controller, and the
device receiving the command, such as a BRC series
camera, is called a peripheral device.
The controllers and peripheral devices are connected to
a one-direction ring conforming to RS-422 standards.
On the IP communication connection, the controllers
and peripheral devices are connected by bus through a
LAN.
IN
OUT
IN
OUT
RS422 connection
VISCA Equipment
VISCA Controller
VISCA Equipment
VISCA Controller
VISCA Equipment
Network
IP communication connection
While the IP communication connection, the address of
each device cannot be set in the VISCA message as it is
because the controllers and peripheral devices that are
connected simultaneously are increased. In this case,
addresses of the controllers and peripheral devices that
are set in the VISCA message are locked to 0 (for the
controller) or 1 (for the peripheral device).
9
Page 10
Due to the nature of the IP communication, the use of
some VISCA functions are limited. For details, see
“Camera IP Setting Command” on page 34.
For how to set an IP address of the camera, refer to
“Camera IP Setting Command” on page 34.
Communication method of VISCA
over IP
Communication method
VISCA over IP can process the VISCA communication
between the controllers and peripheral devices using the
messages that can be identified on the LAN, and sends/
receives them. Because of this, VISCA over IP is not
concerned about the contents of the communication
between the controllers and peripheral devices.
However, the VISCA communication sequence is
different, depending on the types, as follows.
VISCA device setting command
This is the device setting command from the controller
to the peripheral device as follows.
• Address
Sets the address of the peripheral device, and does not
return a reply to the controller. While using VISCA
over IP, the address command is not sent from the
controller because a Network Change command from
the peripheral device that triggers sending command is
not issued.
•IF_Clear
Sends the reply message to the controller after
clearing, without using VISCA socket.
• CAM_VersionInq
Sends the reply message to the controller, without
using VISCA socket.
Format
These are the specifications of the message header (8
bytes) and payload (1 to 16 bytes).
VISCA command
This is a command from the controller to the peripheral
device.
When the peripheral device receives this command,
ACK is returned. After completing command
processing, a completion notice is returned. This
command uses the socket of VISCA. The order of
completion notices may be changed if the multiple
commands are sent to the same peripheral device.
VISCA inquiry
This is an inquiry from the controller to the peripheral
device.
When the peripheral device receives this type of
command, the reply for the inquiry is returned. This
command does not use the socket of VISCA. The order
of the replies is not changed if a multiple commands are
sent.
VISCA reply
This is an ACK, completion notice, reply, or error reply
from the peripheral device to the controller.
The classification for sending messages from the
peripheral device to the controller is common.
Message (9 to 24 bytes)
Message header
Byte 0 Byte 1 Byte 2 Byte 3
Payload type
Note
Payload length
Payload (1 to 16 bytes)
Byte 8 Byte 9
Byte 4 Byte 5 Byte 6 Byte 7
Sequence number
Message structure
The actual LAN out method is big-endian, LSB first.
10
Page 11
Payload type
Stores the value (Byte 0 and Byte 1) of the following table on the payload division.
NameValue (Byte 0)Value (Byte 1)Description
VISCA command0x010x00Stores the VISCA command.
VISCA inquiry0x010x10Stores the VISCA inquiry.
VISCA reply0x010x11Stores the reply for the VISCA command and VISCA
inquiry, or VISCA device setting command.
VISCA device
setting command
Control command0x020x00Stores the control command.
Control reply0x020x01Stores the reply for the control command.
0x010x20Stores the VISCA device setting command.
Payload length
Stores the number of bytes (1 to 16) of data is stored on
the payload.
Example: When the payload length is 16 bytes.
Byte 2: 0x00
Byte 3: 0x10
Sequence number
The controller stores the sequence number that is added
every time a message is sent. If the sequence number
reaches the limit, next value will be 0. The peripheral
device saves the sequence number in the message from
the controller, and stores the sequence number of the
received message corresponding to the message sent to
the controller.
Payload
Depending on the payload type, the following are stored.
• VISCA command
Stores the packet of the VISCA command.
• VISCA inquiry
Stores the packet of VISCA message.
• VISCA reply
Stores the reply for the command or inquiry (ACK
message, completion message, or error message).
• VISCA device setting command
Stores the packet of the VISCA device setting
command.
• Control command
The following are stored on the payload division of the
control command.
NameValueDescription
RESET0x01Resets the sequence number
to 0. The value that was set as
the sequence number is
ignored.
ERROR0x0Fyyyy=01: Abnormality in the
sequence number.
yy=02: Abnormality in the
message (message type)
• Controlled reply
The following are stored on the payload division of the
reply for the control command.
MessageValueDescription
ACK0x01Reply for RESET.
11
Page 12
Delivery confirmation
VISCA over IP uses UDP as a communications protocol of the transport layer. Delivery of messages is not guaranteed
for the UDP communication. Delivery confirmation and retransmission should be performed on the application.
Normally, when the controller sends a message to the peripheral device, the controller sends the new message after
receiving the reply for the last message. You can confirm delivery of messages by managing the time-out waiting for a
reply message sent.
If time out occurs on the controller, loss of one of the following messages is considered:
• Command
• ACK message
• Completion message for the command
• Inquiry
• Reply message for the inquiry
• Error message
• Inquiry of the VISCA device setting command
• Reply message of the VISCA device setting command
If time out occurs on the controller, you can infer the lost message and state of the peripheral device by retransmitting
the message using the same sequence number. The following table shows the received message and status by
retransmission of the lost message, and the reference of correspondence after retransmission for each case. (Except for
the case that a time out occurs for reasons other than loss of message.)
Lost messageReceived message for
retransmission
CommandACK messageCommand is performed by
ACK messageERROR (Abnormality in
Completion message
for the command
InquiryReply messageInquiry is performed by
Reply message for the
inquiry
Error messageError messageCommand is not performed.
Inquiry of the VISCA
device setting
command
Reply message of the
VISCA device setting
command
the sequence number.)
ERROR (Abnormality in
the sequence number.)
ERROR (Abnormality in
the sequence number.)
Reply message of the
VISCA device setting
command
ERROR (Abnormality in
the sequence number.)
Status after
retransmission
retransmission.
Command has been
performed.
If only the ACK message is
lost, the completion message
returns.
Command has been
performed.
retransmission.
Inquiry has been performed.If the result by the reply message is needed,
If the error cause eliminates,
normal reply is returns (ACK,
reply message).
Inquiry has been performed
by retransmission.
Inquiry has been performed.If the result by the reply message is needed,
Correspondence after retransmission
Continue processing.
If the result by the completion message is needed,
retransmit by updating the sequence number.
If the result by the completion message is needed,
retransmit by updating the sequence number.
Continue processing.
retransmit by updating the sequence number.
Eliminate the error cause. If normal reply returns,
continue processing.
Continue processing.
retransmit by updating the sequence number.
The BRC series camera has 2 buffers (memories) for the command to deal with advanced uses. When using VISCA
over IP, up to 2 commands (including the current command) can be received. Depending on the message from the
controller to the peripheral device, there are some messages that do not need to guarantee delivery. However, the
peripheral device receives commands from multiple controllers while connected to VISCA over IP. If the multiple
commands are send without waiting for the reply, the possibility of non-execution of the command and errors due to
buffer overflow become high, because of limitations of order to receive commands or execution interval of command.
It may cause efficiency to be reduced substantially.
12
Page 13
Timing chart
ControllerPeripheral device
Time out
Timing chart (loss of command)
ControllerPeripheral device
Time out
Command seq=100
Command seq=100
Completion seq=100
Command seq=100
Completion seq=100
ACK seq=100
ACK seq=100
Locking the controller’s address of the VISCA
message to 0.
For the same reason as the peripheral device’s address,
the controller’s address of VISCA command is locked to
0. If the controller’s address is set to other than 0, the
peripheral device works without hindrance, and the
reply address from the peripheral device is always set to
0.
Prohibition of specifying the broadcast address
for the VISCA message
Do not use the broadcast address because it requires the
serial communication. Operations under the broadcast
address is set to the command are not guaranteed.
Prohibition of the address for VISCA device
setting command
Do not use this command because it requires the serial
communication. Operations under the address command
is sent are not guaranteed.
VISCA Network Change command is not
supported
This cannot be issued because it requires the serial
communication.
Command seq=100
ERROR
(abnormality in the sequence number)
Command seq=101
Completion seq=101
Timing chart (loss of ACK or completion message)
seq=100
ACK seq=101
Limitation
The following are limitations for VISCA over IP as
compared with the VISCA specifications.
Locking the peripheral device’s address of the
VISCA message to 1
VISCA over IP cannot reflect each address to the
address of the VISCA message because up to 112
peripheral devices and 5 controllers are connected.
Because of this, the peripheral device’s address of
VISCA command is locked to 1 when using VISCA
over IP. If the peripheral device’s address is set to other
than 1 for the VISCA command, the peripheral device
works without hindrance since the peripheral device
recognizes that its address is set to 1.
Expiration time for an on status of the tally lamp
The tally lamp is turned off if not receiving an on
command from any controller for 15 seconds after
receiving an on command of Cmd_Tally.
* The value of pp becomes 7F if PRESET Recall has never been executed.
pp: Memory
number
last
operated
pp: Memory
number
last
operated
Preset No.
last
operated
Preset No.
last
operated
pp: Memory
number
last
operated
pp: Memory
number
last
operated
Preset No.
last
operated
Preset No.
last
operated
pp: Memory
number
last
operated
pp: Memory
number
last
operated
Preset No.
last
operated
pp: Memory
number
operated
last
PTZ TRACE*1 function Record status bulk inquiry
pqr s
Bit
PTZ Trace
number
*1
This function is not available for BRC-H780.
1514131211109876543210
16151413121110987654321
32
Page 33
PRESET MODE settings and PRESET command behaviors
PRESET
MODE
SETResetRecall
MODE1Saves PAN, TILT, ZOOM, and
FOCUS positions and the camera
settings in PRESET.
MODE2Saves PAN, TILT, ZOOM, and
FOCUS positions and the camera
settings in PRESET.
TRACE
*1
Starts recording of PTZ TRACE.
During PTZ TRACE recording, stops
the recording.
*1
This function is not available for BRC-H780.
PRESET Command
Returns the settings saved in
PRESET to the initial value.
Returns the settings saved in
PRESET to the initial value.
Deletes the settings saved in PTZ
TRACE.
Calls PAN, TILT, ZOOM, and
FOCUS positions and the camera
settings in PRESET.
Calls PAN, TILT, ZOOM, and
FOCUS positions in PRESET.
Prepares for the playback of PTZ
TRACE recording. While preparing
for playback, starts playback.
33
Page 34
Camera IP Setting
Command
The following commands are provided for setting an IP
address and a camera name for BRC series cameras.
No.NameDescription
1Setting Protocol:
Inquiry
2Setting Protocol:
Inquiry reply
3Setting Protocol:
Network setting
4Setting Protocol:
Network setting
reply
The network setting of the camera is performed as
communication sequence in the following.
Connect the computer that configures the settings to the
same segment as the camera.
1
Inquiry
The controller sends the inquiry packet to the
broadcast address (255.255.255.255), specified
port number (52380) of UDP. The camera replies as
the inquiry reply packet.
2
Network setting
The controller sends the network setting packet to
the broadcast address (255.255.255.255), specified
port number (52380) of UDP. The receiving side
sees the MAC address unit in the packet, and
returns ACK as the network setting reply if it is the
request for the receiving side.
If the receiving side fails to set, it returns NACK as
the network setting reply.
The controller inquires the
network setting for the camera.
The camera replies according to
the inquiry from the controller.
The controller sets the network
setting of the camera.
The camera replies according to
the network setting of the
controller.
CommandData
Inquiry
UDP
Broadcast address
(255.255.255.255)
Specified port number
(52380)
Inquiry reply
UDP
Broadcast address
(255.255.255.255)
Specified port number
(52380)
Network setting
UDP
Broadcast address
(255.255.255.255)
Specified port number
(52380)
Network setting reply
UDP
Broadcast address
(255.255.255.255)
Specified port number
(52380)
*1
Uses the ASCII code.
*2
Uses the ASCII code. Returns as “NAK:**-**-**-**-**-**” for NAK.
*3
Uses the ASCII code. Returns by adding the detail message, if
necessary.