You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Refactored API to make it instance specific. This is a breaking change in the API from 1.x releases because a Client Instance parameter had to be added to all APIs
7
+
- Added Threading library porting layer wrapper
8
+
- Added support for multiple connections from one application
9
+
- Shadows and connections de-linked, connection needs to be set up separately, can be used independently of shadow
10
+
- Added integration tests for testing SDK functionality
3
11
4
12
Bugfixes/Improvements:
13
+
14
+
- Yield cannot be called again while waiting for application callback to return
15
+
- Fixed issue with TLS layer handles not being cleaned up properly on connection failure reported [here](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/16)
16
+
- Renamed timer_linux.h to timer_platform.h as requested [here](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/5)
17
+
- Adds support for disconnect handler to shadow. A similar pull request can be found [here](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/9)
18
+
- New SDK folder structure, cleaned and simplified code structure
19
+
- Removed Paho Wrapper, Merge MQTT into SDK code, added specific error codes
20
+
- Refactored Network and Timer layer wrappers, added specific error codes
- Removing the Executable bit from all the files in the repository. Fixing [this](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/14) issue
12
35
- Refactoring MQTT client to remove declaration after statement warnings
Makefiles in the samples folder had the executable bit set and could potentially delete all files of the host machine if executed as a bash script.
4
-
More details could be found [here](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/14). Please upgrade to the latest version of the SDK.
5
-
6
1
##Overview
7
2
8
3
The AWS IoT device SDK for embedded C is a collection of C source files which can be used in embedded applications to securely connect to the [AWS IoT platform](http://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html). It includes transport clients **MQTT**, **TLS** implementations and examples for their use. It also supports AWS IoT specific features such as **Thing Shadow**. It is distributed in source form and intended to be built into customer firmware along with application code, other libraries and RTOS. For additional information about porting the Device SDK for embedded C onto additional platforms please refer to the [PortingGuide](https://github.com/aws/aws-iot-device-sdk-embedded-c/blob/master/PortingGuide.md/).
@@ -20,20 +15,19 @@ The Device SDK implements the specific protocol for Thing Shadows to retrieve, u
20
15
The embedded C SDK was specifically designed for resource constrained devices (running on micro-controllers and RTOS).
21
16
22
17
Primary aspects are:
23
-
* Flexibility in picking and choosing functionalities (reduce memory footprint)
18
+
* Flexibility in picking and choosing functionality (reduce memory footprint)
*Portability across RTOS due to use of wrapper functionality
21
+
*Can be ported to a different RTOS, uses wrappers for OS specific functions
27
22
28
23
For more information on the Architecture of the SDK refer [here](http://aws-iot-device-sdk-embedded-c-docs.s3-website-us-east-1.amazonaws.com/index.html)
29
24
30
25
##How to get started ?
31
26
Ensure you understand the AWS IoT platform and create the necessary certificates and policies. For more information on the AWS IoT platform please visit the [AWS IoT developer guide](http://docs.aws.amazon.com/iot/latest/developerguide/iot-security-identity.html).
32
27
33
-
In order to quickly get started with the AWS IoT platform, we have ported the SDK for POSIX type Operating Systems like Ubuntu, OS X and RHEL. The porting of the SDK happens at the TLS layer, and for the MQTT protocol. The SDK is configured for two TLS libraries and can be built out of the box with *GCC* using *make utility*. The tarballs can be downloaded from the below links.
28
+
In order to quickly get started with the AWS IoT platform, we have ported the SDK for POSIX type Operating Systems like Ubuntu, OS X and RHEL. The SDK is configured for the mbedTLS library and can be built out of the box with *GCC* using *make utility*. The tarball can be downloaded from the below link:
*[mbedTLS from ARM](https://s3.amazonaws.com/aws-iot-device-sdk-embedded-c/linux_mqtt_mbedtls-1.1.2.tar)
30
+
*[mbedTLS from ARM](https://s3.amazonaws.com/aws-iot-device-sdk-embedded-c/linux_mqtt_mbedtls-2.0.0.tar)
37
31
38
32
##Installation
39
33
This section explains the individual steps to retrieve the necessary files and be able to build your first application using the AWS IoT device SDK for embedded C.
@@ -43,64 +37,74 @@ Steps:
43
37
* Create a directory to hold your application e.g. (/home/<user>/aws_iot/my_app)
44
38
* Change directory to this new directory
45
39
* Download the SDK to device and place in the newly created directory
46
-
* Expand the tarball (tar -xf <tarball.tar>). This will create 4 directories:
47
-
* `aws_iot_src` - the AWS IoT SDK source files
48
-
* `sample_apps` - the sample applications
49
-
* `aws_mqtt_embedded_client_lib` - the aws MQTT client derived from [Eclipse Paho](http://www.eclipse.org/paho/clients/c/embedded/) Embedded C client
50
-
* `certs` - TLS certificates directory
51
-
* Change directory to sample_apps. The following sample applications are included:
52
-
* `subscribe_publish_sample` - a simple pub/sub MQTT example
53
-
* `shadow_sample` - a simple device shadow example using a connected window example
54
-
* `shadow_sample_console_echo` - a sample to work with the AWS IoT Console interactive guide
55
-
* For each sample:
56
-
* Explore the example. It connects to AWS IoT platform using MQTT and demonstrates few actions that can be performed by the SDK
57
-
* Build the example using make. (''make'')
58
-
* Place device identity cert and private key in locations referenced in the example (certs/). Alternatively, you can run the sample application with the ''-c'' flag to point to a specific certificate directory.
59
-
* Download certificate authority CA file from [Symantec](https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem) and place in location referenced in the example (certs/). Ensure the names of the cert files are the same as in the `aws_iot_config.h` file
60
-
* Run sample application (./subscribe_publish_sample or ./shadow_sample). The sample will print status messages to stdout.
61
-
* More information on the examples could be found in the sample source file
40
+
* Expand the tarball (tar -xf <tarball.tar>). This will create the below directories:
41
+
*`certs` - TLS certificates directory
42
+
*`docs` - SDK API and file documentation
43
+
*`external_libs` - The mbedTLS and jsmn source files
44
+
*`include` - The AWS IoT SDK header files
45
+
*`platform` - Platform specific files for timer, TLS and threading layers
46
+
*`samples` - The sample applications
47
+
*`src` - The AWS IoT SDK source files
48
+
*`tests` - Contains tests for verifying that the SDK is functioning as expected. More information can be found [here](https://github.com/aws/aws-iot-device-sdk-embedded-c/blob/master/tests/README.md)
49
+
* View further information on how to use the SDK in the Readme file for samples that can be found [here](https://github.com/aws/aws-iot-device-sdk-embedded-c/blob/master/samples/README.md)
62
50
63
51
Also, for a guided example on getting started with the Thing Shadow, visit the AWS IoT Console's [Interactive Guide](https://console.aws.amazon.com/iot).
64
52
65
-
##Porting to different platforms
66
-
As Embedded devices run on different Real Time Operating Systems and TCP/IP stacks, it is one of the important design goals for the Device SDK to keep it portable. Please refer to the [porting guide](https://github.com/aws/aws-iot-device-sdk-embedded-C/blob/master/PortingGuide.md/) to get more information on how to make this SDK run on your devices (i.e. micro-controllers).
53
+
## Porting to different platforms
54
+
As Embedded devices run on different Real Time Operating Systems and TCP/IP stacks, it is one of the important design goals for the Device SDK to keep it portable. Please refer to the [porting guide](https://github.com/aws/aws-iot-device-sdk-embedded-C/blob/master/PortingGuide.md) to get more information on how to make this SDK run on your devices (i.e. micro-controllers).
55
+
56
+
## Migrating from 1.x to 2.x
57
+
The 2.x branch makes several changes to the SDK. This section provides information on what changes will be required in the client application for migrating from v1.x to 2.x.
58
+
59
+
* The first change is in the folder structure. Client applications using the SDK now need to keep only the certs, external_libs, include, src and platform folder in their application. The folder descriptions can be found above
60
+
* All the SDK headers are in the `include` folder. These need to be added to the makefile as include directories
61
+
* The source files are in the `src` folder. These need to be added to the makefile as one of the source directories
62
+
* Similar to 1.x, the platform folder contains the platform specific headers and source files. These need to be added to the makefile as well
63
+
* The `platform/threading` folder only needs to be added if multi-threading is required, and the `_ENABLE_THREAD_SUPPORT_` macro is defined in config
64
+
* The list below provides a mapping for migrating from the major APIs used in 1.x to the new APIs:
You can find more information on how to use the new APIs in the Readme file for samples that can be found [here](https://github.com/aws/aws-iot-device-sdk-embedded-c/blob/master/samples/README.md)
0 commit comments