Demo application for using the AT&T IoT Starter Kit Powered by AWS.

Dependencies:   SDFileSystem

Fork of ATT_AWS_IoT_demo by Anthony Phillips

IoT Starter Kit Powered by AWS Demo

This program demonstrates the AT&T IoT Starter Kit sending data directly into AWS IoT. It's explained and used in the Getting Started with the IoT Starter Kit Powered by AWS on starterkit.att.com.

What's required

  • AT&T IoT LTE Add-on (also known as the Cellular Shield)
  • NXP K64F - for programming
  • microSD card - used to store your AWS security credentials
  • AWS account
  • Python, locally installed

If you don't already have an IoT Starter Kit, you can purchase a kit here. The IoT Starter Kit Powered by AWS includes the LTE cellular shield, K64F, and a microSD card.

Revision:
15:6f2798e45099
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WNCInterface/WNCSocket/WNCTCPSocketConnection.h	Thu Dec 01 18:05:38 2016 +0000
@@ -0,0 +1,98 @@
+/* =====================================================================
+   Copyright © 2016, Avnet (R)
+
+   Contributors:
+     * James M Flynn, www.em.avnet.com 
+ 
+   Licensed under the Apache License, Version 2.0 (the "License"); 
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, 
+   software distributed under the License is distributed on an 
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
+   either express or implied. See the License for the specific 
+   language governing permissions and limitations under the License.
+
+    @file          WNCInterface.cpp
+    @version       1.0
+    @date          Sept 2016
+
+======================================================================== */
+
+#ifndef WNCTCPSOCKET_H
+#define WNCTCPSOCKET_H
+
+#include "WNCSocket/WNCSocket.h"
+#include "WNCSocket/WNCEndpoint.h"
+
+/**
+TCP socket connection
+*/
+class WNCTCPSocketConnection : public WNCSocket, public WNCEndpoint {
+    
+public:
+    WNCTCPSocketConnection();
+
+    /** Connects this TCP socket to the server
+    \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS.
+    \param port The host's port to connect to.
+    \return 0 on success, -1 on failure.
+    */    
+    int connect(const char* host, const int port);
+
+    /** Check if the socket is connected
+    \return true if connected, false otherwise.
+    */    
+    bool is_connected(void);
+
+    /** Send data to the remote host.
+    \param data The buffer to send to the host.
+    \param length The length of the buffer to send.
+    \return the number of written bytes on success (>=0) or -1 on failure
+     */    
+    int send(char* data, int length);
+    
+    /** Send all the data to the remote host.
+    \param data The buffer to send to the host.
+    \param length The length of the buffer to send.
+    \return the number of written bytes on success (>=0) or -1 on failure
+    */
+    int send_all(char* data, int length);
+    
+    /** Receive data from the remote host.
+    \param data The buffer in which to store the data received from the host.
+    \param length The maximum length of the buffer.
+    \return the number of received bytes on success (>=0) or -1 on failure
+     */
+    int receive(char* data, int length);
+    
+    /** Receive all the data from the remote host.
+    \param data The buffer in which to store the data received from the host.
+    \param length The maximum length of the buffer.
+    \return the number of received bytes on success (>=0) or -1 on failure
+    */
+    int receive_all(char* data, int length);
+
+    /** Set blocking or non-blocking mode of the socket and a timeout 
+    \param  blocking true for blocking mode, false for non-blocking mode.
+    \return none
+    */
+    void set_blocking (bool blocking, unsigned int timeout=1500);
+
+    /** Close the socket
+    \param none
+    \return 0 if closed successfully, -1 on failure
+    */
+    int close(void);
+
+private:
+    bool _is_blocking;
+    unsigned int _btimeout;
+
+};
+
+#endif
+