TimeHandler test program for the HTTPServer
Dependencies: EthernetNetIf mbed HTTPServer
Diff: TimeHandler.cpp
- Revision:
- 0:b37980ea1c2f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TimeHandler.cpp Thu Feb 03 17:51:51 2011 +0000 @@ -0,0 +1,105 @@ +#include "TimeHandler.h" +#include <time.h> + +#include "dbg/dbg.h" + +TimeHandler::TimeHandler(const char* rootPath, const char* path, TCPSocket* pTCPSocket) : HTTPRequestHandler(rootPath, path, pTCPSocket) +{ +} + +TimeHandler::~TimeHandler() +{ + DBG("Handler destroyed\r\n"); +} + +const char* res1 = +"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n\ +<HTML>\n\ +<HEAD>\n\ +<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html;charset=Shift_JIS\">\n\ +<META HTTP-EQUIV=\"Content-Script-Type\" CONTENT=\"text/javascript\">\n\ +<TITLE>DiffTime</TITLE>\n\ +</HEAD>\n\ +<BODY>\n\ +<SCRIPT LANGUAGE=\"javascript\" TYPE=\"text/javascript\">\n\ +<!--\n\ +var d_ini = new Date();\n\ +var d_svr = new Date(\""; + +const char* res3 = +"\");\n\ +document.write(\"<FORM NAME='form1'><INPUT TYPE='text' NAME='text1' SIZE=100><br><INPUT TYPE='text' NAME='text2' SIZE=100></FORM>\");\n\ +ShowDiff();\n\ +function ShowDiff(){\n\ + var d_pc = new Date();\n\ + var d_ts = new Date(d_svr - (d_ini - d_pc));\n\ + document.form1.text1.value = \"TS:\" + d_ts.toString();\n\ + document.form1.text2.value = \"PC:\" + d_pc.toString() + \" (Diff:\" + Math.round((d_ini - d_svr) / 1000) + \" [sec])\";\n\ + setTimeout(\"ShowDiff()\",1000);\n\ +}\n\ +// -->\n\ +</SCRIPT>\n\ +</BODY>\n\ +</HTML>\n"; + +void setTestRTC(){ + struct tm t; + t.tm_year = 2011 - 1900; //109 year since 1900 + t.tm_mon = 2 - 1; //9 0-11 + t.tm_mday = 4; //28 1-31 + t.tm_hour = 2; //11 0-23 + t.tm_min = 36; //42 0-59 + t.tm_sec = 0; //37 0-59 + set_time(mktime(&t)); +} + +void TimeHandler::doGet() +{ + DBG("In TimeHandler::doGet()\r\n"); + + //setTestRTC(); // for diff debug + + time_t now = time(0); + struct tm *t = localtime(&now); + char res2[100]; + sprintf(res2, "%04d/%02d/%02d %02d:%02d:%02d", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec); + printf("HTTPD TimeHandler RTC=%s\n", res2); + + int len1 = strlen(res1); + int len2 = strlen(res2); + int len3 = strlen(res3); + + setContentLen( len1 + len2 + len3); + respHeaders()["Connection"] = "close"; + writeData(res1, len1); + writeData(res2, len2); + writeData(res3, len3); + DBG("Exit TimeHandler::doGet()\r\n"); +} + +void TimeHandler::doPost() +{ + +} + +void TimeHandler::doHead() +{ + +} + + +void TimeHandler::onReadable() //Data has been read +{ + +} + +void TimeHandler::onWriteable() //Data has been written & buf is free +{ + DBG("TimeHandler::onWriteable() event\r\n"); + close(); //Data written, we can close the connection +} + +void TimeHandler::onClose() //Connection is closing +{ + //Nothing to do +}