# Benthic Imaging AUV Software 
# copyright MBARI 2008
#
# author: K. Headley
#

This repository contains the source code for the Benthic Imaging AUV (BIAUV) project.

BIAUV is creating a digitial SLR camera payload for the MBARI docking vehicle to autonomously image undersea areas of scientific interest. It's initial use will be to generate high-resolution mosaic images of marine protected areas and to perform benthic ecology surveys transects.

This repository contains source code related to the BIAUV camera. The main functitons of the camera control mechanism are 
	- provide a means of triggering the camera 
	- generate NMEA location data compatible with the camera's GPS input

The location data may be recorded as part of an image's EXIF data. Ideally, the camera control mechanism would also allow the camera to be dynamically and remotely configured as well.

The initial camera control scheme will use a Lantronix XPort single port terminal server, which provides three GPIO pins and a serial port. The GPIO pins will be used to trigger the camera and cycle power to the camera. The serial port will provide input to the camera's GPS input.

The following software modules are currently maintained in the repository:

#################
# AUV Camera Drivers (QNX)
Bicam.cc
_cameraServer.cc
_cameraTest.cc
_cameraDriver.cc
CameraDriver.cc
CameraLog.cc
CameraOutput.cc
CameraServer.cc

#################
# Camera Control
XPort.cc			- Lantronix XPort configuration and control API
XPortGPIO.cc			- XPort GPIO API for BIAUV camera trigger and strobe enable
BicamGPS.cc			- BIAUV GPS API
Utils.cc			- Shared utility code

#################
# NMEA
NMEA.cc,GPRMC.cc,GPGGA.cc	- NMEA message generation API

#################
# Unit Tests
bicamTest.cc			- Camera control IF unit tests
xportTest.cc			- XPort IF unit tests
nmeaTest.cc			- NMEA IF unit tests

#################
# Utilities
XPortSim.cc			- XPort simulator
xportIO.cc			- XPort operation (from command line)
qnx_port.h			- Platform specific definitions
GWiz.c				- Manipulate XPort GPIO from command line

#################
# Build
This package may be built under Cygwin or QNX (and possibly linux).
- install the package (check out from CVS or untar source tree made with make tar)
- From the top level (biauv), build using the following:

	$ make clean 	removes objects, executables, and intermediate files
	$ make		makes the whole package

The Makefile will build both the AUV drivers and the camera control classes under QNX;
Only the camera control classes are built under Cygwin or other environments.

