基于web的嵌入式远程监控系统 第29页 共34页
char name[5]; int i=0; int j=0; int k; int status=1; int setpwm=0;
int factor=DCM_TCNTB0/1024;
if((dcm_fd=open(DCM_DEV,O_WRONLY))<0) {
printf(\return 1; }
printf(\
req_method=getenv(\input=getcgidata(stdin,req_method); k=strlen(input); printf(\for(i=9;i name[j++]=input[i]; } name[j]='\\0'; printf(\ 29 基于web的嵌入式远程监控系统 第30页 共34页 if(j<6) { i=0; if(name[i]=='s') if(name[i+1]=='t') if(name[i+2]=='a') if(name[i+3]=='r') if(name[i+4]=='t') setpwm=100; ioctl(dcm_fd,DCM_IOCTRL_SETPWM,(setpwm*factor)); printf(\} else ERROR; else ERROR; else if(name[i+2]=='o') if(name[i+3]=='p') if(name[i+4]=='\\0') setpwm=0; ioctl(dcm_fd,DCM_IOCTRL_SETPWM,(setpwm*factor)); printf(\ 30 基于web的嵌入式远程监控系统 第31页 共34页 } else ERROR; else ERROR; else ERROR; else ERROR; else ERROR; } Else ERROR; return 0;} char* getcgidata(FILE* fp,char* requestmethod) { char* input; int len; int size=1024; int i=0; if(!strcmp(requestmethod,\{ input=getenv(\ 31 基于web的嵌入式远程监控系统 第32页 共34页 return input; } else if(!strcmp(requestmethod,\{len=atoi(getenv(\input=(char*)malloc(sizeof(char)*(size+1)); if(len==0) { input[0]='\\0'; return input; } while(1) { input[i]=(char)fgetc(fp); if(i==size) { input[i+1]='\\0'; return input; } --len; if(feof(fp)||(!(len))) { i++; input[i]='\\0'; 32