微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于ARM嵌入式IPCamera的设计与实现

基于ARM嵌入式IPCamera的设计与实现

时间:04-29 来源:互联网 点击:

rn -1; }

  /***内存映射***/

  if (v4l_grab_frame(&vd, 0))

  return -1;

  if (v4l_grab_sync(&vd))

  return -1;

  img = device_get_address(&vd);

  /***读取图像数据***/

  p=img;

  for (i=0;i《PAL_NC_HEIGHT;i++)

  for (j=0;j《PAL_NC_WIDTH;j++)

  { tmpc=*(p);

  *(p)=*(p+2);

  *(p+2)=tmpc;

  p+=3; }

  /***转换图像数据格式,保存为jpg文件***/

  if (write_jpeg(fileName, img, 70, 0))www.51kaifa.com

  return -1;

  ┅

  }

  4.2 Web服务程序的设计

  Web服务是通过http协议与客户端通信,工作流程如图2所示。http是一个请求、响应协议,即客户端发出一个请求,服务器端则响应这个请求。http利用可靠的TCP协议连接,默认使用80端口。目前市场上有许多Web 服务程序,但要将其移植到本系统中需要一定的工作量,所以可以设计一个简单的Web服务程序。程序的主函数如下:

  

  图2 Web工作流程图

  int main(int argc, char *argv[])

  {┅

  /*设置信号处理句柄*/

  signal(SIGCHLD, SIG_IGN);

  signal(SIGPIPE, SIG_IGN);

  ┅

  /*建立TCP流SOCKET*/

  if (argc 》 1 && !strcmp(argv[1], "-i")) {

  fclose(stderr);

  HandleConnect(0);

  exit(0);

  }

  if((s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {

  perror("Unable to obtain network");

  exit(1);

  }

  if((setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *)&true,

  sizeof(true))) == -1) {

  perror("setsockopt failed");

  exit(1);

  }

  server_sockaddr.sin_family = AF_INET;

  server_sockaddr.sin_port = htons(SERVER_PORT);

  server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);

  /*绑定监听端口*/

  if(bind(s, (struct sockaddr *)&server_sockaddr,

  sizeof(server_sockaddr)) == -1) {

  perror("Unable to bind socket");

  exit(1);

  }

  /*设置允许客户连接数*/

  if(listen(s, 8*3) == -1) {

  perror("Unable to listen");

  exit(4);

  }

  /*侦听客户连接请求并进行处理*/

  while (1) {

  len = sizeof(ec);

  if((fd = accept(s, (void *)&ec, &len)) == -1) {

  exit(5);

  close(s);

  }

  HandleConnect(fd);

  }

  4.3 GPRS操作控制程序设计

  GPRS操作程序主要任务是监视手机短信,然后根据短信决定具体操作。程序主要利用GPRS的AT命令和SOCKET套接字来完成短信发送和图片传输。GPRS操作程序主函数如下:

  main()

  {┅

  { /**根据条件拍照***/

  if(TakePicture==TRUE)

  { remove("1.jpg");

  rename("2.jpg","1.jpg");

  ┅

  rename("6.jpg","5.jpg");

  cap("6.jpg");

  }

  /**根据条件给手机发图片***/

  if(SendPicture==TRUE)

  SendPicToMob("6.jpg");

  }

  ┅

  }

  5 结束语

  在样机中,硬件由3部分组成,即:核心板、主板和GPRS模块;引导使用vivi;操作系统采用linux2.6.0。系统经过测试,效果较好。本文作者创新点是:利用GSM网络和Internet网络控制远程拍照,并将拍下的照片发布在Internet供用户浏览。这种产品体积小、可靠性高、无需专人管理,非常适合于无人值守的环境。它将会有较好的应用前景。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top