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

Dependents:   SenseClientSample

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?

UserRevisionLine numberNew 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