SenseClient is an API to interact with Sen.se platform. Sen.se is the place where Humans, Machines, Objects, Environments, Information, Physical and Virtual spaces mix up, talk, intertwine, interact, enrich and empower each other.
Dependencies: NetServicesProxy
SenseHandler.cpp@1:0249701444ee, 2012-07-11 (annotated)
- Committer:
- mimil
- Date:
- Wed Jul 11 13:55:07 2012 +0000
- Revision:
- 1:0249701444ee
new version using a web server to receive messages from the sen.se platform
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mimil | 1:0249701444ee | 1 | #include "SenseHandler.h" |
mimil | 1:0249701444ee | 2 | |
mimil | 1:0249701444ee | 3 | |
mimil | 1:0249701444ee | 4 | SenseHandler::SenseHandler(const char* rootPath, const char* path, TCPSocket* pTCPSocket) : HTTPRequestHandler(rootPath, path, pTCPSocket) {} |
mimil | 1:0249701444ee | 5 | |
mimil | 1:0249701444ee | 6 | SenseHandler::~SenseHandler() {} |
mimil | 1:0249701444ee | 7 | |
mimil | 1:0249701444ee | 8 | |
mimil | 1:0249701444ee | 9 | |
mimil | 1:0249701444ee | 10 | void SenseHandler::doGet() { |
mimil | 1:0249701444ee | 11 | printf("doGet called\r\n"); |
mimil | 1:0249701444ee | 12 | const char* resp = "Hello world !"; |
mimil | 1:0249701444ee | 13 | setContentLen( strlen(resp) ); |
mimil | 1:0249701444ee | 14 | respHeaders()["Connection"] = "close"; |
mimil | 1:0249701444ee | 15 | writeData(resp, strlen(resp)); |
mimil | 1:0249701444ee | 16 | } |
mimil | 1:0249701444ee | 17 | |
mimil | 1:0249701444ee | 18 | void SenseHandler::doPost() { |
mimil | 1:0249701444ee | 19 | printf("doPost called\r\n"); |
mimil | 1:0249701444ee | 20 | int len = dataLen(); |
mimil | 1:0249701444ee | 21 | //string path = path(); |
mimil | 1:0249701444ee | 22 | //string rootPath = rootPath(); |
mimil | 1:0249701444ee | 23 | //readData(char* buf, int len); |
mimil | 1:0249701444ee | 24 | //respHeaders()["Connection"] = "close"; |
mimil | 1:0249701444ee | 25 | //setContentLen(100); |
mimil | 1:0249701444ee | 26 | //setErrCode(404); |
mimil | 1:0249701444ee | 27 | onReadable(); |
mimil | 1:0249701444ee | 28 | } |
mimil | 1:0249701444ee | 29 | |
mimil | 1:0249701444ee | 30 | void SenseHandler::doHead() { |
mimil | 1:0249701444ee | 31 | |
mimil | 1:0249701444ee | 32 | } |
mimil | 1:0249701444ee | 33 | |
mimil | 1:0249701444ee | 34 | |
mimil | 1:0249701444ee | 35 | void SenseHandler::onReadable() { //Data has been read |
mimil | 1:0249701444ee | 36 | printf("onReadable called\r\n"); |
mimil | 1:0249701444ee | 37 | int _datalen = dataLen(); //read POST data length |
mimil | 1:0249701444ee | 38 | |
mimil | 1:0249701444ee | 39 | //allocate size of readable data |
mimil | 1:0249701444ee | 40 | char* _send_data = (char *) malloc(sizeof(char) * _datalen + 1); |
mimil | 1:0249701444ee | 41 | |
mimil | 1:0249701444ee | 42 | //read POST data |
mimil | 1:0249701444ee | 43 | readData(_send_data, _datalen); |
mimil | 1:0249701444ee | 44 | |
mimil | 1:0249701444ee | 45 | //char myName[100] = ""; |
mimil | 1:0249701444ee | 46 | //getParam("value", myName); |
mimil | 1:0249701444ee | 47 | //process POST data here, you can call any subroutine from here |
mimil | 1:0249701444ee | 48 | //printf("value: %s\r\n", myName); |
mimil | 1:0249701444ee | 49 | |
mimil | 1:0249701444ee | 50 | //write any response header |
mimil | 1:0249701444ee | 51 | respHeaders()["Connection"] = "close"; |
mimil | 1:0249701444ee | 52 | |
mimil | 1:0249701444ee | 53 | //http_response contains any html code as my reply |
mimil | 1:0249701444ee | 54 | //writeData(http_response, strlen(http_response)); |
mimil | 1:0249701444ee | 55 | _send_data[_datalen] = '\0'; |
mimil | 1:0249701444ee | 56 | parseEvent(_send_data); |
mimil | 1:0249701444ee | 57 | |
mimil | 1:0249701444ee | 58 | } |
mimil | 1:0249701444ee | 59 | |
mimil | 1:0249701444ee | 60 | void SenseHandler::onWriteable() { //Data has been written & buf is free |
mimil | 1:0249701444ee | 61 | close(); //Data written, we can close the connection |
mimil | 1:0249701444ee | 62 | } |
mimil | 1:0249701444ee | 63 | |
mimil | 1:0249701444ee | 64 | void SenseHandler::onClose() { //Connection is closing |
mimil | 1:0249701444ee | 65 | //Nothing to do |
mimil | 1:0249701444ee | 66 | } |
mimil | 1:0249701444ee | 67 | |
mimil | 1:0249701444ee | 68 |