在线问答
直播中

陈明

11年用户 352经验值
擅长:可编程逻辑 嵌入式技术 处理器/DSP 接口/总线/驱动 控制/MCU RF/无线
私信 关注

【OK210试用体验】基于boa服务器,实现网页控制LED功能

    公司项目催的紧,好久没更新了。
   


一、实验目的:
        了解CGI的用法。以及如何将网页与服务器通信机制的了解。

二、实验现象预览:
    1.在浏览器输入开发板的IP,可以看到如下界面:
      QQ截图20150919092616.png
    2.选中open,点击submit按钮:网页提示open led successed.
    QQ截图20150919092702.png
    3.观察板子,可以看到D1的led已点亮
024E3F883C87F100D2D4C7DACB9BAB0D.png


三、代码分析
    1.首先看下html文件:
    重要的在这句“

    2.cgi程序:
    cgi程序使用CGIC库处理。CGIC的使用可以到他官网查看。
   cgiFormStringNoNewlines  是  CGIC中的函数,可以用来获取,表单数据。即之前浏览器地址栏的““http://192.168.199.200/cgi-bin/led.cgi?mode=led_on&button1=submit”。中,mode的值。可以看到。此次提交mode的值为 led_on。
     打开/dev/leds设备,使用ioctl控制led的亮灭即可。
  1. #include
  2. #include
  3. #include
  4. #include
  5. #include "cgic.h"
  6. #include
  7. #include
  8. #include
  9. #include
  10. #include



  11. char mode[64];

  12. void get_mode()
  13. {
  14.         cgiFormStringNoNewlines("mode",mode, 64);
  15. }



  16. int cgiMain()
  17. {       
  18.     int fd=0;
  19.     int rnt = 0;

  20.     get_mode();

  21.     fd = open("/dev/leds",0);

  22.     if(strncmp(mode,"led_off",7) == 0)
  23.     {
  24.         rnt = 1;
  25.         ioctl(fd,0,0);
  26.     }
  27.     else if(strncmp(mode,"led_on",6) == 0)
  28.     {
  29.         rnt = 2;
  30.         ioctl(fd,1,0);
  31.     }
  32.     else
  33.     {
  34.         

  35.     }
  36.    
  37.     cgiHeaderContentType("text/html");
  38.     fprintf(cgiOut,"n");
  39.     fprintf(cgiOut,"n");
  40.    
  41.     if(rnt == 0)
  42.     {
  43.         fprintf(cgiOut," OPEN LED FAILED!n");
  44.     }
  45.     else if(rnt == 1)
  46.     {
  47.         fprintf(cgiOut,"close led successed!n");
  48.     }
  49.     else if(rnt == 2)
  50.     {
  51.         fprintf(cgiOut,"open led successedn");
  52.     }
  53.     else
  54.     {
  55.         
  56.     }

  57.     fprintf(cgiOut,"n");
  58.     fprintf(cgiOut,"n");
  59.     close(fd);
  60.         return 0;

  61. }



回帖(5)

HelloWii

2015-9-21 08:54:14
不错。。。。
举报

栾新科

2015-10-26 11:47:12
智能家居适用
举报

shadowyingjian

2017-4-25 10:37:35
请问按照上面的步骤出现502一直解决不了,有办法解决吗?
举报

shadowyingjian

2017-4-25 10:37:36
请问按照上面的步骤出现502一直解决不了,有办法解决吗?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分