Skip to content
Snippets Groups Projects
boson_camera.h 1.07 KiB
Newer Older
Muhammad Fadhil Ginting's avatar
Muhammad Fadhil Ginting committed
//
// 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