OceanDirectLighthouse 3.1.3
OceanDirect Lighthouse C++/C API
OceanDirect API

Overview

OceanDirect is a minimalistic, multi-platform (Windows, Linux) device driver for Ocean Optics spectrometers, designed specifically for embedded applications needing to run in resource-constrained hardware environments. OceanDirect provides a fully working and tested REFERENCE IMPLEMENTATION of the Ocean Optics USB interface, demonstrating how Ocean Optics spectrometers can be commanded and controlled from C/C++/Python/MatLab. It is provided with minimal source code so that customers can customize and extend it to support exactly those features and functions they require.

Unlike the larger OmniDriver/SPAM driver library, OceanDirect itself does not contain advanced spectroscopic processing and manipulation, but currently contains support for Reflection, Transissive, and Absorbance calculations.

Note that detailed documentation for the C++ methods can be found in the corresponding C functions from the generated API html documentation.

License

OceanDirect is licensed under the Ocean Optics License. Additional information may be found in the "LICENSE" section for each header file in this distribution.

Distribution Contents

    OceanConnect-x.xx/  The driver and key components
        doc/            Documentation relating to OceanDirect and its API
        include/        headers for building OceanDirect
        lib/            exportable headers for client applications
        distribution/   helpers for specific operating systems
                        linux: provides udev rules allowing non-root users to claim devices
                        windows: provides working Visual Studio 2017 solutions
        test/           command-line tests, including C/MATLAB/Python examples

Generated Documentation

OceanDirect documentation is now maintained in Doxygen format, and can be rendered as HTML, RTF (MS Word), Unix 'man' pages, or other styles. For convenience, pre-rendered documentation is generated for each customer release (RTF, converted to Microsoft .docx) which may be found in the ./doc directory.

Windows

OceanDirect is normally built under Windows using Visual Studio 2017.

Dependencies

  • Visual Studio 2017 or above
  • oceandirect.dll
  • for .NET programs both netoceandirect.dll and statically linked oceandirect.lib is needed.

Linux

Dependencies

  • libusb-dev 1.0
  • gcc
  • g++

It is necessary to put liboceandirect.so into your library path to run any programs against this driver. It should suffice to do this within the OceanDirect root directory (where this README.txt is) for testing:

    $ export LD_LIBRARY_PATH="$PWD/lib"

Alternately, liboceandirect.so could be installed into a system library directory like /usr/local/lib that ld.so knows about.

Test programs in the 'test' directory should be built alongside OceanDirect and can be used as starting points for new development. As long as the LD_LIBRARY_PATH above is properly defined, these should work. If they do not, then they may need to be updated to reflect the current state of the driver API.

Testing OceanDirect

A number of test programs are provided with OceanDirect. Note that many of them are intended for use with a locally-built copy of OceanDirect.

Linux

    $ make new
    $ export LD_LIBRARY_PATH="$PWD/lib"
    $ ./test/C/oceandirect_test

Support

For support with OceanDirect issues, please contact suppo.nosp@m.rt@o.nosp@m.ceani.nosp@m.nsig.nosp@m.ht.co.nosp@m.m.

Known Issues

Medium

  • provide more Visual Basic samples
  • provide more Visual C++ samples
  • fix Cygwin on Win64

Low

  • support MinGW if possible
  • provide bindings for Ruby, Perl, etc
  • generate Feature Matrix showing which features are (N)ot-possible, (P)ossible, (I)mplemented or (W)orkaround-available for each spectrometer.

OceanDirect Release Notes

See revision_change-log.txt

Document Version