You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
/**
|
|
* @file OV2640.hpp
|
|
* @author Petr Malaník (TheColonelYoung(at)gmail(dot)com)
|
|
* @brief
|
|
* @version 0.1
|
|
* @date 11.09.2022
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "stm32l4xx_hal.h"
|
|
#include "main.h"
|
|
|
|
#include <vector>
|
|
|
|
using namespace std;
|
|
typedef unsigned int uint;
|
|
|
|
/**
|
|
* @brief Captures image data from camera, control power to camera and transmit data on selected interfaces
|
|
* Currently is only UART interface supported
|
|
*/
|
|
class ButCube_imager
|
|
{
|
|
private:
|
|
/**
|
|
* @brief UART interfaces to which data will be exported, interfaces muse be configured in advance
|
|
*/
|
|
vector<UART_HandleTypeDef> uart_output_interfaces;
|
|
|
|
public:
|
|
/**
|
|
* @brief Construct a new ButCube_imager object
|
|
*/
|
|
ButCube_imager() = default;
|
|
|
|
/**
|
|
* @brief Add UART output to list on which data are exported
|
|
*
|
|
* @param uart_output UART output to which export data from camera
|
|
* @return int
|
|
*/
|
|
int Add_output(UART_HandleTypeDef uart_output);
|
|
|
|
/**
|
|
* @brief Transmit data from source to selected interfaces
|
|
*
|
|
* @param source Source of image data
|
|
* @return int Count of bytes exported
|
|
*/
|
|
int Transmit(vector<uint8_t> source);
|
|
|
|
/**
|
|
* @brief Enable or power to camera, controls load switch on camera power rail
|
|
*
|
|
* @param state true = Enabled, false = Disabled
|
|
*/
|
|
void Camera_power(bool state);
|
|
};
|