A simple IoTHub sample using AMQP as transport
Dependencies: EthernetInterface NTPClient iothub_amqp_transport iothub_client mbed-rtos mbed azure_c_shared_utility serializer wolfSSL azure_uamqp_c
This sample showcases the usage of Azure IoT client libraries with the AMQP transport for sending/receiving raw messages from an IoT Hub.
Diff: main.cpp
- Revision:
- 16:b2c6de619743
- Child:
- 21:b8b8782d412f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Oct 22 18:33:52 2015 -0700 @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +#include <stdio.h> +#include "EthernetInterface.h" +#include "mbed/logging.h" +#include "mbed/mbedtime.h" +#include "simplesample_amqp.h" +#include "NTPClient.h" + +int setupRealTime(void) +{ + int result; + + (void)printf("setupRealTime begin\r\n"); + if (EthernetInterface::connect()) + { + (void)printf("Error initializing EthernetInterface.\r\n"); + result = __LINE__; + } + else + { + (void)printf("setupRealTime NTP begin\r\n"); + NTPClient ntp; + if (ntp.setTime("0.pool.ntp.org") != 0) + { + (void)printf("Failed setting time.\r\n"); + result = __LINE__; + } + else + { + (void)printf("set time correctly!\r\n"); + result = 0; + } + (void)printf("setupRealTime NTP end\r\n"); + EthernetInterface::disconnect(); + } + (void)printf("setupRealTime end\r\n"); + + return result; +} + +int main(void) +{ + (void)printf("Initializing mbed specific things...\r\n"); + + /* These are needed in order to initialize the time provider for Proton-C */ + mbed_log_init(); + mbedtime_init(); + + if (EthernetInterface::init()) + { + (void)printf("Error initializing EthernetInterface.\r\n"); + return -1; + } + + if (setupRealTime() != 0) + { + (void)printf("Failed setting up real time clock\r\n"); + return -1; + } + + if (EthernetInterface::connect()) + { + (void)printf("Error connecting EthernetInterface.\r\n"); + return -1; + } + + simplesample_amqp_run(); + + (void)EthernetInterface::disconnect(); + + return 0; +}