-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArducam.cpp
152 lines (122 loc) · 3.02 KB
/
Arducam.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
/*
* This file is part of the Arducam SPI Camera project.
*
* Copyright 2021 Arducam Technology co., Ltd. All Rights Reserved.
*
* This work is licensed under the MIT license, see the file LICENSE for details.
*
*/
#include "Arducam.hpp"
#include "Platform.h"
Arducam::Arducam(int CS)
{
cameraInfo = createArducamCamera(CS);
}
CamStatus Arducam::begin(void)
{
return ::begin(&cameraInfo);
}
CamStatus Arducam::takePicture(CAM_IMAGE_MODE mode, CAM_IMAGE_PIX_FMT pixel_format)
{
return ::takePicture(&cameraInfo,mode,pixel_format);
}
CamStatus Arducam::takeMultiPictures(CAM_IMAGE_MODE mode, CAM_IMAGE_PIX_FMT pixel_format, uint8_t num)
{
return ::takeMultiPictures(&cameraInfo,mode,pixel_format,num);
}
CamStatus Arducam::startPreview(CAM_VIDEO_MODE mode)
{
return ::startPreview(&cameraInfo,mode);
}
CamStatus Arducam::stopPreview(void)
{
return ::stopPreview(&cameraInfo);
}
CamStatus Arducam::setAutoExposure(uint8_t val)
{
return ::setAutoExposure(&cameraInfo,val);
}
CamStatus Arducam::setAbsoluteExposure(uint32_t val)
{
return ::setAbsoluteExposure(&cameraInfo,val);
}
CamStatus Arducam::setAutoISOSensitive(uint8_t val)
{
return ::setAutoISOSensitive(&cameraInfo,val);
}
CamStatus Arducam::setISOSensitivity(int val)
{
return ::setISOSensitivity(&cameraInfo,val);
}
CamStatus Arducam::setAutoWhiteBalance(uint8_t val)
{
return ::setAutoWhiteBalance(&cameraInfo,val);
}
CamStatus Arducam::setAutoWhiteBalanceMode(CAM_WHITE_BALANCE mode)
{
return ::setAutoWhiteBalanceMode(&cameraInfo,mode);
}
CamStatus Arducam::setColorEffect(CAM_COLOR_FX effect)
{
return ::setColorEffect(&cameraInfo,effect);
}
CamStatus Arducam::setAutoFocus(uint8_t val)
{
return ::setAutoFocus(&cameraInfo,val);
}
CamStatus Arducam::setSaturation(CAM_STAURATION_LEVEL level)
{
return ::setSaturation(&cameraInfo,level);
}
CamStatus Arducam::setEV(CAM_EV_LEVEL level)
{
return ::setEV(&cameraInfo,level);
}
CamStatus Arducam::setContrast(CAM_CONTRAST_LEVEL level)
{
return ::setContrast(&cameraInfo,level);
}
CamStatus Arducam::setBrightness(CAM_BRIGHTNESS_LEVEL level)
{
return ::setBrightness(&cameraInfo,level);
}
CamStatus Arducam::setSharpness(CAM_SHARPNESS_LEVEL level)
{
return ::setSharpness(&cameraInfo,level);
}
uint8_t Arducam::readBuff(uint8_t*buff,uint8_t length)
{
return ::readBuff(&cameraInfo,buff,length);
}
uint8_t Arducam::readByte(void)
{
return ::readByte(&cameraInfo);
}
void Arducam::debugWriteRegister(uint8_t* buff)
{
::debugWriteRegister(&cameraInfo,buff);
}
void Arducam::registerCallBack(BUFFER_CALLBACK function,uint8_t blockSize)
{
::registerCallback(&cameraInfo,function,blockSize);
}
void Arducam::lowPowerOn(void)
{
::lowPowerOn(&cameraInfo);
}
void Arducam::lowPowerOff(void)
{
::lowPowerOff(&cameraInfo);
}
uint32_t Arducam::getTotalLength(void)
{
return cameraInfo.totalLength;
}
uint32_t Arducam::getReceivedLength(void)
{
return cameraInfo.receivedLength;
}
ArducamCamera* Arducam::getCameraInstance(void)
{
return &cameraInfo;
}