// // Created by andya on 02.07.18. // #ifndef BOSON_CAMERA_H #define BOSON_CAMERA_H #include <string> #include <linux/videodev2.h> #include <opencv2/opencv.hpp> #include "boson_camera/boson_cameraConfig.h" class BosonCamera { int fd; std::string device; struct v4l2_capability cap; struct v4l2_format format; struct v4l2_buffer buffer; cv::Mat raw_input; public: int width; int height; timeval last_ts; bool raw16_; BosonCamera(); BosonCamera(std::string device_address); ~BosonCamera(); void init(); void allocateBuffer(); void startStream(); void ConfigureStream(); void stopStream(); void closeConnection(); int ConnectSerial(); void SetVideoFormat(); void SetSmartAverager(bool ave) const; void SetPixelFormat(bool raw) const; void SetNucMode(int nuc) const; void DoNuc(bool& nuc) const; cv::Mat captureRawFrame(); void Configure(boson_camera::boson_cameraConfig &config); private: void AGC_Basic_Linear(cv::Mat input_16, cv::Mat output_8, int height, int width); }; #endif