99 lines
4.9 KiB
Plaintext
99 lines
4.9 KiB
Plaintext
/*
|
|
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License").
|
|
* You may not use this file except in compliance with the License.
|
|
* A copy of the License is located at
|
|
*
|
|
* http://aws.amazon.com/apache2.0
|
|
*
|
|
* or in the "license" file accompanying this file. This file is distributed
|
|
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
|
* express or implied. See the License for the specific language governing
|
|
* permissions and limitations under the License.
|
|
*/
|
|
|
|
/**
|
|
* @file aws_iot_config.h
|
|
* @brief AWS IoT specific configuration file
|
|
*/
|
|
|
|
#ifndef SRC_SHADOW_IOT_SHADOW_CONFIG_H_
|
|
#define SRC_SHADOW_IOT_SHADOW_CONFIG_H_
|
|
|
|
/* Get from console */
|
|
/* ================================================= */
|
|
/* Customer specific MQTT HOST. The same will be used for Thing Shadow */
|
|
#define AWS_IOT_MQTT_HOST "##AWS_IOT_MQTT_HOST##"
|
|
/* Default port for MQTT/S */
|
|
#define AWS_IOT_MQTT_PORT ##AWS_IOT_MQTT_PORT##
|
|
/* Thing Name of the Shadow this device is associated with */
|
|
#define AWS_IOT_MY_THING_NAME "##AWS_IOT_MY_THING_NAME##"
|
|
/* MQTT client ID should be unique for every device */
|
|
#define AWS_IOT_MQTT_CLIENT_ID AWS_IOT_MY_THING_NAME
|
|
/* Root CA file name */
|
|
#define AWS_IOT_ROOT_CA_FILENAME "##AWS_IOT_ROOT_CA_FILENAME##"
|
|
/* Device signed certificate file name */
|
|
#define AWS_IOT_CERTIFICATE_FILENAME "##AWS_IOT_CERTIFICATE_FILENAME##"
|
|
/* Device private key filename */
|
|
#define AWS_IOT_PRIVATE_KEY_FILENAME "##AWS_IOT_PRIVATE_KEY_FILENAME##"
|
|
/* ================================================= */
|
|
|
|
/* MQTT PubSub */
|
|
/* ================================================= */
|
|
/* Any time a message is sent out through the MQTT layer. The message is copied
|
|
* into this buffer anytime a publish is done.
|
|
* This will also be used in the case of Thing Shadow */
|
|
#define AWS_IOT_MQTT_TX_BUF_LEN ##AWS_IOT_MQTT_TX_BUF_LEN##
|
|
/* Any message that comes into the device should be less than this buffer size.
|
|
* If a received message is bigger than this buffer size the message will be
|
|
* dropped. */
|
|
#define AWS_IOT_MQTT_RX_BUF_LEN ##AWS_IOT_MQTT_RX_BUF_LEN##
|
|
/* Maximum number of topic filters the MQTT client can handle at any given time.
|
|
* This should be increased appropriately when using Thing Shadow */
|
|
#define AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS ##AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS##
|
|
|
|
/* Thing Shadow specific configs */
|
|
/* Maximum size of the Shadow buffer to store the received Shadow message */
|
|
#define SHADOW_MAX_SIZE_OF_RX_BUFFER AWS_IOT_MQTT_RX_BUF_LEN + 1
|
|
/* Maximum size of the Unique Client Id.
|
|
* For More info on the Client Id refer \ref response "Acknowledgments" */
|
|
#define MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES 80
|
|
/* This is size of the extra sequence number that will be appended to the
|
|
* Unique client Id */
|
|
#define MAX_SIZE_CLIENT_ID_WITH_SEQUENCE MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES + 10
|
|
/* This is size of the the total clientToken key and value pair in the JSON */
|
|
#define MAX_SIZE_CLIENT_TOKEN_CLIENT_SEQUENCE MAX_SIZE_CLIENT_ID_WITH_SEQUENCE + 20
|
|
/* At any given time we will wait for this many responses.
|
|
* This will correlate to the rate at which the shadow actions are requested */
|
|
#define MAX_ACKS_TO_COMEIN_AT_ANY_GIVEN_TIME ##MAX_ACKS_TO_COMEIN_AT_ANY_GIVEN_TIME##
|
|
/* We could perform shadow action on any thing Name and this is maximum Thing
|
|
* Names we can act on at any given time */
|
|
#define MAX_THINGNAME_HANDLED_AT_ANY_GIVEN_TIME ##MAX_THINGNAME_HANDLED_AT_ANY_GIVEN_TIME##
|
|
/* These are the max tokens that is expected to be in the Shadow JSON document.
|
|
* It includes the metadata that gets published */
|
|
#define MAX_JSON_TOKEN_EXPECTED ##MAX_JSON_TOKEN_EXPECTED##
|
|
/* All shadow actions have to be published or subscribed to a topic which is of
|
|
* the format $aws/things/{thingName}/shadow/update/accepted.
|
|
* This refers to the size of the topic without the Thing Name */
|
|
#define MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME 60
|
|
/* The Thing Name should not be bigger than this value. Modify this if the
|
|
* Thing Name needs to be bigger */
|
|
#define MAX_SIZE_OF_THING_NAME ##MAX_SIZE_OF_THING_NAME##
|
|
/* This size includes the length of topic with Thing Name */
|
|
#define MAX_SHADOW_TOPIC_LENGTH_BYTES MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME + MAX_SIZE_OF_THING_NAME
|
|
/* ================================================= */
|
|
|
|
/* Auto Reconnect specific config */
|
|
/* ================================================= */
|
|
/* Minimum time before the First reconnect attempt is made as part of the
|
|
* exponential back-off algorithm */
|
|
#define AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL ##AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL##
|
|
/* Maximum time interval after which exponential back-off will stop attempting
|
|
* to reconnect */
|
|
#define AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL ##AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL##
|
|
/* ================================================= */
|
|
|
|
#endif /* SRC_SHADOW_IOT_SHADOW_CONFIG_H_ */
|
|
|