⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 egi_time.lst

📁 世纪民生公司的带网络功能的单片机CS6209开发http服务器的演示源代码。
💻 LST
字号:
C51 COMPILER V7.50   EGI_TIME                                                              10/12/2006 15:31:45 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE EGI_TIME
OBJECT MODULE PLACED IN .\Release\EGI_TIME.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE egi_funcs\EGI_TIME.C LARGE OPTIMIZE(9,SIZE) BROWSE ORDER MODDP2 INCDIR(.\WE
                    -BPAGE\;..\..\inc\) DEBUG OBJECTEXTEND PRINT(.\Release\EGI_TIME.lst) OBJECT(.\Release\EGI_TIME.obj)

line level    source

   1          /*
   2           * 
   3           * Egi_stat.c
   4           * 
   5           * Part of the Myson Century CS620X     demo program.
   6           *
   7           * Authors: LY Lin, WM Wang, IJ Chen, WH Lee
   8           *
   9           * Egi_stat.c contains HTTP status.cgi callback routine.
  10           *
  11           * This program was developed using the Keil 8051 C uVision 2 system.
  12           * The Keil compiler MUST be used if working with Myson Century supplied
  13           * firmware.
  14           *
  15           * 
  16           *
  17          */
  18          
  19          
  20          #include <stdio.h>
  21          #include <string.h>
  22          #include <ctype.h>
  23          #include <stdlib.h>
  24          #include "ether.h"
  25          #include "netutil.h"
  26          #include "ip.h"
  27          #include "tcp.h"
  28          #include "config.h"
  29          #include "http.h"
  30          #include "time.h"
  31          #include "rtc_api.h"
  32          //extern xdata unsigned char PORTB_EN;
  33          //extern xdata unsigned char PORTB;
  34           int x=0,y=0;
  35          //sfr P1=0x90;
  36          /************************************************************************
  37          /*      Function Name : status_resp                                                                                     *
  38          /*                                                                                                                                              *
  39          /*      Arguments :                                                                                                             *
  40          /*                      TSOCK xdata *ts: Point to TSOCK.                                                        *
  41          /*                      char xdata *str: Point to egi comment tag string(<!--#)         *
  42          /*                                                       or     NULL if this function is first time be  *
  43          /*                                                       called.                                                                        *
  44          /*                                                                                                                                              *
  45          /*      Return :                                                                                                                        *
  46          /*                      None                                                                                                            *
  47          /*  Comment :                                                                                                                   *
  48          /*                      This function is a callback function for status.cgi. First,     *
  49          /*                      this function be called on the start of status.cgi with         *
  50          /*                      str=NULL. Then when webpage meet egi comment tag(<!--#) ,       *
  51          /*                      this function will be called , the 'str' is point to egi        *
  52          /*                      comment tag.                                                                                            *
  53          /*                                                                                                                                              *
  54          /************************************************************************/
