⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c~

📁 在ARM+Linux环境下
💻 C~
字号:
#include <stdio.h>#include <string.h>#include <malloc.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <signal.h>#include <stdlib.h>#include "spcav4l.h"#include <time.h>
#include <stdio.h>

#include <dirent.h>
struct vdIn videoIn0;struct vdIn videoIn1;static void Delay(int x){	int i,j,k;	for(i=0;i<x;i++)		for(j=0;j<0xff;j++)			for(k=0;k<0xff;k++);}unsigned char rgcon;int main(int argc, char **argv){   int fd,count;   	int grabmethod = 0;	int format = VIDEO_PALETTE_JPEG;	int width = 640;	int height = 480;     DIR *dir,*udisk_dir;
    struct dirent *next,*udisk_next;
    int dir_number=0,disk_num=0;
    int udisk_flag=0;      char videodevice0[] = "/dev/video0";  char videodevice1[] = "/dev/video1";  //char jpegfile[] = "/mnt/usb/2.jpg";  // char t=;     int h=0;    //time_t timep;    //time(&timep);              //strcat(path,ctime(&timep));    //strcat(path,picformat);       //printf(" :%s \n",path);            if((fd=open("/dev/led",O_RDONLY))==-1)       {        perror("open error");        exit(1);       }          /*不断检测读中断传回来的值,检测到则抓图*/ while(1) {      if(count=read(fd,&rgcon,4))//读中断传回来的值                 {           //printf("rgcon :%x\n",rgcon);           //exit(1);                      }       Delay(70);      if(rgcon==3) //检测到有中断发生            {                         //printf("rgcon :%x \n",rgcon);             char buff0[10];        char buff1[10];        char path0[128] = "/mnt/usb/A";        char path1[128] = "/mnt/usb/B";          h++;      //char picformat[]=".jpg";        sprintf(buff0,"%d",h);//把h变量格式转换        strcat(path0,buff0);//字符串连接函数        strcat(path0,".jpg");        sprintf(buff1,"%d",h);//把h变量格式转换        strcat(path1,buff1);//字符串连接函数        strcat(path1,".jpg");                 //打开目录
   			dir = opendir("/proc/bus/usb/001");
    		   if (!dir)
    			       {
        		fprintf(stderr, "Cannot open /dev/scsi\n");
				exit(1);
    			       }
    		              //读取目录内文件名
   		 	while((next = readdir(dir)) != NULL)
    			      {
    			dir_number++;            
    			       }            printf("dir_number is:%d\n",dir_number);
    		   closedir(dir);
    		 
    						//如果文件名大于6(除了 "." "..")说明U盘已经存在
   							if(dir_number>6)
    							{
    								udisk_dir = opendir("/dev/scsi/host0/bus0/target0/lun0");
    								if (!udisk_dir)
    										{
        									fprintf(stderr, "Cannot open /dev/scsi\n");
													exit(1);
    										}
   		 							while((udisk_next = readdir(udisk_dir)) != NULL)
    										{
    											disk_num++;
    										}
    									
    									dir_number=0;
    									udisk_flag=1;
    									//如果文件个数大于4,说明U盘是由N块flash组成,需要挂载disc
    									if(disk_num>4)
    	  										system("mknod /dev/udisk b 8 0");//system("某DOS命令")
    	  							else
    	  										system("mknod /dev/udisk b 8 1");
    	  							system("mount -t vfat /dev/udisk /mnt/usb");
    	  							printf("The udisk has installed\r\n");
    							}
    						
    	
    						if(dir_number==6)
    							{
    								dir_number=0;
    								udisk_flag=0;
    	  						system("umount /mnt/usb");
    	  						system("rm -rf /dev/udisk");
    	  						system("/test/udisk stop");
    	  						system("/test/udisk start");
    	  						printf("The udisk has uninstalled\r\n");
    							}
    						
    		dir_number=0; 
    		disk_num=0;
    		sleep(1);         memset(&videoIn0, 0, sizeof (struct vdIn));        memset(&videoIn1, 0, sizeof (struct vdIn));	      if(init_videoIn(&videoIn0, videodevice0, width, height, format,grabmethod)== 0)//第一个摄像头抓图                      {        	    Delay(200);          v4lGrab(&videoIn0, path0);                //抓图函数          if(grabmethod==1)          printf("you use mmap method!\n");          else if(grabmethod==0)  	       printf("you use read method!\n");	       printf("you have get a picture in %s\n",path0);                        }	     else	printf("can't open your camera!\n");          close_v4l (&videoIn0);       if(init_videoIn(&videoIn1, videodevice1, width, height, format,grabmethod)== 0)//第二个摄像头抓图                  {    	  Delay(200);                             v4lGrab(&videoIn1, path1);                //抓图函数        if(grabmethod==1)        printf("you use mmap method!\n");        else if(grabmethod==0)  	     printf("you use read method!\n");	     printf("you have get a picture in %s\n",path1);	          }	   else	printf("can't open your camera!\n");	   close_v4l (&videoIn1);             }   rgcon=0;      }      //close(fd);         return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -