Helium / Mbed OS helium_basic
Committer:
Marc Nijdam
Date:
Wed Jul 05 13:36:08 2017 -0700
Revision:
3:8e6494dda270
Parent:
2:bfe503bcf0b8
Child:
4:03dac69c22c5
Rename license and use arduino pins

Who changed what in which revision?

UserRevisionLine numberNew 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 1:a843f3d9d31c 8 #include <inttypes.h>
Marc Nijdam 0:9c0bcd840b37 9
Marc Nijdam 0:9c0bcd840b37 10 void report_status(int status)
Marc Nijdam 0:9c0bcd840b37 11 {
Marc Nijdam 0:9c0bcd840b37 12 if (helium_status_OK == status) {
Marc Nijdam 0:9c0bcd840b37 13 printf("Succeeded\n");
Marc Nijdam 0:9c0bcd840b37 14 } else {
Marc Nijdam 1:a843f3d9d31c 15 printf("Failed (status %d)\n", status);
Marc Nijdam 0:9c0bcd840b37 16 }
Marc Nijdam 0:9c0bcd840b37 17 }
Marc Nijdam 0:9c0bcd840b37 18
Marc Nijdam 0:9c0bcd840b37 19 void report_status_result(int status, int result)
Marc Nijdam 0:9c0bcd840b37 20 {
Marc Nijdam 0:9c0bcd840b37 21 if (helium_status_OK == status) {
Marc Nijdam 0:9c0bcd840b37 22 if (result == 0) {
Marc Nijdam 0:9c0bcd840b37 23 printf("Succeeded\n");
Marc Nijdam 0:9c0bcd840b37 24 } else {
Marc Nijdam 0:9c0bcd840b37 25 printf("Failed - %d", result);
Marc Nijdam 0:9c0bcd840b37 26 }
Marc Nijdam 0:9c0bcd840b37 27 } else {
Marc Nijdam 1:a843f3d9d31c 28 printf("Failed (status %d)\n", status);
Marc Nijdam 0:9c0bcd840b37 29 }
Marc Nijdam 0:9c0bcd840b37 30 }
Marc Nijdam 0:9c0bcd840b37 31
Marc Nijdam 0:9c0bcd840b37 32
Marc Nijdam 1:a843f3d9d31c 33 #if defined(TARGET_K64F)
Marc Nijdam 3:8e6494dda270 34 Helium helium(D9, D7); // TX:D9, RX:D7
Marc Nijdam 2:bfe503bcf0b8 35 #elif defined(TARGET_WIZwiki_W7500)
Marc Nijdam 2:bfe503bcf0b8 36 Helium helium(D1, D0);
Marc Nijdam 1:a843f3d9d31c 37 #else
Marc Nijdam 1:a843f3d9d31c 38 #error Please define helium with serial tx/rx
Marc Nijdam 1:a843f3d9d31c 39 #endif
Marc Nijdam 1:a843f3d9d31c 40
Marc Nijdam 1:a843f3d9d31c 41 Channel channel(&helium);
Marc Nijdam 1:a843f3d9d31c 42
Marc Nijdam 0:9c0bcd840b37 43 int main()
Marc Nijdam 0:9c0bcd840b37 44 {
Marc Nijdam 1:a843f3d9d31c 45 printf("Starting\n");
Marc Nijdam 0:9c0bcd840b37 46
Marc Nijdam 1:a843f3d9d31c 47 printf("Info - ");
Marc Nijdam 1:a843f3d9d31c 48 struct helium_info info;
Marc Nijdam 1:a843f3d9d31c 49 int status = helium.info(&info);
Marc Nijdam 1:a843f3d9d31c 50 if (helium_status_OK == status) {
Marc Nijdam 1:a843f3d9d31c 51 printf("%" PRIx64 " - ", info.mac);
Marc Nijdam 1:a843f3d9d31c 52 }
Marc Nijdam 1:a843f3d9d31c 53 report_status(status);
Marc Nijdam 1:a843f3d9d31c 54
Marc Nijdam 1:a843f3d9d31c 55 printf("Connecting - ");
Marc Nijdam 1:a843f3d9d31c 56 status = helium.connect(NULL, HELIUM_POLL_RETRIES_5S * 10);
Marc Nijdam 1:a843f3d9d31c 57 report_status(status);
Marc Nijdam 1:a843f3d9d31c 58
Marc Nijdam 1:a843f3d9d31c 59 printf("Creating Channel - ");
Marc Nijdam 0:9c0bcd840b37 60 int8_t result;
Marc Nijdam 0:9c0bcd840b37 61 status = channel.begin("Helium Cloud MQTT", &result);
Marc Nijdam 0:9c0bcd840b37 62 report_status(status);
Marc Nijdam 0:9c0bcd840b37 63
Marc Nijdam 1:a843f3d9d31c 64 printf("Sending - ");
Marc Nijdam 0:9c0bcd840b37 65 const char *data = "Hello Helium";
Marc Nijdam 0:9c0bcd840b37 66 status = channel.send(data, strlen(data), &result);
Marc Nijdam 0:9c0bcd840b37 67 report_status_result(status, result);
Marc Nijdam 0:9c0bcd840b37 68 }