beautypg.com

Neofox serial interface, Overview, Settings – Ocean Optics NeoFox Engineering Note User Manual

Page 3: Writing data to the neofox

background image

NeoFox Communication Interfaces

013-20000-010-04-201211 3

NeoFox Serial Interface

Overview

The NeoFox serial protocol can be used for a number of purposes. Most significantly, future versions of the
NeoFox hardware may have an RS232 serial output that will directly expose this protocol. Additionally,
knowledge of the serial protocol can be used in conjunction with knowledge of the FTDI USB protocol to create
custom USB drivers for the NeoFox, which are necessary for embedded host applications or non-windows based
PC host applications.

From the perspective of the embedded microcontroller, the serial protocol essentially has only two functions: to
read and write parameters and variables.

Settings

Setting

Value

Baud Rate:

750,000 baud (default)

Stop Bits:

1

Parity:

None

Flow Control:

None

Byte Order:

Little endian

Integer Size:

4 bytes

Float Size:

4 bytes

The following settings represent the default settings of the UART when used in through the USB interface. The
default settings for the UART when it is communicating through the RS232 interface are listed in

RS232 Default

Settings

.

Writing Data to the NeoFox

All of the writable parameters on the NeoFox fall into two categories: floating point types and integer types
(including char, short, etc). Regardless of type, all parameters accept the same command frame structure to set
their values. This structure is documented below. There are two fields in this command that require detailed
explanation.

First, bytes 8 through 11 hold the ParamType field. This field contains a code that indicates which parameter is
to be set by the command. A list of parameters and codes is available at the end of this document.

The ParamValue field (bytes 12 through 15) contains the actual value that is to be set by the command. This
field does not have an explicit type listed in the table below. The type is determined by the type of the parameter
value (also listed in the table at the end of this document). If the parameter is an integer type (short, char, long,
etc), then these four bytes are interpreted as a 4 byte signed integer (little endian) and then cast to the actual
type. If the parameter is a floating point type, then the four bytes are explicitly interpreted as a little endian
floating point value.