📄 http.c
字号:
case 'd':
writeHttpHeader();
printf(outdataMem, "<html><body>");
printf(outdataMem, "OK d");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, "</body></html> \f");
e_code(A1_8, OFF8);
lcd_pos_xy(1,2);
printf(lcd_escreve, "Luz 1 Off ");
break;
case 'e':
writeHttpHeader();
printf(outdataMem, "<html><body>");
printf(outdataMem, "OK e");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, "</body></html> \f");
e_code(A1_8, B);
lcd_pos_xy(1,2);
printf(lcd_escreve, "Brilho + ");
break;
case 'f':
writeHttpHeader();
printf(outdataMem, "<html><body>");
printf(outdataMem, "OK f");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, "</body></html> \f");
e_code(A1_8, D);
lcd_pos_xy(1,2);
printf(lcd_escreve, "Brilho - ");
break;
case 'a':
writeHttpHeader();
printf(outdataMem, "<html><body>");
printf(outdataMem, "OK a");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, "</body></html> \f");
e_code(A1_8, OFF1);
lcd_pos_xy(1,2);
printf(lcd_escreve, "Tomada 1 Off ");
break;
case 'b':
e_code(A1_8, ON1);
writeHttpHeader();
printf(outdataMem, "<html><body>");
printf(outdataMem, "OK b");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, "</body></html> \f");
lcd_pos_xy(1,2);
lcd_escreve('T'); // atualiza segunda linha do LCD
lcd_escreve('o');
lcd_escreve('m');
lcd_escreve('a');
lcd_escreve('d');
lcd_escreve('a');
lcd_escreve(' ');
lcd_escreve('1');
lcd_escreve(' ');
lcd_escreve('O');
lcd_escreve('n');
lcd_escreve(' ');
lcd_escreve(' ');
lcd_escreve(' ');
break;
case 'M':
writeHttpHeader();
printf(outdataMem, "<html><body>");
printf(outdataMem, "OK M");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, "</body></html> \f");
//According to the second number on the request, determine if we're writing on line one or two of the 16x2 lcd display
if (html_request_data[1] == '1')
lcd_pos_xy(1,1);
else
if (html_request_data[1] == '2')
lcd_pos_xy(1,2);
i = 2;
while (c = html_request_data[i++])
lcd_escreve(c); // atualiza segunda linha do LCD
while (i++ < 19)
lcd_escreve(' ');
break;
case 'G':
writeHttpHeader();
printf(outdataMem, "<html><body>");
printf(outdataMem, "OK G");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, "</body></html> \f");
lcd_pos_xy(1,2);
// printf(lcd_escreve, "Remote On %c%c ", html_request_data[1], html_request_data[2] );
printf(lcd_escreve, "Camera Cmd On %c%c ", html_request_data[1], html_request_data[2] );
// i = 1;
// while (c = html_request_data[i++])
// lcd_escreve(c); // atualiza segunda linha do LCD
//'^OFF:a1$' + #13#10
#use rs232(baud=19200,parity=N,xmit=PIN_B6,rcv=PIN_B7,bits=8,errors)
printf( "^ON:%c%c$\r\n", html_request_data[1], html_request_data[2] );
#use rs232(baud=19200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,errors)
break;
case 'F':
writeHttpHeader();
printf(outdataMem, "<html><body>");
printf(outdataMem, "OK F");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, "</body></html> \f");
lcd_pos_xy(1,2);
printf(lcd_escreve, "Camera Cmd Off %c%c ", html_request_data[1], html_request_data[2] );
// i = 1;
// while (c = html_request_data[i++])
// lcd_escreve(c); // atualiza segunda linha do LCD
//'^OFF:a1$' + #13#10
#use rs232(baud=19200,parity=N,xmit=PIN_B6,rcv=PIN_B7,bits=8,errors)
printf( "^OFF:%c%c$\r\n", html_request_data[1], html_request_data[2] );
#use rs232(baud=19200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,errors)
break;
case 't':
writeHttpHeader();
printf(outdataMem, "<html><body>");
printf(outdataMem, "OK t");
//Mostra a temperatura se o recurso estiver habilidatado
#ifdef ENABLE_TEMPERATURE
printf(outdataMem, "<center>Temperature: %3.2f</center><br>", getTemp());
#endif
printf(outdataMem, " ");
printf(outdataMem, " ");
printf(outdataMem, "</body></html> \f");
lcd_pos_xy(1,2);
printf(lcd_escreve, "Got Temp: %3.2f ", getTemp());
break;
default:
//If none of the pages matched, we go to the default one
writeHttpHeader();
printf(outdataMem, "<html><body>");
printf(outdataMem, "Welcome to picnic 3.0");
printf(outdataMem, "<br>");
// printf(outdataMem, "<center>This PIC has already been accessed %lu times</center><br>", accessCount);
// printf(outdataMem, " ");
// printf(outdataMem, " <br><br><br> ");
printf(outdataMem, " Firmware Version: 12-09-2005<br> ");
printf(outdataMem, " By rafael@3wt.com.br ");
printf(outdataMem, "</body></html> \f");
/*
// printf(outdataMem, "<h1><center>P I C N I C 3 . 0</center></h1>\r\n");
// printf(outdataMem, "<p align=center><font size=4><b>PIC18F452 WEB SERVER</b></font></p>\r\n");
// printf(outdataMem, "<p align=center>This PIC has already been accessed %lu times<br>\r\n", accessCount);
//If temperature sensor is on, show our temperature!
// printf(outdataMem, "<p align=center>Commands: WON osiris |WON soar");
// printf(outdataMem, " | Turn on Light | ");
//According to PIN_A0 state we show the user a different option in the main page!
// if(input(PIN_A0))
// printf(outdataMem, "<a href=d>Turn off fan</a><br>");
/// else
// printf(outdataMem, "<a href=f>Turn fan on</a><br>");
// printf(outdataMem, "<p><center>PIC Uptime: %02U:%02U:%02U", timeHours, timeMinutes, timeSeconds);
// printf(outdataMem, "<p><center>Client IP: %u.%u.%u.%u\r\n", IP_HEADER.SourceAddress.ip0, IP_HEADER.SourceAddress.ip1, IP_HEADER.SourceAddress.ip2, IP_HEADER.SourceAddress.ip3);
// printf(outdataMem, "<center><p>Thanks to Joel, Benito and Sapo!!!</p></center></body>\r\n");
// printf(outdataMem, "<p align=center><b>Rafael Aroca, Odemir Bruno</b></p></body>\r\n");
// printf(outdataMem, "</html> \f"); //All pages should end with a "\f"
*/
break;
}
chksum=20;
dir=0;
size=0;
//Compute page checksum and size
do {
char0=readMemData(dir);
if (char0=='\f') break;
dir+=1;
#ifdef DEBUG
printf("%C",char0);
#endif
char1=readMemData(dir);
dir+=1;
if (char1=='\f')
break;
#ifdef DEBUG
printf("%C",char1);
#endif
size+=2;
calc_chksum(make16(char0,char1));
} while(1);
htmlChecksum=chksum;
htmlSize=size;
#ifdef DEBUG
printf("Checksum = %LX\n\r", htmlChecksum);
printf("Size = %LX\n\r", htmlSize);
#endif
}
//Send the page stored in PIC's RAM memory to the NIC's TX Buffer
void sendHttpPage(void) {
//Vars
int16 pos; //Position we're reading in memory
int8 character; //Character we're sending to the nic
pos=0;
//Write byte by byte from PIC's memory to NIC's memory
do {
character=readMemData(pos);
if (character == '\f')
break;
pos+=1;
outdata(character);
} while(pos < htmlSize);
delay_ms(500);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -