background image

O-3000 Camera Series

2.3

Software Interfaces

Note: The O-3000 cameras are no webcams. They do not support the UVC standard used in plug-
and-play consumer stuff. Instead the O-3000 cameras offer a simple and flexible interface, optimized
for industrial vision.

There are two different levels, allowing access to the camera. The more comfortable one is through
the open-source camera driver, available in the O-3000 install package. However, it is also possible
to access the camera directly through the USB endpoints, without using the driver. The second way
requires more programming effort but leads to a very slim and optimized solution. And of course the
open-source driver can be used as a guideline for the second way.

In any case, communication to the camera consists of two different paths, one for messages to and
from the camera and one to transport image data. The message path is used to send configuration
commands to camera and to read information from the camera, such as the software version, camera
settings, and so on.

2.3.1

Driver-Level Access

The O-3000 driver provides a simple and light-weight API to communicate with the O-3000 camera
series. It abstracts user applications from the USB internas and deals with low-level interfacing which
is tedious to implement and hard to debug if done the wrong way. The driver is written in plain C.
For use in Java, such as the O-3000 demo application, the JNI (Java Native Interface) wrapper may
be used. See [

4

] for more information.

2.3.2

USB-Level Access

Mainly for embedded projects, it is mandatory to be able to interact directly with the camera. On
the host side, that means interacting with the USB interface. You do not have to fully understand the
USB 2.0 standard, but some basic knowledge is essential. Each USB connection provides a set of
independent sub-channels, called pipes. The host-side end of the pipe are buffers, the device-side end
consists of so-called endpoints. Each endpoint is uniquely addressed by the USB device’s address
and the endpoint number. Endpoint 0 is reserved for device control; the other endpoints (up to 15 for
high-speed devices) are implemented application specific. An endpoint offers an IN channel (device
to host) and an OUT channel (host to device), although not both of them have to be implemented.

The O-3000 cameras utilise two USB endpoints in bulk mode for messages and for image data. Details
are explained in [

5

].

Page 7

Summary of Contents for O-3000 Series

Page 1: ...E Mail cam stettbacher ch O 3000 Camera Series User s Guide Version 2 10 2015 08 10 Abstract This user s guide highlights the camera features and gives an overview over the device s basic functions I...

Page 2: ...Interest 4 2 1 4 Frame Rate 4 2 1 5 Exposure Adjustments 4 2 1 6 White Balance 5 2 1 7 Mirroring 5 2 1 8 Data Format 5 2 1 9 Downsampling 5 2 2 Hardware Interfaces 6 2 3 Software Interfaces 7 2 3 1 D...

Page 3: ...functional features of the O 3010 monochrome and the O 3020 color devices in more detail More devices will follow 2 1 Functions This chapter focuses on the camera s main functionalities and on how to...

Page 4: ...of interest e g to reach higher frame rates To set a particular region use the window command described in 6 2 1 4 Frame Rate You can choose a frame rate However note that the frame rate may affect th...

Page 5: ...oring mode allows you to flip the picture up down or left right It can be done by changing values of parameter mirroring For more information please see 6 2 1 8 Data Format The camera is supporting th...

Page 6: ...822 Please contact SSP if you wish to use this feature Flash synchronization One synchronization output plus reference ground is available on board level cameras 5 pin 1 25 mm male vertical connector...

Page 7: ...ht API to communicate with the O 3000 camera series It abstracts user applications from the USB internas and deals with low level interfacing which is tedious to implement and hard to debug if done th...

Page 8: ...en in Java which is connected through several layers to the camera All modules described are part of the driver package We will come to that later on in section 3 2 Basically the top layer application...

Page 9: ...rts to illustrate a working example and can be modified under terms of GPL and LGPL The O 3000 camera driver binaries and C sources A Demo Application an implementation of a GUI software for this came...

Page 10: ...later 4 Stettbacher Signal Processing 2013 O 3000 Camera Series Camera Driver Package Documentation Stettbacher Signal Processing version 1 20 2013 05 24 5 Stettbacher Signal Processing 2013 O 3000 Ca...

Reviews: