#include #include #define MAXHIST 100 static unsigned char pagetop[] = "Door Status"; static unsigned char ph1[] = "\"eZ80"; static unsigned char ph2[] = "

EET Security System
Powered by the eZ80 Webserver"; static unsigned char ph3[] = "

eZ80 Webserver Security System
Electrical Engineering Technology
Broome Community College
\"Red
Door Status as of "; static unsigned char pagefoot[] = "\"Red"; char *doortab[] = { {"217 Microprocessor Lab Wing Door "}, {"217 Microprocessor Lab Main Door "}, {"217 Microprocessor Lab Aux. Door "}, {"201 Main Office "}, {"219 Development Systems Lab Main Door"}, {"219 Development Systems Lab Wing Door"}, {"218 Classroom Main Door "}, {"218 Classroom Wing Door "}, // 8 {"215 Circuits Lab Main Door "}, {"215 Circuits Lab Wing Door "}, {"214 Technicians Lab Wing Door "}, {"214 Technicians Lab Main Door "}, {"213 Electronics Lab Wing Door "}, {"213 Electronics Lab Main Door "}, {"212 Faculty Office (Bina) "}, {"209 Faculty Office (Don) "}, // 16 {"208 Machines Lab Wing Door "}, {"208 Machines Lab Main Door "}, {"207 Construction Lab Wing Door "}, {"207 Construction Lab Main Door "}, {"206 Faculty Office (Bruce) "}, {"205 Faculty Office (Gary) "}, {"204 Design and Fab. Lab Main Door "}, {"204 Design and Fab. Lab Wing Door "}, // 24 {"203 FORTRAN Lab Main Door "}, {"203 FORTRAN Lab Wing Door "}, {"202 Shipping and Receiving "}, //27th door {"Reserved "}, {"Reserved "}, {"Reserved "}, {"Reserved "}, {"Reserved "} }; unsigned long int dhist[MAXHIST][3]; unsigned char cdoors[4]; unsigned char ndoors[4]; int si; int dstat(int door); int doors_cgi(struct http_request *request) { char tmpbuf[132]; char *str; int y; unsigned long now; char tstr[40]; http_output_reply(request,HTTP_200_OK); __http_write(request,pagetop,sizeof(pagetop)-1); __http_write(request,ph1,sizeof(ph1)-1); __http_write(request,ph2,sizeof(ph2)-1); __http_write(request,ph3,sizeof(ph3)-1); __http_write(request,ph4,sizeof(ph4)-1); gettime(&now); ascdate(now,tstr); tstr[strlen(tstr)-3] = '\0'; sprintf(tmpbuf,"%s

",tstr); __http_write(request,tmpbuf,strlen(tmpbuf)); sprintf(tmpbuf,""); __http_write(request,tmpbuf,strlen(tmpbuf)); for(y = 0; y < 16; y++) { sprintf(tmpbuf,"",tstr); __http_write(request,tmpbuf,strlen(tmpbuf)); } sprintf(tmpbuf,"
%s",doortab[y]); __http_write(request,tmpbuf,strlen(tmpbuf)); if(dstat(y)) { sprintf(tmpbuf,""); __http_write(request,tmpbuf,strlen(tmpbuf)); } else { sprintf(tmpbuf,""); __http_write(request,tmpbuf,strlen(tmpbuf)); } sprintf(tmpbuf,"%s",doortab[y+16]); __http_write(request,tmpbuf,strlen(tmpbuf)); if(dstat(y+16)) { sprintf(tmpbuf,""); __http_write(request,tmpbuf,strlen(tmpbuf)); } else { sprintf(tmpbuf,""); __http_write(request,tmpbuf,strlen(tmpbuf)); } sprintf(tmpbuf,"
",tstr); __http_write(request,tmpbuf,strlen(tmpbuf)); __http_write(request,pagefoot,sizeof(pagefoot)-1); return 0; } int dstat(int door) { if(door < 8) { return (cdoors[0] >> door) & 1; } else if(door < 16) { return (cdoors[1] >> (door - 8)) & 1; } else if(door < 24) { return (cdoors[2] >> (door - 16)) & 1; } else { return (cdoors[3] >> (door - 24)) & 1; } }