Official reference client implementation for Cumulocity SmartREST on u-blox C027.

Dependencies:   C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed

Fork of MbedSmartRestMain by Vincent Wochnik

DeviceBootstrap.h

Committer:
Cumulocity
Date:
2014-07-24
Revision:
46:f6976fd64387
Parent:
41:804f6a0bda26
Child:
52:8f1370084268

File content as of revision 46:f6976fd64387:

#ifndef DEVICEBOOTSTRAP_H
#define DEVICEBOOTSTRAP_H

#include <stddef.h>
#include "MDM.h"
#include "SmartRest.h"
#include "DeviceInfo.h"

/** The username used for device bootstrapping. */
#define DEVICE_BOOTSTRAP_USERNAME "management/devicebootstrap"

/** The password used for device bootstrapping. */
#define DEVICE_BOOTSTRAP_PASSWORD "Fhdt1bb1f"

#define DEVICE_BOOTSTRAP_CREDENTIALS_LENGTH 256

#define CREDENTIALS_FILE "001_CREDENTIALS"

class DeviceBootstrap
{
public:
    DeviceBootstrap(SmartRest&, MDMSerial&, DeviceInfo&);
    
    bool setUpCredentials();
    const char * username();
    const char * password();

protected:
    bool obtainFromStorage();
    bool obtainFromPlatform();

private:
    bool writeToStorage();
    void setCredentials(const char *, const char*, const char*);

private:
    SmartRest& _client;
    MDMSerial& _mdm;
    DeviceInfo& _deviceInfo;
    char _username[DEVICE_BOOTSTRAP_CREDENTIALS_LENGTH],                    
         _password[DEVICE_BOOTSTRAP_CREDENTIALS_LENGTH];
};

#endif