[修改] 增加freeRTOS
1. 版本FreeRTOSv202212.01,命名为kernel;
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,20 @@
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="3"><center><b>Code Size of AWS IoT Fleet Provisioning (example generated with GCC for ARM Cortex-M)</b></center></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>File</b></td>
|
||||
<td><b><center>With -O1 Optimization</center></b></td>
|
||||
<td><b><center>With -Os Optimization</center></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>fleet_provisioning.c</td>
|
||||
<td><center>1.0K</center></td>
|
||||
<td><center>0.9K</center></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Total estimates</b></td>
|
||||
<td><b><center>1.0K</center></b></td>
|
||||
<td><b><center>0.9K</center></b></td>
|
||||
</tr>
|
||||
</table>
|
||||
@ -0,0 +1,228 @@
|
||||
<doxygenlayout version="1.0">
|
||||
<!-- Generated by doxygen 1.8.20 -->
|
||||
<!-- Navigation index tabs for HTML output -->
|
||||
<navindex>
|
||||
<tab type="mainpage" visible="yes" title=""/>
|
||||
<tab type="pages" visible="yes" title="" intro=""/>
|
||||
<!-- Hide the default "Data Structures" tab and use the "Modules" tab for data
|
||||
structures. This allows internal data structures to be hidden. -->
|
||||
<tab type="modules" visible="yes" title="Data types and Constants" intro="This library defines the following data types and constants."/>
|
||||
<tab type="namespaces" visible="yes" title="">
|
||||
<tab type="namespacelist" visible="yes" title="" intro=""/>
|
||||
<tab type="namespacemembers" visible="yes" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="interfaces" visible="no" title="">
|
||||
<tab type="interfacelist" visible="no" title="" intro=""/>
|
||||
<tab type="interfaceindex" visible="no" title=""/>
|
||||
<tab type="interfacehierarchy" visible="yes" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="classes" visible="no" title="">
|
||||
<tab type="classlist" visible="no" title="" intro=""/>
|
||||
<tab type="classindex" visible="no" title=""/>
|
||||
<tab type="hierarchy" visible="no" title="" intro=""/>
|
||||
<tab type="classmembers" visible="no" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="structs" visible="no" title="">
|
||||
<tab type="structlist" visible="no" title="" intro=""/>
|
||||
<tab type="structindex" visible="no" title=""/>
|
||||
</tab>
|
||||
<tab type="exceptions" visible="no" title="">
|
||||
<tab type="exceptionlist" visible="no" title="" intro=""/>
|
||||
<tab type="exceptionindex" visible="no" title=""/>
|
||||
<tab type="exceptionhierarchy" visible="yes" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="files" visible="no" title="">
|
||||
<tab type="filelist" visible="yes" title="Files" intro="The following files are associated with this library."/>
|
||||
<tab type="globals" visible="no" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="examples" visible="yes" title="" intro=""/>
|
||||
</navindex>
|
||||
|
||||
<!-- Layout definition for a class page -->
|
||||
<class>
|
||||
<briefdescription visible="yes"/>
|
||||
<includes visible="$SHOW_INCLUDE_FILES"/>
|
||||
<inheritancegraph visible="$CLASS_GRAPH"/>
|
||||
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
|
||||
<memberdecl>
|
||||
<nestedclasses visible="yes" title=""/>
|
||||
<publictypes title=""/>
|
||||
<services title=""/>
|
||||
<interfaces title=""/>
|
||||
<publicslots title=""/>
|
||||
<signals title=""/>
|
||||
<publicmethods title=""/>
|
||||
<publicstaticmethods title=""/>
|
||||
<publicattributes title=""/>
|
||||
<publicstaticattributes title=""/>
|
||||
<protectedtypes title=""/>
|
||||
<protectedslots title=""/>
|
||||
<protectedmethods title=""/>
|
||||
<protectedstaticmethods title=""/>
|
||||
<protectedattributes title=""/>
|
||||
<protectedstaticattributes title=""/>
|
||||
<packagetypes title=""/>
|
||||
<packagemethods title=""/>
|
||||
<packagestaticmethods title=""/>
|
||||
<packageattributes title=""/>
|
||||
<packagestaticattributes title=""/>
|
||||
<properties title=""/>
|
||||
<events title=""/>
|
||||
<privatetypes title=""/>
|
||||
<privateslots title=""/>
|
||||
<privatemethods title=""/>
|
||||
<privatestaticmethods title=""/>
|
||||
<privateattributes title=""/>
|
||||
<privatestaticattributes title=""/>
|
||||
<friends title=""/>
|
||||
<related title="" subtitle=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<services title=""/>
|
||||
<interfaces title=""/>
|
||||
<constructors title=""/>
|
||||
<functions title=""/>
|
||||
<related title=""/>
|
||||
<variables title=""/>
|
||||
<properties title=""/>
|
||||
<events title=""/>
|
||||
</memberdef>
|
||||
<allmemberslink visible="yes"/>
|
||||
<usedfiles visible="$SHOW_USED_FILES"/>
|
||||
<authorsection visible="yes"/>
|
||||
</class>
|
||||
|
||||
<!-- Layout definition for a namespace page -->
|
||||
<namespace>
|
||||
<briefdescription visible="yes"/>
|
||||
<memberdecl>
|
||||
<nestednamespaces visible="yes" title=""/>
|
||||
<constantgroups visible="yes" title=""/>
|
||||
<interfaces visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<structs visible="yes" title=""/>
|
||||
<exceptions visible="yes" title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
</memberdef>
|
||||
<authorsection visible="yes"/>
|
||||
</namespace>
|
||||
|
||||
<!-- Layout definition for a file page -->
|
||||
<file>
|
||||
<briefdescription visible="yes"/>
|
||||
<includes visible="$SHOW_INCLUDE_FILES"/>
|
||||
<includegraph visible="$INCLUDE_GRAPH"/>
|
||||
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
|
||||
<sourcelink visible="yes"/>
|
||||
<memberdecl>
|
||||
<interfaces visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<structs visible="yes" title=""/>
|
||||
<exceptions visible="yes" title=""/>
|
||||
<namespaces visible="yes" title=""/>
|
||||
<constantgroups visible="yes" title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
</memberdef>
|
||||
<authorsection/>
|
||||
</file>
|
||||
|
||||
<!-- Layout definition for a group page -->
|
||||
<group>
|
||||
<briefdescription visible="yes"/>
|
||||
<groupgraph visible="$GROUP_GRAPHS"/>
|
||||
<memberdecl>
|
||||
<nestedgroups visible="yes" title=""/>
|
||||
<dirs visible="yes" title=""/>
|
||||
<files visible="yes" title=""/>
|
||||
<namespaces visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<enumvalues title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<signals title=""/>
|
||||
<publicslots title=""/>
|
||||
<protectedslots title=""/>
|
||||
<privateslots title=""/>
|
||||
<events title=""/>
|
||||
<properties title=""/>
|
||||
<friends title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<pagedocs/>
|
||||
<inlineclasses title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<enumvalues title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<signals title=""/>
|
||||
<publicslots title=""/>
|
||||
<protectedslots title=""/>
|
||||
<privateslots title=""/>
|
||||
<events title=""/>
|
||||
<properties title=""/>
|
||||
<friends title=""/>
|
||||
</memberdef>
|
||||
<authorsection visible="yes"/>
|
||||
</group>
|
||||
|
||||
<!-- Layout definition for a directory page -->
|
||||
<directory>
|
||||
<briefdescription visible="yes"/>
|
||||
<directorygraph visible="yes"/>
|
||||
<memberdecl>
|
||||
<dirs visible="yes"/>
|
||||
<files visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
</directory>
|
||||
</doxygenlayout>
|
||||
@ -0,0 +1,101 @@
|
||||
/**
|
||||
@mainpage Overview
|
||||
@anchor fleet_provisioning
|
||||
@brief AWS IoT Fleet Provisioning Library
|
||||
|
||||
> By using AWS IoT fleet provisioning, AWS IoT can generate and securely deliver device certificates and private keys to your devices when they connect to AWS IoT for the first time. AWS IoT provides client certificates that are signed by the Amazon Root certificate authority (CA).
|
||||
<span style="float:right;margin-right:4em"> — <i>Description of Fleet Provisioning from AWS IoT documentation <https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html></i></span><br>
|
||||
|
||||
For an overview of device provisioning options available with AWS IoT, see
|
||||
[Device Provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html).
|
||||
|
||||
AWS IoT Fleet Provisioning allows you to provision devices without
|
||||
pre-installed unique client certificates. There are two ways to use Fleet
|
||||
Provisioning: by claim, or by trusted user. If provisioning by claim, devices
|
||||
used a provisioning claim certificate and private key registered with AWS IoT
|
||||
to obtain unique device certificates. If provisioning by trusted user, a
|
||||
trusted user, such as an end user or installation technician, uses a mobile
|
||||
app to configure the device in its deployed location.
|
||||
|
||||
There are two options for obtaining unique client certificates with AWS IoT
|
||||
Fleet Provisioning: CreateCertificateFromCsr and CreateKeysAndCertificate.
|
||||
CreateCertificateFromCsr allows the device to obtain a certificate by providing
|
||||
a certificate signing request, keeping the private key secure on the device.
|
||||
CreateKeysAndCertificate provides a new certificate and corresponding private
|
||||
key.
|
||||
|
||||
@section fleet_provisioning_memory_requirements Memory Requirements
|
||||
@brief Memory requirements of the AWS IoT Fleet Provisioning Library.
|
||||
|
||||
@include{doc} size_table.md
|
||||
*/
|
||||
|
||||
/**
|
||||
@page fleet_provisioning_design Design
|
||||
AWS IoT Fleet Provisioning Library Design
|
||||
|
||||
The AWS IoT Fleet Provisioning library provides macros and functions to
|
||||
assemble and parse MQTT topic strings reserved for the Fleet Provisioning
|
||||
feature of AWS IoT core. Applications can use this library in conjunction with
|
||||
any MQTT library to interact with the AWS IoT Fleet Provisioning APIs.
|
||||
|
||||
The diagram below demonstrates the happy path an application can take to use
|
||||
the Fleet Provisioning library, a MQTT library, and a JSON or CBOR library to
|
||||
interact with the AWS IoT Fleet Provisioning APIs.
|
||||
|
||||
\image html fleet_provisioning_operations.png "Fleet Provisioning Library example operation diagram" width=90%
|
||||
*/
|
||||
|
||||
/**
|
||||
@page fleet_provisioning_config Configurations
|
||||
@brief Configurations of the AWS IoT Fleet Provisioning Library.
|
||||
<!-- @par configpagestyle allows the @section titles to be styled according to
|
||||
style.css -->
|
||||
@par configpagestyle
|
||||
|
||||
Configuration settings are C pre-processor constants. They can be set with a
|
||||
`\#define` in the config file (`fleet_provisioning_config.h`) or by using a
|
||||
compiler option such as -D in gcc.
|
||||
|
||||
@section FLEET_PROVISIONING_DO_NOT_USE_CUSTOM_CONFIG
|
||||
@copydoc FLEET_PROVISIONING_DO_NOT_USE_CUSTOM_CONFIG
|
||||
|
||||
@section fleet_provisioning_logerror LogError
|
||||
@copydoc LogError
|
||||
|
||||
@section fleet_provisioning_logwarn LogWarn
|
||||
@copydoc LogWarn
|
||||
|
||||
@section fleet_provisioning_loginfo LogInfo
|
||||
@copydoc LogInfo
|
||||
|
||||
@section fleet_provisioning_logdebug LogDebug
|
||||
@copydoc LogDebug
|
||||
*/
|
||||
|
||||
/**
|
||||
@page fleet_provisioning_functions Functions
|
||||
@brief Primary functions of the AWS IoT Fleet Provisioning Library:<br><br>
|
||||
@subpage fleet_provisioning_getregisterthingtopic_function <br>
|
||||
@subpage fleet_provisioning_matchtopic_function <br>
|
||||
|
||||
@page fleet_provisioning_getregisterthingtopic_function FleetProvisioning_GetRegisterThingTopic
|
||||
@snippet fleet_provisioning.h declare_fleet_provisioning_getregisterthingtopic
|
||||
@copydoc FleetProvisioning_GetRegisterThingTopic
|
||||
|
||||
@page fleet_provisioning_matchtopic_function FleetProvisioning_MatchTopic
|
||||
@snippet fleet_provisioning.h declare_fleet_provisioning_matchtopic
|
||||
@copydoc FleetProvisioning_MatchTopic
|
||||
*/
|
||||
|
||||
<!-- We do not use doxygen ALIASes here because there have been issues in the
|
||||
past versions with "^^" newlines within the alias definition. -->
|
||||
/**
|
||||
@defgroup fleet_provisioning_enum_types Enumerated Types
|
||||
@brief Enumerated types of the AWS IoT Fleet Provisioning Library
|
||||
*/
|
||||
|
||||
/**
|
||||
@defgroup fleet_provisioning_constants Constants
|
||||
@brief Constants defined in the AWS IoT Fleet Provisioning Library
|
||||
*/
|
||||
@ -0,0 +1,25 @@
|
||||
/**
|
||||
@page fleet_provisioning_porting Porting Guide
|
||||
@brief Guide for porting the AWS IoT Fleet Provisioning Library to a new
|
||||
platform.
|
||||
|
||||
@section fleet_provisioning_porting_config Configuration Macros
|
||||
@brief Configuration macros that can be set in the config header
|
||||
`fleet_provisioning_config.h`, or passed in as compiler options.
|
||||
|
||||
The following optional logging macros are used throughout the library:
|
||||
- @ref LogError
|
||||
- @ref LogWarn
|
||||
- @ref LogInfo
|
||||
- @ref LogDebug
|
||||
|
||||
@see [Configurations](@ref fleet_provisioning_config) for more information.
|
||||
|
||||
@note Regardless of whether the above macros are defined in
|
||||
`fleet_provisioning_config.h` or passed as compiler options, by default the
|
||||
`fleet_provisioning_config.h` file is needed to build the AWS IoT Fleet
|
||||
Provisioning Library. To disable this requirement and build the library with
|
||||
default configuration values, provide
|
||||
`FLEET_PROVISIONING_DO_NOT_USE_CUSTOM_CONFIG` as a compile time preprocessor
|
||||
macro.
|
||||
*/
|
||||
@ -0,0 +1,136 @@
|
||||
/*
|
||||
* Stylesheet for Doxygen HTML output.
|
||||
*
|
||||
* This file defines styles for custom elements in the header/footer and
|
||||
* overrides some of the default Doxygen styles.
|
||||
*
|
||||
* Styles in this file do not affect the treeview sidebar.
|
||||
*/
|
||||
|
||||
/* Set the margins to place a small amount of whitespace on the left and right
|
||||
* side of the page. */
|
||||
div.contents {
|
||||
margin-left:4em;
|
||||
margin-right:4em;
|
||||
}
|
||||
|
||||
/* Justify text in paragraphs. */
|
||||
p {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
/* Style of section headings. */
|
||||
h1 {
|
||||
border-bottom: 1px solid #879ECB;
|
||||
color: #354C7B;
|
||||
font-size: 160%;
|
||||
font-weight: normal;
|
||||
padding-bottom: 4px;
|
||||
padding-top: 8px;
|
||||
}
|
||||
|
||||
/* Style of subsection headings. */
|
||||
h2:not(.memtitle):not(.groupheader) {
|
||||
font-size: 125%;
|
||||
margin-bottom: 0px;
|
||||
margin-top: 16px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
/* Style of paragraphs immediately after subsection headings. */
|
||||
h2 + p {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
/* Style of subsection headings. */
|
||||
h3 {
|
||||
font-size: 100%;
|
||||
margin-bottom: 0px;
|
||||
margin-left: 2em;
|
||||
margin-right: 2em;
|
||||
}
|
||||
|
||||
/* Style of paragraphs immediately after subsubsection headings. */
|
||||
h3 + p {
|
||||
margin-top: 0px;
|
||||
margin-left: 2em;
|
||||
margin-right: 2em;
|
||||
}
|
||||
|
||||
/* Style of the prefix "AWS IoT Device SDK C" that appears in the header. */
|
||||
#csdkprefix {
|
||||
color: #757575;
|
||||
}
|
||||
|
||||
/* Style of the "Return to main page" link that appears in the header. */
|
||||
#returntomain {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
/* Style of the dividers on Configuration Settings pages. */
|
||||
div.configpagedivider {
|
||||
margin-left: 0px !important;
|
||||
margin-right: 0px !important;
|
||||
margin-top: 20px !important;
|
||||
}
|
||||
|
||||
/* Style of configuration setting names. */
|
||||
dl.section.user ~ h1 {
|
||||
border-bottom: none;
|
||||
color: #000000;
|
||||
font-family: monospace, fixed;
|
||||
font-size: 16px;
|
||||
margin-bottom: 0px;
|
||||
margin-left: 2em;
|
||||
margin-top: 1.5em;
|
||||
}
|
||||
|
||||
/* Style of paragraphs on a configuration settings page. */
|
||||
dl.section.user ~ * {
|
||||
margin-bottom: 10px;
|
||||
margin-left: 4em;
|
||||
margin-right: 4em;
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
/* Hide the configuration setting marker. */
|
||||
dl.section.user {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Overrides for code fragments and lines. */
|
||||
div.fragment {
|
||||
background: #ffffff;
|
||||
border: none;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
div.line {
|
||||
color: #3a3a3a;
|
||||
}
|
||||
|
||||
/* Overrides for code syntax highlighting colors. */
|
||||
span.comment {
|
||||
color: #008000;
|
||||
}
|
||||
|
||||
span.keyword, span.keywordtype, span.keywordflow {
|
||||
color: #0000ff;
|
||||
}
|
||||
|
||||
span.preprocessor {
|
||||
color: #50015a;
|
||||
}
|
||||
|
||||
span.stringliteral, span.charliteral {
|
||||
color: #800c0c;
|
||||
}
|
||||
|
||||
a.code, a.code:visited, a.line, a.line:visited {
|
||||
color: #496194;
|
||||
}
|
||||
|
||||
div.image img[src="fleet_provisioning_operations.png"] {
|
||||
max-width: 1000px;
|
||||
}
|
||||
@ -0,0 +1,165 @@
|
||||
@startuml
|
||||
skinparam dpi 300
|
||||
skinparam classFontSize 8
|
||||
skinparam classFontName Helvetica
|
||||
autonumber
|
||||
|
||||
participant "User Application" as App
|
||||
participant "Fleet Provisioning Library" as FleetProv
|
||||
participant "MQTT Client" as MQTT
|
||||
participant "JSON/CBOR Library" as JSON
|
||||
|
||||
activate App
|
||||
|
||||
App -> MQTT : Connect to AWS IoT broker with claim credentials
|
||||
|
||||
activate MQTT
|
||||
MQTT -> App : Connected
|
||||
deactivate MQTT
|
||||
|
||||
opt If using CreateCertificateFromCsr
|
||||
App -> App : Securely generate keys and corresponding CSR
|
||||
|
||||
App -> JSON : Generate CreateCertificateFromCsr request payload
|
||||
|
||||
activate JSON
|
||||
JSON -> App : Request payload
|
||||
deactivate JSON
|
||||
|
||||
App -> FleetProv : Get Accepted and Rejected Topic Strings\n for CreateCertificateFromCsr
|
||||
|
||||
activate FleetProv
|
||||
FleetProv -> App : Accepted and Rejected Topic Strings
|
||||
deactivate FleetProv
|
||||
|
||||
App -> MQTT : Subscribe to CreateCertificateFromCsr Accepted and Rejected Topics
|
||||
|
||||
activate MQTT
|
||||
MQTT -> App : Subscription Successful
|
||||
deactivate MQTT
|
||||
|
||||
App -> FleetProv : Get CreateCertificateFromCsr Publish Topic String
|
||||
|
||||
activate FleetProv
|
||||
FleetProv -> App : Publish Topic String
|
||||
deactivate FleetProv
|
||||
|
||||
App -> MQTT : Publish Request
|
||||
|
||||
activate MQTT
|
||||
MQTT -> App : Published
|
||||
MQTT -> App : Incoming Publish Message Received
|
||||
deactivate MQTT
|
||||
|
||||
App -> FleetProv : Is this a Fleet Provisioning CreateCertificateFromCsr\naccepted Message?
|
||||
|
||||
activate FleetProv
|
||||
FleetProv -> App : Yes
|
||||
deactivate FleetProv
|
||||
|
||||
App -> JSON : Parse response payload
|
||||
|
||||
activate JSON
|
||||
JSON -> App : Certificate, certificate id, certificate ownership token
|
||||
deactivate JSON
|
||||
|
||||
App -> App : Securely store certificate
|
||||
|
||||
else If using CreateKeysAndCertificate
|
||||
|
||||
App -> FleetProv : Generate Accepted and Rejected Topic Strings for RegisterThing
|
||||
|
||||
activate FleetProv
|
||||
FleetProv -> App : Accepted and Rejected Topic Strings
|
||||
deactivate FleetProv
|
||||
|
||||
App -> MQTT : Subscribe to CreateKeysAndCertificate Accepted and Rejected Topics
|
||||
|
||||
activate MQTT
|
||||
MQTT -> App : Subscription Successful
|
||||
deactivate MQTT
|
||||
|
||||
App -> FleetProv : Get CreateKeysAndCertificate Publish Topic String
|
||||
|
||||
activate FleetProv
|
||||
FleetProv -> App : Publish Topic String
|
||||
deactivate FleetProv
|
||||
|
||||
App -> MQTT : Publish Request
|
||||
|
||||
activate MQTT
|
||||
MQTT -> App : Published
|
||||
MQTT -> App : Incoming Publish Message Received
|
||||
deactivate MQTT
|
||||
|
||||
App -> FleetProv : Is this a Fleet Provisioning CreateKeysAndCertificate\naccepted Message?
|
||||
|
||||
activate FleetProv
|
||||
FleetProv -> App : Yes
|
||||
deactivate FleetProv
|
||||
|
||||
App -> JSON : Parse response payload
|
||||
|
||||
activate JSON
|
||||
JSON -> App : Private key, certificate, certificate id, certificate ownership token
|
||||
deactivate JSON
|
||||
|
||||
App -> App : Securely store key and certificate
|
||||
|
||||
end
|
||||
|
||||
App -> JSON : Generate RegisterThing request payload
|
||||
|
||||
activate JSON
|
||||
JSON -> App : Request payload
|
||||
deactivate JSON
|
||||
App -> FleetProv : Generate Accepted and Rejected Topic Strings for RegisterThing
|
||||
|
||||
activate FleetProv
|
||||
FleetProv -> App : Accepted and Rejected Topic Strings
|
||||
deactivate FleetProv
|
||||
|
||||
App -> MQTT : Subscribe to RegisterThing Accepted and Rejected Topics
|
||||
|
||||
activate MQTT
|
||||
MQTT -> App : Subscription Successful
|
||||
deactivate MQTT
|
||||
|
||||
App -> FleetProv : Get RegisterThing Publish Topic String
|
||||
|
||||
activate FleetProv
|
||||
FleetProv -> App : Publish Topic String
|
||||
deactivate FleetProv
|
||||
|
||||
App -> MQTT : Publish Request
|
||||
|
||||
activate MQTT
|
||||
MQTT -> App : Published
|
||||
MQTT -> App : Incoming Publish Message Received
|
||||
deactivate MQTT
|
||||
|
||||
App -> FleetProv : Is this a Fleet Provisioning RegisterThing accepted Message?
|
||||
|
||||
activate FleetProv
|
||||
FleetProv -> App : Yes
|
||||
deactivate FleetProv
|
||||
|
||||
App -> JSON : Parse response payload
|
||||
|
||||
activate JSON
|
||||
JSON -> App : Thing name, device configuration
|
||||
deactivate JSON
|
||||
|
||||
App -> MQTT : Disconnect from AWS IoT broker
|
||||
|
||||
activate MQTT
|
||||
MQTT -> App : Disconnected
|
||||
deactivate MQTT
|
||||
|
||||
App -> MQTT : Connect to AWS IoT broker with newly provisioned credentials
|
||||
|
||||
activate MQTT
|
||||
MQTT -> App : Connected
|
||||
deactivate MQTT
|
||||
deactivate App
|
||||
@enduml
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Reference in New Issue
Block a user