?? 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 + -