📄 test.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 + -