资源简介

最直接的uvc设备图像获取代码,没有显示,资源占用低,速度快,另外还有UVC Extension unit的通道数据获取,非常稳定好用

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include 


#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 


using namespace std;
using namespace cv;

#define CAMERA “/dev/video0“
#define CAPTURE_FILE “frame.yuv“

#define BUFFER_COUNT 20


#define CY_FX_UVC_XU_CAMERA_RW                                  0x01
#define CY_FX_UVC_XU_HALF_RW                                  0x02
#define CY_FX_UVC_XU_IMU_DATA_W                                  0x03
#define CY_FX_UVC_XU_IMU_DATA_R                                  0x04
#define CY_FX_UVC_XU_FILE_DATA_WR                                  0x05

// set to 1 for a bit of debug output
#if 1
#define __print printf
#define dbg printf
#else
#define dbg(fmt ...)
#endif

static  __u8 value[2000] = {0};
int v4l2_dev=0;

struct uvc_xu_control_query xu_query =
{
    .unit       = 3  // has to be unit 3
    .selector   = 1
    .query      = UVC_SET_CUR
    .size       = 6
    .data       = value
};

/**
 *  @brief      error handle.
 *  @param[out] NULL.
 *  @return     NULL.
 */
void error_handle()
{
    int res = errno;
    const char *err;

    switch (res)
    {
        case ENOENT:
            err = “Extension unit or control not found“;
            break;
        case ENOBUFS:
            err = “Buffer size does not match control size“;
            break;
        case EINVAL:
            err = “Invalid request code“;
            break;
        case EBADRQC:
            err = “Request not supported by control“;
            break;
        default:
            err = strerror(res);
            break;
    }
    dbg(“!!!!!!!!!!!!!!!!!!!! %s. (System code: %d) \n\r“ err res);
    return;
}


unsigned int g_index = 0;
unsigned int lb_index = 0;
int imudata;
/**
 *  @brief      read hardware version info.
 *  @param[out] NULL.
 *  @return     NULL.
 */
short write_imu_data_req(int fd)
{

    unsigned short regval = 0;

    static int length = 1;
    unsigned int g_index = 0;


    static int bri = 1;
//g_index = 0;
    
    xu_query.selector = CY_FX_UVC_XU_IMU_DATA_W;
    xu_query.query = UVC_SET_CUR;
    xu_query.size = 5;
xu_query.data[0] = 0x5a;
    xu_query.data[1] = (g_index>>24)&0x000000ff;
    xu_query.data[2] = (g_index>>16)&0x000000ff;
    xu_query.data[3] = (g_index>>8)&0x000000ff;
    xu_query.data[4] = g_index&0x000000ff;


    regval = ioctl(fd UVCIOC_CTRL_QUERY &xu_query);
    if (regval)
    {
        error_handle();
return regval;
    }
el

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-09-27 15:03  UVC_Extension\
     文件       10391  2018-09-21 15:17  UVC_Extension\CMakeCache.txt
     目录           0  2018-09-27 15:03  UVC_Extension\CMakeFiles\
     目录           0  2018-05-25 11:23  UVC_Extension\CMakeFiles\3.5.1\
     文件        2002  2018-04-26 18:20  UVC_Extension\CMakeFiles\3.5.1\CMakeCCompiler.cmake
     文件        4556  2018-04-26 18:20  UVC_Extension\CMakeFiles\3.5.1\CMakeCXXCompiler.cmake
     文件        8640  2018-04-26 18:20  UVC_Extension\CMakeFiles\3.5.1\CMakeDetermineCompilerABI_C.bin
     文件        8656  2018-04-26 18:20  UVC_Extension\CMakeFiles\3.5.1\CMakeDetermineCompilerABI_CXX.bin
     文件         402  2018-04-26 18:20  UVC_Extension\CMakeFiles\3.5.1\CMakeSystem.cmake
     目录           0  2018-05-25 11:23  UVC_Extension\CMakeFiles\3.5.1\CompilerIdC\
     文件       16423  2018-04-26 18:20  UVC_Extension\CMakeFiles\3.5.1\CompilerIdC\CMakeCCompilerId.c
     文件        8800  2018-04-26 18:20  UVC_Extension\CMakeFiles\3.5.1\CompilerIdC\a.out
     目录           0  2018-05-25 11:23  UVC_Extension\CMakeFiles\3.5.1\CompilerIdCXX\
     文件       16406  2018-04-26 18:20  UVC_Extension\CMakeFiles\3.5.1\CompilerIdCXX\CMakeCXXCompilerId.cpp
     文件        8808  2018-04-26 18:20  UVC_Extension\CMakeFiles\3.5.1\CompilerIdCXX\a.out
     文件         637  2018-09-21 15:17  UVC_Extension\CMakeFiles\CMakeDirectoryInformation.cmake
     文件       41093  2018-04-26 18:20  UVC_Extension\CMakeFiles\CMakeOutput.log
     目录           0  2018-09-27 16:10  UVC_Extension\CMakeFiles\CMakeTmp\
     文件        2120  2018-09-21 15:17  UVC_Extension\CMakeFiles\Makefile.cmake
     文件        3070  2018-09-21 15:17  UVC_Extension\CMakeFiles\Makefile2
     文件         171  2018-09-21 15:17  UVC_Extension\CMakeFiles\TargetDirectories.txt
     文件          85  2018-09-21 15:17  UVC_Extension\CMakeFiles\cmake.check_cache
     文件       12696  2018-04-26 18:20  UVC_Extension\CMakeFiles\feature_tests.bin
     文件         688  2018-04-26 18:20  UVC_Extension\CMakeFiles\feature_tests.c
     文件       10011  2018-04-26 18:20  UVC_Extension\CMakeFiles\feature_tests.cxx
     目录           0  2018-09-27 15:03  UVC_Extension\CMakeFiles\play.dir\
     文件       31825  2018-09-27 15:03  UVC_Extension\CMakeFiles\play.dir\CXX.includecache
     文件         630  2018-09-21 15:17  UVC_Extension\CMakeFiles\play.dir\DependInfo.cmake
     文件        5021  2018-09-21 15:17  UVC_Extension\CMakeFiles\play.dir\build.make
     文件      276424  2018-09-27 15:03  UVC_Extension\CMakeFiles\play.dir\capture.cpp.o
     文件         233  2018-09-21 15:17  UVC_Extension\CMakeFiles\play.dir\cmake_clean.cmake
............此处省略51个文件信息

评论

共有 条评论