C51 COMPILER V7.50   EGI_TIME                                                              10/12/2006 15:31:45 PAGE 2   

  55          void time_resp(TSOCK xdata *ts, char xdata *str)
  56          {
  57   1          APPDATA *adp;
  58   1              RAM_WEB_PAGE *ptr_web_page;
  59   1              unsigned int hour_val,min_val;
  60   1              unsigned char *temp;
  61   1              unsigned int year_val,mon_val,date_val;
  62   1              unsigned int day_val=0;
  63   1              int webdebug=0;
  64   1              unsigned char  *s,*p,*q;
  65   1              char *dest;
  66   1              char dest2[16];
  67   1          adp = (APPDATA *)ts->app;
  68   1          if (!str) /*The egi function is called the first time.*/
  69   1          {/*Init app for time.cgi. */
  70   2              adp->egi = time_resp;
  71   2              ptr_web_page = search_get_web_page ("time.cgi");
  72   2              adp->in = ptr_web_page->RAM_WEB_PAGE_DATA;
  73   2                  adp->file_length = ptr_web_page->RAM_WEB_PAGE_LEN;
  74   2                      s=find_connvar(ts,"L1");
  75   2                      while(*s)
  76   2                      {
  77   3                              s=find_connvar(ts,"U1");
  78   3                              p=find_connvar(ts,"U2");
  79   3                              if(!*s)
  80   3                                      break;
  81   3                              s=s+3;
  82   3                              if((isdigit(*s)||isdigit(*(p+3)))==0)
  83   3                              {
  84   4                                      x=0;
  85   4                                      break;
  86   4                              }
  87   3                              if(isdigit(*s)==0)
  88   3                              {
  89   4                                      x=1;
  90   4                                      break;
  91   4                              }
  92   3                              hour_val=strtoul(s,&temp,10);
  93   3                              p=p+3;
  94   3                              if(isdigit(*p)==0)
  95   3                              {       
  96   4                                      x=1;
  97   4                                      break;
  98   4                              }
  99   3                              min_val=strtoul(p,&temp,10);
 100   3                              if(!((min_val<60)&&(hour_val<24)))
 101   3                              {
 102   4                                      x=2;
 103   4                                      break;
 104   4                              }
 105   3                              rtc_time_write(0x06,hour_val);
 106   3                              rtc_time_write(0x05,min_val);
 107   3                              break;
 108   3                      }
 109   2                      s=find_connvar(ts,"L1");
 110   2                      while(*s)
 111   2                      {
 112   3                              s=find_connvar(ts,"V1");
 113   3                              p=find_connvar(ts,"V2");
 114   3                              q=find_connvar(ts,"V3");
 115   3                              if(!*s)
 116   3                                      break;
C51 COMPILER V7.50   EGI_TIME                                                              10/12/2006 15:31:45 PAGE 3   

 117   3                              s=s+3;
 118   3                              if((isdigit(*s)||isdigit(*(p+3))||isdigit(*(q+3)))==0)
 119   3                              {
 120   4                                      y=0;
 121   4                                      break;
 122   4                              }
 123   3                              if(isdigit(*s)==0)
 124   3                              {
 125   4                                      y=1;
 126   4                                      break;
 127   4                              }
 128   3                              year_val=strtoul(s,&temp,10);
 129   3                              p=p+3;
 130   3                              if(isdigit(*p)==0)
 131   3                              {
 132   4                                      y=1;
 133   4                                      break;
 134   4                              }
 135   3                              mon_val=strtoul(p,&temp,10);
 136   3                              q=q+3;
 137   3                              if(isdigit(*q)==0)
 138   3                              {
 139   4                                      y=1;
 140   4                                      break;
 141   4                              }
 142   3                              date_val=strtoul(q,&temp,10);
 143   3                              if(!((mon_val<=12)&&(date_val<=31)&&(year_val>2000)))
 144   3                              {
 145   4                                      y=2;
 146   4                                      break;
 147   4                              }
 148   3                              day_val=get_days(year_val,mon_val,date_val);
 149   3                              rtc_date_write(0x07,day_val);
 150   3                              break;
 151   3                      }
 152   2          }
 153   1          else/*Egi comment tag.*/
 154   1          {
 155   2              str += EGI_STARTLEN;/*Skip "<!--#" .*/
 156   2                      while(!strncmp(str, "$label0", 7) )//&& isdigit(*(str+7)))
 157   2              {
 158   3                      if(y==1)
 159   3                      {
 160   4                              buff_instr(&ts->txb,"please input date entirely");
 161   4                              y=0;
 162   4                              break;
 163   4                      }
 164   3                      
 165   3                      if(y==2)
 166   3                      {
 167   4                              buff_instr(&ts->txb,"please input date correctly");
 168   4                              y=0;
 169   4                              break;
 170   4                      }
 171   3                      dest=print_current_date();
 172   3                      sprintf(dest2,"%s\n",dest);
 173   3                      buff_instr(&ts->txb, dest2);
 174   3                      break;
 175   3              }
 176   2              while(!strncmp(str, "$label1", 7))// && isdigit(*(str+7)))
 177   2              {
 178   3                      if(x==1)
C51 COMPILER V7.50   EGI_TIME                                                              10/12/2006 15:31:45 PAGE 4   

 179   3                      {
 180   4                              buff_instr(&ts->txb,"please input time entirely");
 181   4                              x=0;
 182   4                              break;
 183   4                      }
 184   3                      if(x==2)
 185   3                      {
 186   4                              buff_instr(&ts->txb,"please input time correctly");
 187   4                              x=0;
 188   4                              break;
 189   4                      }
 190   3                  //i = *(str+7) - '0';
 191   3              dest=print_current_time();
 192   3                      sprintf(dest2,"%s\n",dest);
 193   3                      buff_instr(&ts->txb, dest2);
 194   3                      break;
 195   3              }       
 196   2          }
 197   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1074    ----
   CONSTANT SIZE    =    157    ----
   XDATA SIZE       =      4      53
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -