Skip to content

Commit f323bad

Browse files
author
ZENG
committed
Release 1.0.1: Fixed timeout interrupt handler function signature. Improved background thread termination in Python script. Updated examples with error detection.
1 parent 1602c7e commit f323bad

File tree

10 files changed

+305
-252
lines changed

10 files changed

+305
-252
lines changed

AWS-IoT-Arduino-Yun-Library/aws_iot_version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
#define VERSION_MAJOR 1
2020
#define VERSION_MINOR 0
21-
#define VERSION_PATCH 0
21+
#define VERSION_PATCH 1
2222
#define VERSION_TAG ""
2323

2424
#endif

AWS-IoT-Arduino-Yun-Library/examples/BasicPubSub/BasicPubSub.ino

Lines changed: 41 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ aws_iot_mqtt_client myClient; // init iot_mqtt_client
2121
char msg[32]; // read-write buffer
2222
int cnt = 0; // loop counts
2323
int rc = -100; // return value placeholder
24+
bool success_connect = false; // whether it is connected
2425

2526
// Basic callback function that prints out the message
2627
void msg_callback(char* src, int len) {
@@ -41,46 +42,55 @@ void setup() {
4142
sprintf(curr_version, "AWS IoT SDK Version(dev) %d.%d.%d-%s\n", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH, VERSION_TAG);
4243
Serial.println(curr_version);
4344
// Set up the client
44-
if((rc = myClient.setup(AWS_IOT_CLIENT_ID)) != 0) {
45-
Serial.println("Setup failed!");
46-
Serial.println(rc);
47-
}
48-
// Load user configuration
49-
if((rc = myClient.config(AWS_IOT_MQTT_HOST, AWS_IOT_MQTT_PORT, AWS_IOT_ROOT_CA_PATH, AWS_IOT_PRIVATE_KEY_PATH, AWS_IOT_CERTIFICATE_PATH)) != 0) {
50-
Serial.println("Config failed!");
51-
Serial.println(rc);
52-
}
53-
// Use default connect: 60 sec for keepalive
54-
if((rc = myClient.connect()) != 0) {
55-
Serial.println("Connect failed!");
56-
Serial.println(rc);
45+
if((rc = myClient.setup(AWS_IOT_CLIENT_ID)) == 0) {
46+
// Load user configuration
47+
if((rc = myClient.config(AWS_IOT_MQTT_HOST, AWS_IOT_MQTT_PORT, AWS_IOT_ROOT_CA_PATH, AWS_IOT_PRIVATE_KEY_PATH, AWS_IOT_CERTIFICATE_PATH)) == 0) {
48+
// Use default connect: 60 sec for keepalive
49+
if((rc = myClient.connect()) == 0) {
50+
success_connect = true;
51+
// Subscribe to "topic1"
52+
if((rc = myClient.subscribe("topic1", 1, msg_callback)) != 0) {
53+
Serial.println("Subscribe failed!");
54+
Serial.println(rc);
55+
}
56+
}
57+
else {
58+
Serial.println("Connect failed!");
59+
Serial.println(rc);
60+
}
61+
}
62+
else {
63+
Serial.println("Config failed!");
64+
Serial.println(rc);
65+
}
5766
}
58-
// Subscribe to "topic1"
59-
if((rc = myClient.subscribe("topic1", 1, msg_callback)) != 0) {
60-
Serial.println("Subscribe failed!");
67+
else {
68+
Serial.println("Setup failed!");
6169
Serial.println(rc);
6270
}
6371
// Delay to make sure SUBACK is received, delay time could vary according to the server
6472
delay(2000);
6573
}
6674

6775
void loop() {
68-
// Generate a new message in each loop and publish to "topic1"
69-
sprintf(msg, "new message %d", cnt);
70-
if((rc = myClient.publish("topic1", msg, strlen(msg), 1, false)) != 0) {
71-
Serial.println("Publish failed!");
72-
Serial.println(rc);
73-
}
76+
if(success_connect) {
77+
// Generate a new message in each loop and publish to "topic1"
78+
sprintf(msg, "new message %d", cnt);
79+
if((rc = myClient.publish("topic1", msg, strlen(msg), 1, false)) != 0) {
80+
Serial.println("Publish failed!");
81+
Serial.println(rc);
82+
}
7483

75-
// Get a chance to run a callback
76-
if((rc = myClient.yield()) != 0) {
77-
Serial.println("Yield failed!");
78-
Serial.println(rc);
79-
}
84+
// Get a chance to run a callback
85+
if((rc = myClient.yield()) != 0) {
86+
Serial.println("Yield failed!");
87+
Serial.println(rc);
88+
}
8089

81-
// Done with the current loop
82-
sprintf(msg, "loop %d done", cnt++);
83-
Serial.println(msg);
90+
// Done with the current loop
91+
sprintf(msg, "loop %d done", cnt++);
92+
Serial.println(msg);
8493

85-
delay(1000);
94+
delay(1000);
95+
}
8696
}

AWS-IoT-Arduino-Yun-Library/examples/ThingShadowEcho/ThingShadowEcho.ino

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,24 @@ aws_iot_mqtt_client myClient;
2121
char JSON_buf[100];
2222
int cnt = 0;
2323
int rc = 1;
24+
bool success_connect = false;
2425

25-
void print_log(char* src, int code) {
26+
bool print_log(char* src, int code) {
27+
bool ret = true;
2628
if(code == 0) {
2729
Serial.print("[LOG] command: ");
2830
Serial.print(src);
2931
Serial.println(" completed.");
32+
ret = true;
3033
}
3134
else {
3235
Serial.print("[ERR] command: ");
3336
Serial.print(src);
3437
Serial.print(" code: ");
3538
Serial.println(code);
39+
ret = false;
3640
}
41+
return ret;
3742
}
3843

3944
void msg_callback_delta(char* src, int len) {
@@ -56,17 +61,22 @@ void setup() {
5661
sprintf(curr_version, "AWS IoT SDK Version(dev) %d.%d.%d-%s\n", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH, VERSION_TAG);
5762
Serial.println(curr_version);
5863

59-
print_log("setup", myClient.setup(AWS_IOT_CLIENT_ID));
60-
print_log("config", myClient.config(AWS_IOT_MQTT_HOST, AWS_IOT_MQTT_PORT, AWS_IOT_ROOT_CA_PATH, AWS_IOT_PRIVATE_KEY_PATH, AWS_IOT_CERTIFICATE_PATH));
61-
print_log("connect", myClient.connect());
62-
print_log("shadow init", myClient.shadow_init(AWS_IOT_MY_THING_NAME));
63-
print_log("register thing shadow delta function", myClient.shadow_register_delta_func(AWS_IOT_MY_THING_NAME, msg_callback_delta));
64-
64+
if(print_log("setup", myClient.setup(AWS_IOT_CLIENT_ID))) {
65+
if(print_log("config", myClient.config(AWS_IOT_MQTT_HOST, AWS_IOT_MQTT_PORT, AWS_IOT_ROOT_CA_PATH, AWS_IOT_PRIVATE_KEY_PATH, AWS_IOT_CERTIFICATE_PATH))) {
66+
if(print_log("connect", myClient.connect())) {
67+
success_connect = true;
68+
print_log("shadow init", myClient.shadow_init(AWS_IOT_MY_THING_NAME));
69+
print_log("register thing shadow delta function", myClient.shadow_register_delta_func(AWS_IOT_MY_THING_NAME, msg_callback_delta));
70+
}
71+
}
72+
}
6573
}
6674

6775
void loop() {
68-
if(myClient.yield()) {
69-
Serial.println("Yield failed.");
76+
if(success_connect) {
77+
if(myClient.yield()) {
78+
Serial.println("Yield failed.");
79+
}
80+
delay(1000); // check for incoming delta per 100 ms
7081
}
71-
delay(1000); // check for incoming delta per 100 ms
7282
}

AWS-IoT-Arduino-Yun-Library/keywords.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ config KEYWORD2
77
connect KEYWORD2
88
publish KEYWORD2
99
subscribe KEYWORD2
10-
unsubscirbe KEYWORD2
10+
unsubscribe KEYWORD2
1111
disconnect KEYWORD2
1212
yield KEYWORD2
1313
shadow_init KEYWORD2

CHANGELOG.md

100644100755
Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
# 1.0.1 (November 3, 2015)
2+
Features:
3+
4+
N/A
5+
6+
Bugfixes/Improvements:
7+
8+
* Updated README.md
9+
* Updated examples with error detection
10+
* Fixed timeout interrupt handler function signature
11+
* Improved background thread termination in Python script
12+
113
# 1.0.0 (October 8, 2015)
214
Features:
315

@@ -17,4 +29,4 @@ Features:
1729

1830
Bugfixes/Improvements:
1931

20-
* N/A
32+
* N/A

0 commit comments

Comments
 (0)