Added support to NetworkSocket API with Wifi.

Dependencies:   FP MQTTPacket

Dependents:   IDW01M1_Cloud_IBM IDW01M1-MQTT IDW01M1-MQTT-1 IDW01M1-MQTT3 ... more

Fork of MQTT by ST Expansion SW Team

MQTTSocket.h

Committer:
mapellil
Date:
2017-10-30
Revision:
49:c66fdbb9eb83
Parent:
48:66826ea709ea

File content as of revision 49:c66fdbb9eb83:

#if !defined(MQTTSOCKET_H)
#define MQTTSOCKET_H

#include "MQTTmbed.h"
#include "TCPSocket.h"

class MQTTSocket
{
public:

    int open(NetworkStack *ipstack)
    {
        return mysock.open(ipstack);        
    }
  
    int connect(char* hostname, int port, int timeout=1000)
    {
        int err;
        mysock.set_timeout(timeout);
        err = mysock.connect(hostname, port);  
//    t.start();             
        return err; 
    }

    int read(unsigned char* buffer, int len, int timeout)
    {
        mysock.set_timeout(timeout);        
//t.reset();
// int start = t.read_ms();
        int rc = mysock.recv((char*)buffer, len);
// int stop = t.read_ms();       
//        if (rc>0) printf ("recv File: %s, Line: %d Read nB: %d rc: %d timeout: %d elaps: %d\n\r",__FILE__,__LINE__, len, rc, timeout, stop-start);        
        return rc;
    }
    
    int write(unsigned char* buffer, int len, int timeout)
    {
        mysock.set_timeout(timeout);                
//        mysock.set_blocking(false, timeout);  
//        mysock.set_blocking(false);  
        int rc = mysock.send((char*)buffer, len);
//         printf ("send File: %s, Line: %d Write nB: %d rc: %d\n\r",__FILE__,__LINE__, len, rc);
        return rc;
    }
    
    int disconnect()
    {
//        t.stop();
        return mysock.close();
    }
     
private:
    TCPSocket mysock; 
 //   Timer t;
    
};
#endif