#ifndef _camera_H
#define _camera_H
/****************************************************************************/
/* Copyright 1995 MBARI                                                     */
/****************************************************************************/
/* Summary  : Camera Microcontroller Interface Module Defs for VxWorks      */
/* Filename : camera.h                                                      */
/* Author   : Douglas Au                                                    */
/* Project  : New ROV                                                       */
/* Version  : Version 1.0                                                   */
/* Created  : 03/22/95                                                      */
/* Modified : 03/22/95                                                      */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/* $Header:  $
 * $Log:     $
 *
 */
/****************************************************************************/

#if 1
#define MBM_CAMERA_MODS
#endif

#define CAMERA_TASK_STACKSIZE  5000     /* Camera Stack Size & TCB          */

                                        /* Camera Data Mgr Item Prefix      */
#define CAMERA_DM_PREFIX      "TIBURON.CAMERA."
#define PORT_CAMERA_DM_PREFIX "TIBURON.CAMERA.PORT."
#define STBD_CAMERA_DM_PREFIX "TIBURON.CAMERA.STBD."

#define CAMERA_ENABLE_TRYS    5         /* Number of Micro Enable Attempts  */
#define CTRL_STRING_LEN      32

/********************** Data Manager CAMERA  Item Names ********************/

#define INITIALIZING_DM                         "INITIALIZING"
#define HOUSING_WATER_ALARM_DM                  "HOUSING_WATER_ALARM"

#define TEMPERATURE_DM                          "MICRO_TEMP"
#define TEMPERATURE_ALARM_DM                    "TEMP_ALARM"
#define TEMP_WARN_THRESH_DM                     "TEMP_WARN_THRESHOLD"
#define TEMP_ALARM_THRESH_DM                    "TEMP_ALARM_THRESHOLD"

#define CAMERA_TEMP_WARN_THRESH         35      /* 35 deg C for cameras only */
#define CAMERA_TEMP_ALARM_THRESH        45      /* 45 deg C for cameras only */

#define HUMIDITY_DM                             "MICRO_HUMIDITY"
#define HUMIDITY_ALARM_DM                       "HUMIDITY_ALARM"
#define HUMIDITY_WARN_THRESH_DM                 "HUMIDITY_WARN_THRESHOLD"
#define HUMIDITY_ALARM_THRESH_DM                "HUMIDITY_ALARM_THRESHOLD"

#define CAMERA_HUMIDITY_WARN_THRESH     35      /* 35% RH for cameras only   */
#define CAMERA_HUMIDITY_ALARM_THRESH    45      /* 45% RH for cameras only   */

#ifdef MBM_CAMERA_MODS
#define INTEGRATED_FOCUS_SET_POINT_DM           "INTEGRATED_FOCUS_SET_POINT"
#endif

#define FOCUS_SET_POINT_DM                      "FOCUS_SET_POINT"
#define FOCUS_VELOCITY_GAIN_DM                  "FOCUS_VELOCITY_GAIN"
#define FOCUS_POSITION_DM                       "FOCUS_POSITION"
#define FOCUS_CONTROL_MODE_DM                   "FOCUS_CONTROL_MODE"

#define ZOOM_SET_POINT_DM                       "ZOOM_SET_POINT"
#define ZOOM_VELOCITY_GAIN_DM                   "ZOOM_VELOCITY_GAIN"
#define ZOOM_POSITION_DM                        "ZOOM_POSITION"
#define ZOOM_CONTROL_MODE_DM                    "ZOOM_CONTROL_MODE"
#define ZOOM_RATE_DM                            "ZOOM_RATE"

#define PWM_RATE_DM                             "PWM_RATE"

#define COLOR_BARS_MODE_DM                      "COLOR_BARS"
#define MENU_MODE_DM                            "MENU_MODE"
#define PAGE_STATE_DM                           "PAGE_STATE"
#define ITEM_STATE_DM                           "ITEM_STATE"
#define UP_STATE_DM                             "UP_STATE"
#define DOWN_STATE_DM                             "DOWN_STATE"

#define IRIS_MODE_DM                            "IRIS_MODE"
#define IRIS_VALUE_DM                           "IRIS_VALUE"

#define GAIN_MODE_DM                            "GAIN_MODE"
#define GAIN_VALUE_DM                           "GAIN_VALUE"

#define DETAIL_MODE_DM                          "DETAIL_MODE"
#define SHUTTER_SPEED_DM                        "SHUTTER_SPEED"
#define SCENE_FILE_DM                           "SCENE_FILE"

#define AWC_MODE_DM                             "WHITE_BAL_MODE"
#define ATW_MODE_DM                             "AUTO_WHITE_BAL_MODE"
#define TOTAL_PEDSTAL_DM                        "TOTAL_PEDSTAL"
#define RED_PEDSTAL_DM                          "RED_PEDSTAL"
#define BLUE_PEDSTAL_DM                         "BLUE_PEDSTAL"
#define RED_GAIN_DM                             "RED_GAIN"
#define BLUE_GAIN_DM                            "BLUE_GAIN"

typedef enum
{
    AUTO_GAIN_OFF,
    AUTO_GAIN_LOW,
    AUTO_GAIN_HIGH
} gainModeType;

typedef enum
{
    GAIN_0DB,
    GAIN_9DB,
    GAIN_18DB
} gainValueType;

typedef enum
{
    DETAIL_0,
    DETAIL_LOW,
    DETAIL_HIGH
} detailModeType;

typedef enum
{
    SHUTTER_OFF,
    SHUTTER_SPEED_100,
    SHUTTER_SPEED_500,
    SHUTTER_SPEED_1000,
    SHUTTER_SPEED_SS,
    SHUTTER_SPEED_ELC
} shutterSpeedType;

typedef enum
{
    USER_SET,
    SCENE_1,
    SCENE_2,
    SCENE_3
} sceneFileType;

typedef enum
{
    HOLD,
    AWC,
    ABC
} whiteBalModeType;

typedef enum
{
    ATW,
    MODE_A,
    MODE_B
} autoWhiteBalModeType;

#ifdef INCLUDE_PROTOTYPES

#ifdef __STDC__

#if 0
STATUS cameraTask(Nat16 cameraSerialChan, sio32Chan *cameraDataChan );
#endif
STATUS stbdCameraTask(Nat16 cameraSerialChan);
STATUS portCameraTask(Nat16 cameraSerialChan);
#endif

#endif /* INCLUDE_PROTOTYPES */









#endif /* _camera_H */
