File ArducamCamera.h
FileList > includes-api > ArducamCamera.h
Go to the source code of this file
#include <stdint.h>
Classes
| Type | Name |
|---|---|
| struct | ArducamCamera Camera drive interface and information. |
| struct | CameraInfo Basic information of the camera module. |
| struct | ClassCamera |
| struct | SdkDate SDK version update time. |
| struct | SdkInfo Basic information of the sdk. |
Public Types
| Type | Name |
|---|---|
| enum | ArducamCamera_8h_1a06fc87d81c62e9abb8790b6e5713c55b |
| typedef uint8_t(* | BUFFER_CALLBACK |
| enum | CAM_BRIGHTNESS_LEVEL Configure camera brightness level. |
| enum | CAM_COLOR_FX Configure special effects. |
| enum | CAM_CONTRAST_LEVEL Configure camera contrast level. |
| enum | CAM_EV_LEVEL Configure camera EV level. |
| enum | CAM_IMAGE_MODE Configure camera resolution. |
| enum | CAM_IMAGE_PIX_FMT Configure image pixel format. |
| enum | CAM_SHARPNESS_LEVEL Configure camera Sharpness level. |
| enum | CAM_STAURATION_LEVEL Configure camera stauration level. |
| enum | CAM_VIDEO_MODE Configure resolution in video streaming mode. |
| enum | CAM_WHITE_BALANCE Configure white balance mode. |
| enum | CamStatus Camera status. |
| enum | CameraStatus |
| enum | IMAGE_QUALITY |
| typedef void(* | STOP_HANDLE |
Public Attributes
| Type | Name |
|---|---|
| union SdkInfo | __attribute__ |
| uint8_t | day |
| uint8_t | month |
| uint16_t | version |
| uint8_t | year |
Public Functions
| Type | Name |
|---|---|
| struct SdkDate | __attribute__ ((packed)) |
| CamStatus | begin (ArducamCamera * camera) Initialize the configuration of the camera module. |
| uint8_t | cameraHeartBeat (ArducamCamera * camera) Inform the other party of camera status. |
| uint32_t | cameraImageAvailable (ArducamCamera * camera) |
| uint32_t | cameraReadFifoLength (ArducamCamera * camera) |
| uint8_t | cameraReadReg (ArducamCamera * camera, uint8_t addr) |
| void | captureThread (ArducamCamera * camera) |
| void | clearFifoFlag (ArducamCamera * camera) |
| ArducamCamera | createArducamCamera (int cs) Create a camera instance. |
| void | debugWriteRegister (ArducamCamera * camera, uint8_t * buff) Debug mode. |
| uint8_t | getAutoFocusSta (ArducamCamera * camera) Get auto focus status. |
| uint8_t | getBit (ArducamCamera * camera, uint8_t addr, uint8_t bit) |
| void | lowPowerOff (ArducamCamera * camera) Turn off low power mode. |
| void | lowPowerOn (ArducamCamera * camera) Turn on low power mode. |
| uint32_t | readBuff (ArducamCamera * camera, uint8_t * buff, uint32_t length) Read image data with specified length to buffer. |
| uint8_t | readByte (ArducamCamera * camera) Read a byte from FIFO. |
| void | registerCallback (ArducamCamera * camera, BUFFER_CALLBACK function, uint8_t blockSize, STOP_HANDLE handle) Create callback function. |
| CamStatus | reset (ArducamCamera * camera) reset cpld and camera |
| CamStatus | setAbsoluteExposure (ArducamCamera * camera, uint32_t val) Set the exposure time Manually. |
| CamStatus | setAutoExposure (ArducamCamera * camera, uint8_t val) Set the exposure mode. |
| CamStatus | setAutoFocus (ArducamCamera * camera, uint8_t val) Set auto focus mode. |
| CamStatus | setAutoISOSensitive (ArducamCamera * camera, uint8_t val) Set the gain mode. |
| CamStatus | setAutoWhiteBalance (ArducamCamera * camera, uint8_t val) Set white balance mode. |
| CamStatus | setAutoWhiteBalanceMode (ArducamCamera * camera, CAM_WHITE_BALANCE mode) Set the white balance mode Manually. |
| CamStatus | setBrightness (ArducamCamera * camera, CAM_BRIGHTNESS_LEVEL level) Set Brightness level. |
| CamStatus | setColorEffect (ArducamCamera * camera, CAM_COLOR_FX effect) Set special effects. |
| CamStatus | setContrast (ArducamCamera * camera, CAM_CONTRAST_LEVEL level) Set Contrast level. |
| CamStatus | setEV (ArducamCamera * camera, CAM_EV_LEVEL level) Set EV level. |
| CamStatus | setISOSensitivity (ArducamCamera * camera, int iso_sense) Set the exposure time Manually. |
| CamStatus | setImageQuality (ArducamCamera * camera, IMAGE_QUALITY qualtiy) Set jpeg image quality. |
| CamStatus | setManualFocus (ArducamCamera * camera, uint16_t val) Set manual focus mode. |
| CamStatus | setSaturation (ArducamCamera * camera, CAM_STAURATION_LEVEL level) Set saturation level. |
| CamStatus | setSharpness (ArducamCamera * camera, CAM_SHARPNESS_LEVEL level) Set Sharpness level. |
| void | startCapture (ArducamCamera * camera) |
| CamStatus | startPreview (ArducamCamera * camera, CAM_VIDEO_MODE mode) Start preview with specified resolution mode. |
| CamStatus | stopPreview (ArducamCamera * camera) Stop preview. |
| CamStatus | takeMultiPictures (ArducamCamera * camera, CAM_IMAGE_MODE mode, CAM_IMAGE_PIX_FMT pixel_format, uint8_t number) Start multi capture with specified number of image. |
| CamStatus | takePicture (ArducamCamera * camera, CAM_IMAGE_MODE mode, CAM_IMAGE_PIX_FMT pixel_format) Start a snapshot with specified resolution and pixel format. |
| uint32_t | waitI2cIdle (ArducamCamera * camera) |
| void | writeReg (ArducamCamera * camera, uint8_t addr, uint8_t val) |
Detailed Description
Author:
Arducam
Date:
2023/3/6
Version:
V2.0.1
Copyright:
Arducam
Public Types Documentation
enum ArducamCamera_8h_1a06fc87d81c62e9abb8790b6e5713c55b
enum ArducamCamera_8h_1a06fc87d81c62e9abb8790b6e5713c55b {
SENSOR_5MP_1 = 0x81,
SENSOR_3MP_1 = 0x82,
SENSOR_5MP_2 = 0x83,
SENSOR_3MP_2 = 0x84
};
typedef BUFFER_CALLBACK
typedef uint8_t(* BUFFER_CALLBACK) (uint8_t *buffer, uint8_t lenght);
Callback function prototype
enum CAM_BRIGHTNESS_LEVEL
Configure camera brightness level.
enum CAM_BRIGHTNESS_LEVEL {
CAM_BRIGHTNESS_LEVEL_MINUS_4 = 8,
CAM_BRIGHTNESS_LEVEL_MINUS_3 = 6,
CAM_BRIGHTNESS_LEVEL_MINUS_2 = 4,
CAM_BRIGHTNESS_LEVEL_MINUS_1 = 2,
CAM_BRIGHTNESS_LEVEL_DEFAULT = 0,
CAM_BRIGHTNESS_LEVEL_1 = 1,
CAM_BRIGHTNESS_LEVEL_2 = 3,
CAM_BRIGHTNESS_LEVEL_3 = 5,
CAM_BRIGHTNESS_LEVEL_4 = 7
};
enum CAM_COLOR_FX
Configure special effects.
enum CAM_COLOR_FX {
CAM_COLOR_FX_NONE = 0,
CAM_COLOR_FX_BLUEISH,
CAM_COLOR_FX_REDISH,
CAM_COLOR_FX_BW,
CAM_COLOR_FX_SEPIA,
CAM_COLOR_FX_NEGATIVE,
CAM_COLOR_FX_GRASS_GREEN,
CAM_COLOR_FX_OVER_EXPOSURE,
CAM_COLOR_FX_SOLARIZE
};
enum CAM_CONTRAST_LEVEL
Configure camera contrast level.
enum CAM_CONTRAST_LEVEL {
CAM_CONTRAST_LEVEL_MINUS_3 = 6,
CAM_CONTRAST_LEVEL_MINUS_2 = 4,
CAM_CONTRAST_LEVEL_MINUS_1 = 2,
CAM_CONTRAST_LEVEL_DEFAULT = 0,
CAM_CONTRAST_LEVEL_1 = 1,
CAM_CONTRAST_LEVEL_2 = 3,
CAM_CONTRAST_LEVEL_3 = 5
};
enum CAM_EV_LEVEL
Configure camera EV level.
enum CAM_EV_LEVEL {
CAM_EV_LEVEL_MINUS_3 = 6,
CAM_EV_LEVEL_MINUS_2 = 4,
CAM_EV_LEVEL_MINUS_1 = 2,
CAM_EV_LEVEL_DEFAULT = 0,
CAM_EV_LEVEL_1 = 1,
CAM_EV_LEVEL_2 = 3,
CAM_EV_LEVEL_3 = 5
};
enum CAM_IMAGE_MODE
Configure camera resolution.
enum CAM_IMAGE_MODE {
CAM_IMAGE_MODE_QQVGA = 0x00,
CAM_IMAGE_MODE_QVGA = 0x01,
CAM_IMAGE_MODE_VGA = 0x02,
CAM_IMAGE_MODE_SVGA = 0x03,
CAM_IMAGE_MODE_HD = 0x04,
CAM_IMAGE_MODE_SXGAM = 0x05,
CAM_IMAGE_MODE_UXGA = 0x06,
CAM_IMAGE_MODE_FHD = 0x07,
CAM_IMAGE_MODE_QXGA = 0x08,
CAM_IMAGE_MODE_WQXGA2 = 0x09,
CAM_IMAGE_MODE_96X96 = 0x0a,
CAM_IMAGE_MODE_128X128 = 0x0b,
CAM_IMAGE_MODE_320X320 = 0x0c
};
enum CAM_IMAGE_PIX_FMT
Configure image pixel format.
enum CAM_IMAGE_PIX_FMT {
CAM_IMAGE_PIX_FMT_RGB565 = 0x02,
CAM_IMAGE_PIX_FMT_JPG = 0x01,
CAM_IMAGE_PIX_FMT_YUV = 0x03,
CAM_IMAGE_PIX_FMT_NONE
};
enum CAM_SHARPNESS_LEVEL
Configure camera Sharpness level.
enum CAM_SHARPNESS_LEVEL {
CAM_SHARPNESS_LEVEL_AUTO = 0,
CAM_SHARPNESS_LEVEL_1,
CAM_SHARPNESS_LEVEL_2,
CAM_SHARPNESS_LEVEL_3,
CAM_SHARPNESS_LEVEL_4,
CAM_SHARPNESS_LEVEL_5,
CAM_SHARPNESS_LEVEL_6,
CAM_SHARPNESS_LEVEL_7,
CAM_SHARPNESS_LEVEL_8
};
enum CAM_STAURATION_LEVEL
Configure camera stauration level.
enum CAM_STAURATION_LEVEL {
CAM_STAURATION_LEVEL_MINUS_3 = 6,
CAM_STAURATION_LEVEL_MINUS_2 = 4,
CAM_STAURATION_LEVEL_MINUS_1 = 2,
CAM_STAURATION_LEVEL_DEFAULT = 0,
CAM_STAURATION_LEVEL_1 = 1,
CAM_STAURATION_LEVEL_2 = 3,
CAM_STAURATION_LEVEL_3 = 5
};
enum CAM_VIDEO_MODE
Configure resolution in video streaming mode.
enum CAM_VIDEO_MODE {
CAM_VIDEO_MODE_0 = 1,
CAM_VIDEO_MODE_1 = 2
};
enum CAM_WHITE_BALANCE
Configure white balance mode.
enum CAM_WHITE_BALANCE {
CAM_WHITE_BALANCE_MODE_DEFAULT = 0,
CAM_WHITE_BALANCE_MODE_SUNNY,
CAM_WHITE_BALANCE_MODE_OFFICE,
CAM_WHITE_BALANCE_MODE_CLOUDY,
CAM_WHITE_BALANCE_MODE_HOME
};
enum CamStatus
Camera status.
enum CamStatus {
CAM_ERR_SUCCESS = 0,
CAM_ERR_NO_CALLBACK = -1
};
enum CameraStatus
enum CameraStatus {
Camera_uninit = 0,
Camera_init,
Camera_open,
Camera_close
};
enum IMAGE_QUALITY
enum IMAGE_QUALITY {
HIGH_QUALITY = 0,
DEFAULT_QUALITY = 1,
LOW_QUALITY = 2
};
typedef STOP_HANDLE
typedef void(* STOP_HANDLE) (void);
Callback function prototype
Public Attributes Documentation
variable __attribute__
union SdkInfo __attribute__;
variable day
uint8_t day;
variable month
uint8_t month;
variable version
uint16_t version;
variable year
uint8_t year;
Public Functions Documentation
function __attribute__
struct SdkDate __attribute__ (
(packed)
)
function begin
Initialize the configuration of the camera module.
CamStatus begin (
ArducamCamera * camera
)
Parameters:
cameraArducamCamera instance
Returns:
Return operation status
function cameraHeartBeat
Inform the other party of camera status.
uint8_t cameraHeartBeat (
ArducamCamera * camera
)
Parameters:
cameraArducamCamera instance
Returns:
Returns camera status
function cameraImageAvailable
uint32_t cameraImageAvailable (
ArducamCamera * camera
)
function cameraReadFifoLength
uint32_t cameraReadFifoLength (
ArducamCamera * camera
)
function cameraReadReg
uint8_t cameraReadReg (
ArducamCamera * camera,
uint8_t addr
)
function captureThread
void captureThread (
ArducamCamera * camera
)
function clearFifoFlag
void clearFifoFlag (
ArducamCamera * camera
)
function createArducamCamera
Create a camera instance.
ArducamCamera createArducamCamera (
int cs
)
Parameters:
csChip select signal for SPI communication
Returns:
Return a ArducamCamera instance
function debugWriteRegister
Debug mode.
void debugWriteRegister (
ArducamCamera * camera,
uint8_t * buff
)
Parameters:
cameraArducamCamera instancebuffThere are four bytes of buff Byte 1 indicates the device address, Byte 2 indicates the high octet of the register, Byte 3 indicates the low octet of the register, and Byte 4 indicates the value written to the register
function getAutoFocusSta
Get auto focus status.
uint8_t getAutoFocusSta (
ArducamCamera * camera
)
Returns:
Return 0x10:focus is finished
Note:
Only 5MP cameras support auto focus control
function getBit
uint8_t getBit (
ArducamCamera * camera,
uint8_t addr,
uint8_t bit
)
function lowPowerOff
Turn off low power mode.
void lowPowerOff (
ArducamCamera * camera
)
Parameters:
cameraArducamCamera instance
function lowPowerOn
Turn on low power mode.
void lowPowerOn (
ArducamCamera * camera
)
Parameters:
cameraArducamCamera instance
function readBuff
Read image data with specified length to buffer.
uint32_t readBuff (
ArducamCamera * camera,
uint8_t * buff,
uint32_t length
)
Parameters:
cameraArducamCamera instancebuffBuffer for storing camera datalengthThe length of the available data to be read
Returns:
Returns the length actually read
Note:
Transmission length should be less than 255
function readByte
Read a byte from FIFO.
uint8_t readByte (
ArducamCamera * camera
)
Parameters:
cameraArducamCamera instance
Returns:
Returns Camera data
Note:
Before calling this function, make sure that the data is available in the buffer
function registerCallback
Create callback function.
void registerCallback (
ArducamCamera * camera,
BUFFER_CALLBACK function,
uint8_t blockSize,
STOP_HANDLE handle
)
Parameters:
cameraArducamCamera instancefunctionCallback function nameblockSizeThe length of the data transmitted by the callback function at one timehandlestop function Callback function name
Note:
Transmission length should be less than 255
function reset
reset cpld and camera
CamStatus reset (
ArducamCamera * camera
)
Parameters:
cameraArducamCamera instance
Returns:
Return operation status
function setAbsoluteExposure
Set the exposure time Manually.
CamStatus setAbsoluteExposure (
ArducamCamera * camera,
uint32_t val
)
Parameters:
cameraArducamCamera instancevalValue of exposure line
Returns:
Return operation status
Note:
Before calling this function, you need to use the setAutoExposure() function to turn off the auto exposure function
function setAutoExposure
Set the exposure mode.
CamStatus setAutoExposure (
ArducamCamera * camera,
uint8_t val
)
Parameters:
cameraArducamCamera instanceval1Turn on automatic exposure0Turn off automatic exposure
Returns:
Return operation status
function setAutoFocus
Set auto focus mode.
CamStatus setAutoFocus (
ArducamCamera * camera,
uint8_t val
)
Parameters:
cameraArducamCamera instancevalmode of autofocus
Returns:
Return operation status
Note:
Only 5MP cameras support auto focus control
function setAutoISOSensitive
Set the gain mode.
CamStatus setAutoISOSensitive (
ArducamCamera * camera,
uint8_t val
)
Parameters:
cameraArducamCamera instanceval1turn on automatic gain0turn off automatic gain
Returns:
Return operation status
function setAutoWhiteBalance
Set white balance mode.
CamStatus setAutoWhiteBalance (
ArducamCamera * camera,
uint8_t val
)
Parameters:
cameraArducamCamera instanceval1turn on automatic white balance0turn off automatic white balance
Returns:
Return operation status
function setAutoWhiteBalanceMode
Set the white balance mode Manually.
CamStatus setAutoWhiteBalanceMode (
ArducamCamera * camera,
CAM_WHITE_BALANCE mode
)
Parameters:
cameraArducamCamera instancemodeWhite balance mode
Returns:
Return operation status
function setBrightness
Set Brightness level.
CamStatus setBrightness (
ArducamCamera * camera,
CAM_BRIGHTNESS_LEVEL level
)
Parameters:
cameraArducamCamera instancelevelBrightness level
Returns:
Return operation status
function setColorEffect
Set special effects.
CamStatus setColorEffect (
ArducamCamera * camera,
CAM_COLOR_FX effect
)
Parameters:
cameraArducamCamera instanceeffectSpecial effects mode
Returns:
Return operation status
function setContrast
Set Contrast level.
CamStatus setContrast (
ArducamCamera * camera,
CAM_CONTRAST_LEVEL level
)
Parameters:
cameraArducamCamera instancelevelContrast level
Returns:
Return operation status
function setEV
Set EV level.
CamStatus setEV (
ArducamCamera * camera,
CAM_EV_LEVEL level
)
Parameters:
cameraArducamCamera instancelevelEV level
Returns:
Return operation status
function setISOSensitivity
Set the exposure time Manually.
CamStatus setISOSensitivity (
ArducamCamera * camera,
int iso_sense
)
Parameters:
cameraArducamCamera instanceiso_senseValue of gain
Returns:
Return operation status
Note:
Before calling this function, you need to use the setAutoISOSensitive() function to turn off the auto gain function
function setImageQuality
Set jpeg image quality.
CamStatus setImageQuality (
ArducamCamera * camera,
IMAGE_QUALITY qualtiy
)
Parameters:
cameraArducamCamera instancequaltiyImage Quality
Returns:
Return operation status
Note:
Only 3MP cameras support sharpness control
function setManualFocus
Set manual focus mode.
CamStatus setManualFocus (
ArducamCamera * camera,
uint16_t val
)
Parameters:
valueof VCM code
Returns:
Return operation status
Note:
Only 5MP cameras support maunal focus control
function setSaturation
Set saturation level.
CamStatus setSaturation (
ArducamCamera * camera,
CAM_STAURATION_LEVEL level
)
Parameters:
cameraArducamCamera instancelevelSaturation level
Returns:
Return operation status
function setSharpness
Set Sharpness level.
CamStatus setSharpness (
ArducamCamera * camera,
CAM_SHARPNESS_LEVEL level
)
Parameters:
cameraArducamCamera instancelevelSharpness level
Returns:
Return operation status
Note:
Only 3MP cameras support sharpness control
function startCapture
void startCapture (
ArducamCamera * camera
)
function startPreview
Start preview with specified resolution mode.
CamStatus startPreview (
ArducamCamera * camera,
CAM_VIDEO_MODE mode
)
Parameters:
cameraArducamCamera instancemodeResolution of the camera module
Returns:
Return operation status
Note:
Before calling this function, you need to register the callback function.The default image pixel format is JPEG
function stopPreview
Stop preview.
CamStatus stopPreview (
ArducamCamera * camera
)
Parameters:
cameraArducamCamera instance
Returns:
Return operation status
function takeMultiPictures
Start multi capture with specified number of image.
CamStatus takeMultiPictures (
ArducamCamera * camera,
CAM_IMAGE_MODE mode,
CAM_IMAGE_PIX_FMT pixel_format,
uint8_t number
)
Parameters:
cameraArducamCamera instancemodeResolution of the camera modulepixel_formatOutput image pixel format,which supports JPEG, RGB, YUVnumberNumber of pictures taken
Returns:
Return operation status
Note:
The mode parameter must be the resolution which the current camera supported
function takePicture
Start a snapshot with specified resolution and pixel format.
CamStatus takePicture (
ArducamCamera * camera,
CAM_IMAGE_MODE mode,
CAM_IMAGE_PIX_FMT pixel_format
)
Parameters:
cameraArducamCamera instancemodeResolution of the camera modulepixel_formatOutput image pixel format,which supports JPEG, RGB, YUV
Returns:
Return operation status
Note:
The mode parameter must be the resolution wh
function waitI2cIdle
uint32_t waitI2cIdle (
ArducamCamera * camera
)
function writeReg
void writeReg (
ArducamCamera * camera,
uint8_t addr,
uint8_t val
)
The documentation for this class was generated from the following file neuralspot/neuralspot/ns-camera/includes-api/ArducamCamera.h