12 #include "HAL/cpp/priority_mutex.h"
14 #include "ErrorBase.h"
15 #include "Vision/ColorImage.h"
16 #include "Vision/HSLImage.h"
25 kWhiteBalance_Automatic,
27 kWhiteBalance_FixedOutdoor1,
28 kWhiteBalance_FixedOutdoor2,
29 kWhiteBalance_FixedIndoor,
30 kWhiteBalance_FixedFluorescent1,
31 kWhiteBalance_FixedFluorescent2
34 enum ExposureControl {
35 kExposureControl_Automatic,
36 kExposureControl_Hold,
37 kExposureControl_FlickerFree50Hz,
38 kExposureControl_FlickerFree60Hz
50 enum Rotation { kRotation_0, kRotation_180 };
52 explicit AxisCamera(std::string
const &cameraHost);
58 bool IsFreshImage()
const;
63 int CopyJPEG(
char **destImage,
unsigned int &destImageSize,
64 unsigned int &destImageBufferSize);
94 std::thread m_captureThread;
95 std::string m_cameraHost;
96 int m_cameraSocket = -1;
100 std::vector<uint8_t> m_imageData;
101 bool m_freshImage =
false;
103 int m_brightness = 50;
104 WhiteBalance m_whiteBalance = kWhiteBalance_Automatic;
105 int m_colorLevel = 50;
106 ExposureControl m_exposureControl = kExposureControl_Automatic;
107 int m_exposurePriority = 50;
109 Resolution m_resolution = kResolution_640x480;
110 int m_compression = 50;
111 Rotation m_rotation = kRotation_0;
112 bool m_parametersDirty =
true;
113 bool m_streamDirty =
true;
119 void ReadImagesFromCamera();
120 bool WriteParameters();
122 int CreateCameraSocket(std::string
const &requestString,
bool setError);
A color image represented in HSL color space at 3 bytes per pixel.
Definition: HSLImage.h:15
WhiteBalance GetWhiteBalance()
Definition: AxisCamera.cpp:190
void WriteExposurePriority(int exposurePriority)
Request a change in the exposure priority of the camera.
Definition: AxisCamera.cpp:251
void WriteWhiteBalance(WhiteBalance whiteBalance)
Request a change in the white balance on the camera.
Definition: AxisCamera.cpp:178
int GetMaxFPS()
Definition: AxisCamera.cpp:294
int GetBrightness()
Definition: AxisCamera.cpp:169
int GetExposurePriority()
Definition: AxisCamera.cpp:270
int GetCompression()
Definition: AxisCamera.cpp:370
void WriteCompression(int compression)
Write the compression value to the camera.
Definition: AxisCamera.cpp:351
void WriteMaxFPS(int maxFPS)
Write the maximum frames per second that the camera should send Write 0 to send as many as possible...
Definition: AxisCamera.cpp:281
AxisCamera(std::string const &cameraHost)
AxisCamera constructor.
Definition: AxisCamera.cpp:46
Base class for most objects.
Definition: ErrorBase.h:66
void WriteExposureControl(ExposureControl exposureControl)
Request a change in the camera's exposure mode.
Definition: AxisCamera.cpp:226
Definition: ColorImage.h:14
Axis M1011 network camera.
Definition: AxisCamera.h:22
Definition: priority_mutex.h:53
HSLImage * GetImage()
Instantiate a new image object and fill it with the latest image from the camera. ...
Definition: AxisCamera.cpp:101
void WriteColorLevel(int colorLevel)
Request a change in the color level of the camera images.
Definition: AxisCamera.cpp:199
int CopyJPEG(char **destImage, unsigned int &destImageSize, unsigned int &destImageBufferSize)
Copy an image into an existing buffer.
Definition: AxisCamera.cpp:118
Resolution GetResolution()
Definition: AxisCamera.cpp:317
void WriteRotation(Rotation rotation)
Write the rotation value to the camera.
Definition: AxisCamera.cpp:329
void WriteBrightness(int brightness)
Request a change in the brightness of the camera images.
Definition: AxisCamera.cpp:151
void WriteResolution(Resolution resolution)
Write resolution value to camera.
Definition: AxisCamera.cpp:303
int GetColorLevel()
Definition: AxisCamera.cpp:217
ExposureControl GetExposureControl()
Definition: AxisCamera.cpp:239
Rotation GetRotation()
Definition: AxisCamera.cpp:342