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

湖北省建设人力资源网站快速进入网站

湖北省建设人力资源网站,快速进入网站,微信小程序 网站开发,品牌网络一: 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://wiki.neutronadmin.com/news/344809/

相关文章:

  • 网站制作公透明清晰如何做个购物网站
  • 来宾住房与城乡建设网站outlook WordPress设置
  • 网站自身维护珠海市企业网站制作服务机构
  • 网站开发大作业网站备案 加急
  • 万网一个ip建立多个网站prizm viewer wordpress
  • 宁波网站建设推荐荣盛网络好网站建设职业规划
  • 网站开发招投标书网站开发课程介绍
  • 查询域名官网的是那个网站吗seo全网营销的方式
  • 微信学校网站模板做面膜的网站
  • 网站焦点图制作教程php网站模板
  • 蓟县集团网站建设龙岩市住房和城乡建设厅网站
  • 茅台镇哪一家网站做的好南宫建设局网站首页
  • 模板建站哪个平台好经典网站代码
  • wordpress回收站在哪里泰安搭建公司
  • 西安+美院+网站建设资料软件
  • 雍鑫建设集团网站设计素材网站花瓣
  • 安阳网站制作中国建设有限公司官网
  • 那个网站有帮人做图的h5简单网页代码
  • 建设一个视频网站己18网站建设网站排名
  • 辽宁朝阳网站建设公司惠州哪家做网站好
  • 顺德新网站制作网站建设 技术方案
  • 小企业网站建设怎么做好服装网站建设公司
  • 用flask做的网站有哪些怎么自己开发一个app软件
  • 合肥网站建设方案咨询萤火虫网站建设优化
  • 科站网站商业网站的建设与维护
  • 网站建设 中关村凡科网登录下载
  • 锦州网站建设多少钱百度收录网站标题
  • 工信部网站备案查询电商网站 知名案例
  • 做网站的叫什么软件大都会app下载二维码
  • 做问卷调查用哪个网站好服务器出租网站模板