打印

有调过网口的给点建议吧,谢谢了。

[复制链接]
1285|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jxmzzr|  楼主 | 2013-11-8 18:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pi, IO, gp, GPIO, se
最近在学习以太网,看了好几个开发板的例子,上面都是通过网页来控制LED,我只关心它怎么处理接收的数据的,但是看了程序有点看不懂,麻烦懂的指点一下,不胜感激。程序如下:      
     cmd = analyse_get_url((char *) &(buf[dat_p + 5]));
            // for possible status codes see:
            
            if (cmd ==(u8)-1)
            {
               plen = fill_tcp_data_p(buf, 0, PSTR("HTTP/1.0 401 Unauthorized\r\nContent-Type: text/html\r\n\r\n<h1>401 Unauthorized</h1>"));
               goto SENDTCP;
            }
            if (cmd == 1)
            {
               PC8 = 0; PC9 = 0; PC10 = 0; PC11 = 0;
      GPIO_SetBits(GPIOD,GPIO_Pin_8);
      GPIO_SetBits(GPIOD,GPIO_Pin_9);
      GPIO_SetBits(GPIOD,GPIO_Pin_10);
      GPIO_SetBits(GPIOD,GPIO_Pin_11);
               i = 1;
            }
            if (cmd == 0)
            {
               //LED1OFF();
               PC8 = 1; PC9 = 1; PC10 = 1; PC11 = 1;
      GPIO_ResetBits(GPIOD,GPIO_Pin_8);
      GPIO_ResetBits(GPIOD,GPIO_Pin_9);
      GPIO_ResetBits(GPIOD,GPIO_Pin_10);
      GPIO_ResetBits(GPIOD,GPIO_Pin_11);
               i = 0;
            }
// takes a string of the form password/commandNumber and analyse it
// return values: -1 invalid password, otherwise command number
//                -2 no command given but password valid
u8 analyse_get_url(char* str)//判断字符串与密码是否相同,是否符合规范
{
   u8 i = 0;
   if (verify_password(str) == 0)
   {
      return((u8)-1);
   }
   // find first "/"
   // passw not longer than 9 char:
   while (*str && i<10 && *str>',' && *str < '{')
   {
      if (*str == '/')
      {
         str++;
         break;
      }
      i++;
      str++;
   }
   if (*str <0x3a && *str> 0x2f)   //是否为0-9
   {
      // is a ASCII number, return it
      return(*str - 0x30);           //  0+0x30=‘0’
   }
   return((u8)-2);
}

其中在 cmd = analyse_get_url((char *) &(buf[dat_p + 5]))中为什么只判断buf中的dat_p+5这一位,当我别的位就是报头吗? analyse_get_url(char* str)函数应该是返回一个数字吧? 我要是想看看所有的数据怎么办,? 我也不知道我说的明不明白。有调过网口的给点建议吧,谢谢了。

沙发
aozima| | 2013-11-8 20:41 | 只看该作者
还是使用现成的协议栈吧。

使用特权

评论回复
板凳
网络转接| | 2013-11-9 13:49 | 只看该作者
https://bbs.21ic.com/icview-631144-1-1.html 这里的笔记看看吧  只要搞懂回调函数那些 就行了

使用特权

评论回复
地板
拿起书本| | 2013-11-11 10:13 | 只看该作者
好好看一下simple_server.c,然后再看一下那个页中LED点亮和关闭时有什么不同,就明白了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

460

主题

2188

帖子

12

粉丝