Helium
/
helium_basic
A basic setup and connect sample for the Helium Atom
main.cpp@9:15075df34b31, 2017-07-10 (annotated)
- Committer:
- Marc Nijdam
- Date:
- Mon Jul 10 14:54:51 2017 -0700
- Revision:
- 9:15075df34b31
- Parent:
- 6:65411183b48a
- Child:
- 10:e666766643d2
Update helium lib, tiny delay on boot to wait for atom to start
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Marc Nijdam |
0:9c0bcd840b37 | 1 | /* |
Marc Nijdam |
0:9c0bcd840b37 | 2 | * Copyright 2017, Helium Systems, Inc. |
Marc Nijdam |
3:8e6494dda270 | 3 | * All Rights Reserved. See LICENSE.txt for license information |
Marc Nijdam |
0:9c0bcd840b37 | 4 | */ |
Marc Nijdam |
0:9c0bcd840b37 | 5 | |
Marc Nijdam |
0:9c0bcd840b37 | 6 | #include "mbed.h" |
Marc Nijdam |
0:9c0bcd840b37 | 7 | #include "Helium.h" |
Marc Nijdam |
6:65411183b48a | 8 | #define __STDC_FORMAT_MACROS |
Marc Nijdam |
1:a843f3d9d31c | 9 | #include <inttypes.h> |
Marc Nijdam |
0:9c0bcd840b37 | 10 | |
Marc Nijdam |
0:9c0bcd840b37 | 11 | void report_status(int status) |
Marc Nijdam |
0:9c0bcd840b37 | 12 | { |
Marc Nijdam |
0:9c0bcd840b37 | 13 | if (helium_status_OK == status) { |
Marc Nijdam |
0:9c0bcd840b37 | 14 | printf("Succeeded\n"); |
Marc Nijdam |
0:9c0bcd840b37 | 15 | } else { |
Marc Nijdam |
1:a843f3d9d31c | 16 | printf("Failed (status %d)\n", status); |
Marc Nijdam |
0:9c0bcd840b37 | 17 | } |
Marc Nijdam |
0:9c0bcd840b37 | 18 | } |
Marc Nijdam |
0:9c0bcd840b37 | 19 | |
Marc Nijdam |
0:9c0bcd840b37 | 20 | void report_status_result(int status, int result) |
Marc Nijdam |
0:9c0bcd840b37 | 21 | { |
Marc Nijdam |
0:9c0bcd840b37 | 22 | if (helium_status_OK == status) { |
Marc Nijdam |
0:9c0bcd840b37 | 23 | if (result == 0) { |
Marc Nijdam |
0:9c0bcd840b37 | 24 | printf("Succeeded\n"); |
Marc Nijdam |
0:9c0bcd840b37 | 25 | } else { |
Marc Nijdam |
0:9c0bcd840b37 | 26 | printf("Failed - %d", result); |
Marc Nijdam |
0:9c0bcd840b37 | 27 | } |
Marc Nijdam |
0:9c0bcd840b37 | 28 | } else { |
Marc Nijdam |
1:a843f3d9d31c | 29 | printf("Failed (status %d)\n", status); |
Marc Nijdam |
0:9c0bcd840b37 | 30 | } |
Marc Nijdam |
0:9c0bcd840b37 | 31 | } |
Marc Nijdam |
0:9c0bcd840b37 | 32 | |
Marc Nijdam |
0:9c0bcd840b37 | 33 | |
Marc Nijdam |
1:a843f3d9d31c | 34 | #if defined(TARGET_K64F) |
Marc Nijdam |
3:8e6494dda270 | 35 | Helium helium(D9, D7); // TX:D9, RX:D7 |
Marc Nijdam |
2:bfe503bcf0b8 | 36 | #elif defined(TARGET_WIZwiki_W7500) |
Marc Nijdam |
2:bfe503bcf0b8 | 37 | Helium helium(D1, D0); |
Marc Nijdam |
1:a843f3d9d31c | 38 | #else |
Marc Nijdam |
1:a843f3d9d31c | 39 | #error Please define helium with serial tx/rx |
Marc Nijdam |
1:a843f3d9d31c | 40 | #endif |
Marc Nijdam |
1:a843f3d9d31c | 41 | |
Marc Nijdam |
1:a843f3d9d31c | 42 | Channel channel(&helium); |
Marc Nijdam |
1:a843f3d9d31c | 43 | |
Marc Nijdam |
0:9c0bcd840b37 | 44 | int main() |
Marc Nijdam |
0:9c0bcd840b37 | 45 | { |
Marc Nijdam |
1:a843f3d9d31c | 46 | printf("Starting\n"); |
Marc Nijdam |
0:9c0bcd840b37 | 47 | |
Marc Nijdam |
9:15075df34b31 | 48 | // Let the Atom start up |
Marc Nijdam |
9:15075df34b31 | 49 | wait(0.1); |
Marc Nijdam |
9:15075df34b31 | 50 | |
Marc Nijdam |
1:a843f3d9d31c | 51 | printf("Info - "); |
Marc Nijdam |
1:a843f3d9d31c | 52 | struct helium_info info; |
Marc Nijdam |
1:a843f3d9d31c | 53 | int status = helium.info(&info); |
Marc Nijdam |
1:a843f3d9d31c | 54 | if (helium_status_OK == status) { |
Marc Nijdam |
1:a843f3d9d31c | 55 | printf("%" PRIx64 " - ", info.mac); |
Marc Nijdam |
1:a843f3d9d31c | 56 | } |
Marc Nijdam |
1:a843f3d9d31c | 57 | report_status(status); |
Marc Nijdam |
1:a843f3d9d31c | 58 | |
Marc Nijdam |
1:a843f3d9d31c | 59 | printf("Connecting - "); |
Marc Nijdam |
4:03dac69c22c5 | 60 | status = helium.connect(); |
Marc Nijdam |
1:a843f3d9d31c | 61 | report_status(status); |
Marc Nijdam |
1:a843f3d9d31c | 62 | |
Marc Nijdam |
1:a843f3d9d31c | 63 | printf("Creating Channel - "); |
Marc Nijdam |
0:9c0bcd840b37 | 64 | int8_t result; |
Marc Nijdam |
0:9c0bcd840b37 | 65 | status = channel.begin("Helium Cloud MQTT", &result); |
Marc Nijdam |
0:9c0bcd840b37 | 66 | report_status(status); |
Marc Nijdam |
0:9c0bcd840b37 | 67 | |
Marc Nijdam |
1:a843f3d9d31c | 68 | printf("Sending - "); |
Marc Nijdam |
0:9c0bcd840b37 | 69 | const char *data = "Hello Helium"; |
Marc Nijdam |
0:9c0bcd840b37 | 70 | status = channel.send(data, strlen(data), &result); |
Marc Nijdam |
0:9c0bcd840b37 | 71 | report_status_result(status, result); |
Marc Nijdam |
0:9c0bcd840b37 | 72 | } |