-
Notifications
You must be signed in to change notification settings - Fork 42
/
aws-iot.bbclass
110 lines (81 loc) · 3.33 KB
/
aws-iot.bbclass
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Adds AWS IoT device SDK for embedded C configuration
#
# Customer specific MQTT HOST
AWS_IOT_MQTT_HOST ?= ""
# Default port for MQTT/S
AWS_IOT_MQTT_PORT ?= "8883"
# Thing Name of the Shadow the device is associated with
AWS_IOT_MY_THING_NAME ?= "AWS-IoT-C-SDK"
# Root CA file name
AWS_IOT_ROOT_CA_FILENAME ?= "rootCA.crt"
# Device signed certificate file name
AWS_IOT_CERTIFICATE_FILENAME ?= "cert.pem"
# Device private key filename
AWS_IOT_PRIVATE_KEY_FILENAME ?= "privkey.pem"
# 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
AWS_IOT_MQTT_TX_BUF_LEN ?= "512"
# 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
AWS_IOT_MQTT_RX_BUF_LEN ?= "512"
# Maximum number of topic filters the MQTT client can handle at any given time.
# This should be increased appropriately when using Thing Shadow
AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS ?= "5"
# Thing Shadow specific configs
# At any given time we will wait for this many responses.
# This will correlate to the rate at which the shadow actions are requested
MAX_ACKS_TO_COMEIN_AT_ANY_GIVEN_TIME ?= "10"
# We could perform shadow action on any thing Name and this is maximum Thing
# Names we can act on at any given time
MAX_THINGNAME_HANDLED_AT_ANY_GIVEN_TIME ?= "10"
# These are the max tokens that is expected to be in the Shadow JSON document.
# It includes the metadata that gets published
MAX_JSON_TOKEN_EXPECTED ?= "120"
# The Thing Name should not be bigger than this value. Modify this if the Thing
# Name needs to be bigger
MAX_SIZE_OF_THING_NAME ?= "20"
# Auto Reconnect specific config
# Minimum time before the First reconnect attempt is made as part of the
# exponential back-off algorithm (milliseconds)
AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL ?= "1000"
# Maximum time interval after which exponential back-off will stop attempting
# to reconnect (milliseconds)
AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL ?= "128000"
# Logging level control: error, warn, info, debug, trace.
AWS_IOT_LOGGING_LEVEL ?= "debug"
def get_log_level(d):
levels = ['error', 'warn', 'info', 'debug', 'trace']
log_flags = ""
log_level = d.getVar('AWS_IOT_LOGGING_LEVEL', True)
if log_level == 'none':
return ""
if log_level not in levels:
log_level = "debug"
d.setVar('AWS_IOT_LOGGING_LEVEL', log_level)
log_index = levels.index(log_level)
for i, val in enumerate(levels):
log_flags = log_flags + "-DENABLE_IOT_" + val.upper() + " "
if i == log_index:
break;
return log_flags
#######################
# AWS Greengrass Core #
#######################
#
# Verisign root CA server certificate used to authenticate the AWS IoT server.
#
# https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem
#
AWS_GGCORE_ROOT_CA ?= "aws-root-ca.pem"
# Greengrass core device certificate
AWS_GGCORE_CERTIFICATE ?= "gg-core.pem"
# Greengrass core device private key
AWS_GGCORE_PRIVATE_KEY ?= "gg-core.key"
# Greengrass core Thing ARN
AWS_GGCORE_THING_ARN ?= ""
# AWS IoT endpoint (check your account)
# CLI: aws iot describe-endpoint
AWS_GGCORE_IOT_HOST ?= ""