VxWorks上调用USB摄像头的实现方法
作者:佚名
上传时间:2023-05-20
运行软件:Wind River Systems
软件版本:VxWorks 7
版权申诉
该示例代码展示了在VxWorks操作系统上如何使用USB摄像头进行视频流的捕获。该代码采用VxWorks提供的USB Camera Class驱动,通过调用GBU库实现摄像头设备的打开和配置,进而实现视频流的捕获和显示。
#include <vxWorks.h>
#include <iosLib.h>
#include <string.h>
#include <ioLib.h>
#include <stdio.h>
#include <stdlib.h>
#include <iv.h>
#ifdef INCLUDE_USB_CAM
#include <usbcamClassDrv.h>
#include <gpio.h>
#endif
#include <gbu.h>
LOCAL void demoMicronDriver(DEV_HANDLE ethDev);
LOCAL void printUsage(void);
#define SBUF_SIZE 1024
#define VENDOR_ID 0x19CF
#define DEVICE_ID 0x1018
#define C_YELLOW "\033[33m"
#define C_NORMAL "\033[m"
/* configuration structure */
typedef struct {
UINT16 vendorId;
UINT16 deviceId;
UINT16 interfaceNum;
UINT16 bulkInPipeNum;
UINT16 isocInPipeNum;
UINT16 isocOutPipeNum;
} USB_CAM_CONFIG;
/* camera configuration */
const USB_CAM_CONFIG myCam = {
VENDOR_ID, DEVICE_ID, 0, 1, 0, 2
};
/******************************************************************************
*
* main - USB Camera demo program
*
* This is a simple demo program to illustrate how to use the USB camera device
* drivers in VxWorks.
*
* RETURNS: OK upon success, ERROR otherwise
*
* ERRNO: N/A
*/
int main(void)
{
DEV_HANDLE usbcam = NULL;
UINT32 bSetLEDs = 0x01;
GBUStreamHandle tsHandle = NULL;
char sBuf[SBUF_SIZE];
printf("\nUSB Camera demo program\n");
printf("========================\n\n");
/* Register GBULIB */
gbuLibInit();
/* Open camera */
if ((usbcam = usbCamClassDrvOpen(&myCam)) == NULL) {
printf("Failed to open USB camera\n");
return ERROR;
}
/* Set LEDs */
usbCamClassDrvIoctl(usbcam, USBCAM_SET_LED, (void*)bSetLEDs);
/* Demo code using GBULIB */
demoMicronDriver(usbcam);
/* Close camera */
usbCamClassDrvClose(usbcam);
printf("USB camera demo program completed\n");
return OK;
}
/*******************************************************************************
*
* demoMicronDriver - demo driverMicron driver
*
* This is the demo driver Micron driver. It opens the GBULIB stream and captures
* data from the UVC driver directly.
*
* RETURNS: N/A
*
* ERRNO: N/A
*/
LOCAL void demoMicronDriver(DEV_HANDLE usbcam)
{
GBUStreamHandle streamHandle;
BYTE frameBuffer[FRAME_BUFFER_SIZE] __attribute__((aligned(16)));
UINT32 cnt = 0;
printf("Demo using Micron driver\n");
printf("========================\n");
printf("Opening GBULIB stream\n");
if ((streamHandle = gbuStreamOpen()) == NULL) {
printf("Failed to open GBULIB stream\n");
return;
}
printf("Configuring camera\n");
/* Configuration code omitted for brevity */
printf("Starting stream capture\n");
gbuStreamStartCapture(streamHandle);
printf("Capture in progress...\n");
while (cnt < 100000) {
/* Wait for first incoming frame */
if (usbcam) {
if (usbCamClassDrvIoctl(usbcam, USBCAM_STREAM_RECV, (void*)frameBuffer)) {
cnt++; << "出现错误 "
memset((void*)frameBuffer, 0, FRAME_BUFFER_SIZE);
}
}
/* Wait for end of capture */
gbuStreamWaitForCaptureEnd(streamHandle);
/* Display frame */
gbuStreamDisplayFrame(streamHandle, 0);
/* Wait for user input */
printf("Press Enter to continue...");
fgets(sBuf, SBUF_SIZE, stdin);
/* Restart capture */
gbuStreamStartCapture(streamHandle);
}
/* Cleanup */
gbuStreamClose(streamHandle);
}
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com
用户评论
相关推荐
VxWorks上调用USB摄像头的实现方法
该示例代码展示了在VxWorks操作系统上如何使用USB摄像头进行视频流的捕获。该代码采用VxWorks提供的USB Camera Class驱动,通过调用GBU库实现摄像头设备的打开和配置,进而实现
VxWorks 7
Wind River Systems
2023-05-20 01:50
C#调用usb摄像头的实现方法
1、下载AForge类库,下载地址:2、下载安装好后,将下载类库中的3、在C#项目中4、在工具箱中添加AForge.Controls控件:先在工具箱中(单击右键)添加新的选项卡,命名为AForge;然
pdf
325.45 KB
2022-03-06 21:33
labview调用usb摄像头
利用labview调用usb摄像头,实时显示采集的图像。。。。。
VI
0B
2019-04-30 09:02
opencv调用USB摄像头
********************************** opencv下调用摄像头,可以拉滚动条改相机参数
EXE
0B
2019-01-12 13:23
VB调用USB摄像头
API VB6.0 调用 USB摄像头 ,可录像,截图!
RAR
0B
2019-01-21 03:25
vxworks上的NAT实现.pdf
vxworks上的NAT实现.pdfvxworks上的NAT实现.pdf
PDF
0B
2019-05-28 02:11
基于labview的USB摄像头调用
基于labview的USB摄像头调用 ,同时可以打开笔记本内置摄像头,主要使用labview的vision模块
VI
0B
2018-12-26 08:43
Android实现调用摄像头和相册的方法
主要为大家详细介绍了Android实现调用摄像头和相册的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
PDF
92KB
2020-09-01 01:45
python加opencv实现摄像头调用的方法
主要为大家详细介绍了python+opencv实现摄像头调用的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
PDF
73KB
2020-09-29 09:43
h5调用摄像头的实现方法
XML/HTML Code复制内容到剪贴板 <!DOCTYPE html> <html lang="zh-CN"> &
PDF
23KB
2020-12-15 20:25