MBED MQTT Lighting Endpoint for NXP Ublox (Ethernet enabled)

Dependencies:   C027 C12832 EthernetInterface StatusReporter LM75B MQTT-ansond endpoint_core endpoint_mqtt mbed-rtos mbed

Definitions.h

Committer:
ansond
Date:
2014-03-01
Revision:
42:46cc1641800b
Parent:
37:c6c94f1b3e5d
Child:
47:081874a5d049

File content as of revision 42:46cc1641800b:

/* Copyright C2013 Doug Anson, MIT License
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 * and associated documentation files the "Software", to deal in the Software without restriction,
 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or
 * substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
 
#ifndef _DEFINITIONS_H_
#define _DEFINITIONS_H_

// platform
#include "mbed.h"

// include common definitions
#include "CommonDefinitions.h"

// Our Endpoint Version Annoucement
#define ENDPOINT_VERSION_ANNOUNCE "\r\nMBED IMPACT(MQTT) Endpoint v1.0"

// Light Configuration
#define LIGHT_NAME                  "mbed-mqtt-light-%d"            // name of each light in this endpoint

// Endpoint GPS Coordinates/Location
#define ENDPOINT_LOCATION           "Oulo Finland"                  // Where this light/endpoint lives
//#define ENDPOINT_GPS_COORDS         "25.492411 65.017210"           // work
#define ENDPOINT_GPS_COORDS         "25.467880 65.020071"           // home

// Keyword Definitions for MQTT packets
#define IOC_REQUEST_LOAD_ALL_VERB   "load"
#define IOC_REQUEST_UPDATE_ALL_VERB "update"
#define IOC_ENDPOINT_VERB           "Endpoint"
#define IOC_ENDPOINT_ALL_VERB       "all"
#define IOC_CHANGE_VERB             "Change"
#define IOC_REQUEST_VALUE_VERB      "Get"
#define IOC_RESPONSE_VERB           "response"
#define IOC_REPONSE_ID_KEY          "id"
#define IOC_DATASOURCE_ID           "199"

// IOC REST Buffer Lengths
#define IOC_REST_URL_LEN            128
#define IOC_RESULT_LEN              900
#define IOC_PAYLOAD_LEN             900
#define IOC_IOC_ID_LEN              16

// IOC REST URL for Load/Updates
#define IOC_USERNAME                "anson"
#define IOC_PASSWORD                "savetheplanet1"
#define IOC_HOST_NAME               "iocweb.bcu.ac.uk"
#define IOC_REST_URL                "https://%s/ibm/ioc/api/data-injection-service/datablocks/%s/dataitems%s"
#define IOC_RESPONSE_TEMPLATE       "%s:{ENDPOINT=%s RESOURCE=%s VALUE=%s}:%s"
#define IOC_RESPONSE_OK             "OK"
#define IOC_RESPONSE_FAILED         "FAILED"

// TEMP - until we get HTTPS with BasicAuth working in MBED...
//#define GW_IPADDRESS                "192.168.1.191"     // work
#define GW_IPADDRESS                "10.1.0.27"         // home
#define GW_REDIRECT_URL             "http://%s:8888/NSP-IOC-Gateway/IOCRestAPI"
#define USE_GW_HTTP_REDIRECTOR      true                            // true - make http calls to IOC via GW, false - make http calls directly to IOC

// Transport Configuration
#define NUM_TRANSPORTS              2                               // MQTT, HTTP
#define MQTT_TRANSPORT              0                               // MQTT Transport index
#define HTTP_TRANSPORT              1                               // HTTP Transport index

// Index for Transport to use for Update/Load
#define LOAD_TRANSPORT              1                               // 0 - MQTT, 1 - HTTP

// MQTT connect information
#define MQTT_HOSTNAME               "iocana.bcu.ac.uk"              // IOC MQTT Broker Host - iocana.bcu.ac.uk
#define MQTT_HOSTPORT               1883                            // IOC MQTT Broker Port
#define MQTT_ENDPOINT_ID            "mbed%d"                        // IOC MQTT Endpoint ID template
#define MQTT_MAXID_VALUE            99                              // IOC MQTT Endpoint ID maximum integer value
#define MQTT_ENDPOINT_IDLEN         64                              // IOC MQTT Endpoint ID length (max)
#define MQTT_IOC_TOPIC              "ARM/sensinode/control/%s"      // IOC MQTT Topic 
#define MQTT_IOC_ANNOUNCE_TOPIC     "ARM/sensinode/control/all"     // IOC MQTT Topic (since MQTT on MBED cannot seem to handle wildcards)
#define MQTT_IOC_ALL_ENDPOINT       "all"                           // must be thes ame as the last element of MATT_IOC_ANNOUNCE_TOPIC
#define MQTT_IOC_TOPIC_LEN          42                              // max length for the topic string
#define MQTT_USERNAME               ""                              // IOC MQTT Username
#define MQTT_PASSWORD               ""                              // IOC MQTT Password

#endif // _DEFINITIONS_H