Easily switch to IBM Watson platform mode
This commit is contained in:
parent
dc453c8a60
commit
a343f3b97e
@ -49,22 +49,61 @@
|
||||
#define LOG_MODULE "mqtt-client"
|
||||
#define LOG_LEVEL LOG_LEVEL_NONE
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/*
|
||||
* IBM server: messaging.quickstart.internetofthings.ibmcloud.com
|
||||
* (184.172.124.189) mapped in an NAT64 (prefix 64:ff9b::/96) IPv6 address
|
||||
* Note: If not able to connect; lookup the IP address again as it may change.
|
||||
*
|
||||
* Alternatively, publish to a local MQTT broker (e.g. mosquitto) running on
|
||||
* the node that hosts your border router
|
||||
*/
|
||||
#ifdef MQTT_CLIENT_CONF_BROKER_IP_ADDR
|
||||
static const char *broker_ip = MQTT_CLIENT_CONF_BROKER_IP_ADDR;
|
||||
#define DEFAULT_ORG_ID "contiki-ng"
|
||||
/* Controls whether the example will work in IBM Watson IoT platform mode */
|
||||
#ifdef MQTT_CLIENT_CONF_WITH_IBM_WATSON
|
||||
#define MQTT_CLIENT_WITH_IBM_WATSON MQTT_CLIENT_CONF_WITH_IBM_WATSON
|
||||
#else
|
||||
static const char *broker_ip = "0064:ff9b:0000:0000:0000:0000:b8ac:7cbd";
|
||||
#define DEFAULT_ORG_ID "quickstart"
|
||||
#define MQTT_CLIENT_WITH_IBM_WATSON 0
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* MQTT broker address. Ignored in Watson mode */
|
||||
#ifdef MQTT_CLIENT_CONF_BROKER_IP_ADDR
|
||||
#define MQTT_CLIENT_BROKER_IP_ADDR MQTT_CLIENT_CONF_BROKER_IP_ADDR
|
||||
#else
|
||||
#define MQTT_CLIENT_BROKER_IP_ADDR "fd00::1"
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/*
|
||||
* MQTT Org ID.
|
||||
*
|
||||
* If it equals "quickstart", the client will connect without authentication.
|
||||
* In all other cases, the client will connect with authentication mode.
|
||||
*
|
||||
* In Watson mode, the username will be "use-token-auth". In non-Watson mode
|
||||
* the username will be MQTT_CLIENT_USERNAME.
|
||||
*
|
||||
* In all cases, the password will be MQTT_CLIENT_AUTH_TOKEN.
|
||||
*/
|
||||
#ifdef MQTT_CLIENT_CONF_ORG_ID
|
||||
#define MQTT_CLIENT_ORG_ID MQTT_CLIENT_CONF_ORG_ID
|
||||
#else
|
||||
#define MQTT_CLIENT_ORG_ID "quickstart"
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* MQTT token */
|
||||
#ifdef MQTT_CLIENT_CONF_AUTH_TOKEN
|
||||
#define MQTT_CLIENT_AUTH_TOKEN MQTT_CLIENT_CONF_AUTH_TOKEN
|
||||
#else
|
||||
#define MQTT_CLIENT_AUTH_TOKEN "AUTHTOKEN"
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#if MQTT_CLIENT_WITH_IBM_WATSON
|
||||
/* With IBM Watson support */
|
||||
static const char *broker_ip = "0064:ff9b:0000:0000:0000:0000:b8ac:7cbd";
|
||||
#define MQTT_CLIENT_USERNAME "use-token-auth"
|
||||
|
||||
#else /* MQTT_CLIENT_WITH_IBM_WATSON */
|
||||
/* Without IBM Watson support. To be used with other brokers, e.g. Mosquitto */
|
||||
static const char *broker_ip = MQTT_CLIENT_BROKER_IP_ADDR;
|
||||
|
||||
#ifdef MQTT_CLIENT_CONF_USERNAME
|
||||
#define MQTT_CLIENT_USERNAME MQTT_CLIENT_CONF_USERNAME
|
||||
#else
|
||||
#define MQTT_CLIENT_USERNAME "use-token-auth"
|
||||
#endif
|
||||
|
||||
#endif /* MQTT_CLIENT_WITH_IBM_WATSON */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifdef MQTT_CLIENT_CONF_STATUS_LED
|
||||
#define MQTT_CLIENT_STATUS_LED MQTT_CLIENT_CONF_STATUS_LED
|
||||
#else
|
||||
@ -133,7 +172,6 @@ static uint8_t state;
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Default configuration values */
|
||||
#define DEFAULT_TYPE_ID "mqtt-client"
|
||||
#define DEFAULT_AUTH_TOKEN "AUTHZ"
|
||||
#define DEFAULT_EVENT_TYPE_ID "status"
|
||||
#define DEFAULT_SUBSCRIBE_CMD_TYPE "+"
|
||||
#define DEFAULT_BROKER_PORT 1883
|
||||
@ -423,9 +461,10 @@ init_config()
|
||||
/* Populate configuration with default values */
|
||||
memset(&conf, 0, sizeof(mqtt_client_config_t));
|
||||
|
||||
memcpy(conf.org_id, DEFAULT_ORG_ID, strlen(DEFAULT_ORG_ID));
|
||||
memcpy(conf.org_id, MQTT_CLIENT_ORG_ID, strlen(MQTT_CLIENT_ORG_ID));
|
||||
memcpy(conf.type_id, DEFAULT_TYPE_ID, strlen(DEFAULT_TYPE_ID));
|
||||
memcpy(conf.auth_token, DEFAULT_AUTH_TOKEN, strlen(DEFAULT_AUTH_TOKEN));
|
||||
memcpy(conf.auth_token, MQTT_CLIENT_AUTH_TOKEN,
|
||||
strlen(MQTT_CLIENT_AUTH_TOKEN));
|
||||
memcpy(conf.event_type_id, DEFAULT_EVENT_TYPE_ID,
|
||||
strlen(DEFAULT_EVENT_TYPE_ID));
|
||||
memcpy(conf.broker_ip, broker_ip, strlen(broker_ip));
|
||||
@ -568,7 +607,7 @@ state_machine(void)
|
||||
state = STATE_ERROR;
|
||||
break;
|
||||
} else {
|
||||
mqtt_set_username_password(&conn, "use-token-auth",
|
||||
mqtt_set_username_password(&conn, MQTT_CLIENT_USERNAME,
|
||||
conf.auth_token);
|
||||
}
|
||||
}
|
||||
|
@ -35,8 +35,40 @@
|
||||
/* Enable TCP */
|
||||
#define UIP_CONF_TCP 1
|
||||
|
||||
/* If undefined, the demo will attempt to connect to IBM's quickstart */
|
||||
/* Change to 1 to use with the IBM Watson IoT platform */
|
||||
#define MQTT_CLIENT_CONF_WITH_IBM_WATSON 0
|
||||
|
||||
/*
|
||||
* The IPv6 address of the MQTT broker to connect to.
|
||||
* Ignored if MQTT_CLIENT_CONF_WITH_IBM_WATSON is 1
|
||||
*/
|
||||
#define MQTT_CLIENT_CONF_BROKER_IP_ADDR "fd00::1"
|
||||
|
||||
/*
|
||||
* The Organisation ID.
|
||||
*
|
||||
* When in Watson mode, the example will default to Org ID "quickstart" and
|
||||
* will connect using non-authenticated mode. If you want to use registered
|
||||
* devices, set your Org ID here and then make sure you set the correct token
|
||||
* through MQTT_CLIENT_CONF_AUTH_TOKEN.
|
||||
*/
|
||||
#define MQTT_CLIENT_CONF_ORG_ID "quickstart"
|
||||
|
||||
/*
|
||||
* The MQTT username.
|
||||
*
|
||||
* Ignored in Watson mode: In this mode the username is always "use-token-auth"
|
||||
*/
|
||||
#define MQTT_CLIENT_CONF_USERNAME "mqtt-client-username"
|
||||
|
||||
/*
|
||||
* The MQTT auth token (password) used when connecting to the MQTT broker.
|
||||
*
|
||||
* Used with as well as without Watson.
|
||||
*
|
||||
* Transported in cleartext!
|
||||
*/
|
||||
#define MQTT_CLIENT_CONF_AUTH_TOKEN "AUTHTOKEN"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#endif /* PROJECT_CONF_H_ */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
Loading…
Reference in New Issue
Block a user