当前位置: 首页 > news >正文

茂名公司制作网站100%上热门文案

茂名公司制作网站,100%上热门文案,电商seo引流,国外十大服务器推荐一: ioctl函数的作用ioctl用于向设备发控制和配置命令 #xff0c;有些命令也需要读写一些数据#xff0c;但这些数据是不能用read/write读写的#xff0c;称为Out-of-band数据。也就是说#xff0c;read/write读写的数据是in-band数据#xff0c;是I/O操作的主体…一:    ioctl函数的作用ioctl用于向设备发控制和配置命令 有些命令也需要读写一些数据但这些数据是不能用read/write读写的称为Out-of-band数据。也就是说read/write读写的数据是in-band数据是I/O操作的主体而ioctl命令传送的是控制信息 其中的数据是辅助的数据。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数,所谓对I/O通道进行管理就是对设备的一些特性进行控制 例如在串口线上收发数据通过read/write操作而串口的波特率、校验位、停止位通过ioctl设置A/D转换的结果通过read读取而A/D转换的精度和工作频率通过ioctl设置。ioctl函数是文件结构中的一个属性分量就是说如果你的驱动程序提供了对ioctl的支持用户就可以在用户程序中使用ioctl函数控制设备的I/O通道。如果不用ioctl的话也可以实现对设备I/O通道的控制但那就是蛮拧了。例如我们可以在驱动程序中实现write的时候检查一下是否有特殊约定的数据流通过如果有的话那么后面就跟着控制命令(一般在socket编程中常常这样做)。但是如果这样做的话会导致代码分工不明程序结构混乱程序员自己也会头昏眼花的。所以我们就使用ioctl来实现控制的功能 。要记住用户程序所作的只是通过命令码告诉驱动程序它想做什么至于怎么解释这些命令和怎么实现这些命令这都是驱动程序要做的事情。二 ioctl()用法int ioctl(int fd, ind cmd, …)其中fd就是用户程序打开设备时使用open函数返回的文件标示符cmd就是用户程序对设备的控制命令至于后面的省略号那是一些补充参数一般最多一个有或没有是和cmd的意义相关的。下面是一个关于V4L视频采集中用到的用ioctl来配置视频采集设备(USB摄像头)的一些特性参数的例子1.   定义设备结构体struct vdIn {int fd ; //设备描述符char *videodevice ; //设备节点在linux下通用的视频采集设备节点为/dev/video0struct video_mmap vmmap;struct video_capability videocap;int mmapsize;struct video_mbuf videombuf;struct video_picture videopict;struct video_window videowin;struct video_channel videochan;int cameratype ;char *cameraname;char bridge[9];int sizenative; // available size in jpegint sizeothers;    // others paletteint palette; // available paletteint norme ; // set spca506 usb video grabberint channel ; // set spca506 usb video grabberint grabMethod ;unsigned char *pFramebuffer;unsigned char *ptframe[4];int framelock[4];pthread_mutex_t grabmutex;int framesizeIn ;volatile int frame_cour;int bppIn;int  hdrwidth;int  hdrheight;int  formatIn;int signalquit;};2.   设备节点赋值 /dev/video0是真实的物理摄像头设备在linux中的表示if (videodevice NULL || *videodevice 0){videodevice /dev/video0;}3.  调用 设备 初始化函数struct vdIn videoIn;  //在spcav4l.h中定义videodevice /dev/video0; //节点int width 352;  //宽int height 288;   //高int format VIDEO_PALETTE_JPEG; //格式int grabmethod 1;memset (videoIn, 0, sizeof (struct vdIn));if (init_videoIn(videoIn, videodevice, width, height, format,grabmethod) ! 0)if(debug) printf ( damned encore rate !!/n);4.   设备初始化函数传值int init_videoIn (struct vdIn *vd, char *device, int width, int height,int format, int grabmethod){int err -1;int i;if (vd NULL || device NULL)return -1;if (width 0 || height 0)return -1;if(grabmethod 0 || grabmethod 1)grabmethod 1; //read by default;// check formatvd-videodevice NULL;vd-cameraname NULL;vd-videodevice NULL;vd-videodevice (char *) realloc (vd-videodevice, 16);vd-cameraname (char *) realloc (vd-cameraname, 32);snprintf (vd-videodevice, 12, %s, device);if(debug) printf(video %s /n,vd-videodevice);memset (vd-cameraname, 0, sizeof (vd-cameraname));memset(vd-bridge, 0, sizeof(vd-bridge));vd-signalquit 1;//信号设置vd-hdrwidth width;vd-hdrheight height;/*          compute the max frame size   */vd-formatIn format; //传进来的 format VIDEO_PALETTE_JPEG;vd-bppIn GetDepth (vd-formatIn);vd-grabMethod grabmethod;        //mmap or readvd-pFramebuffer NULL;/* init and check all setting */err init_v4l (vd); // V4L初始化函数....................................................}
http://www.pierceye.com/news/503086/

相关文章:

  • 计算机网络技术就业方向及前景西安seo网站排名优化公司
  • 手机网站要求软文推广图片
  • 网站在哪里建立用h5开发的网站模板
  • 深圳建英文网站小学生作文网
  • 画室网站模板德阳 网站建设
  • 池州网站建设网站建设网站开发技术与应用课程设计
  • 淘宝上做网站可信吗怎么建设游戏试玩平台网站
  • 个人网站有哪些类型公众号开发教程零基础
  • 合肥做兼职网站户县住房和城乡建设局官方网站
  • 集团网站源码域名备案成功如何做网站
  • 吉林省建设监理协会网站诚信建设智慧团建官网登录
  • 萧县住房和城乡建设局网站文学网站模板下载
  • 家用电脑可以做网站吗wordpress获取文章信息
  • 山东公路建设集团网站wordpress插件代码
  • 惠州网站公司网站制作成app
  • 站群管理系统汕头网站建设和运营
  • 泉州哪里做网站开发攻击asp网站
  • 网站参考模板网络营销案例论文3000字
  • 网站开发 盈利采购网站模板
  • 营销网站建设的规则徐州经济开发区网站
  • 做动图的网站知乎wordpress 死链提交
  • 无锡网站维护公司安卓手机优化软件排名
  • 怎么查一个网站做的外链浏览器网站免费进入
  • 济南网站建设小程序必要网站用什么做的
  • 京东商城网站怎么做wordpress幻灯
  • 建设银行明细网站能查多久企业取名
  • 总行网站建设银行报培训机构是干什么的
  • 企业网站推广建议淳安千岛湖建设集团网站
  • 网站建设代码优化石家庄门户网站制作
  • 网站可以制作ios网站源码提取