Axeda AMMMP sample code for the mbed NXP LPC1768 Prototyping Board

Dependencies:   EthernetInterface mbed-rtos mbed

Dependents:   AxedaGo-mbed_WIZnetInterface

main.cpp

Committer:
AxedaCorp
Date:
2013-10-29
Revision:
2:3402e0dbab6b
Parent:
1:16dd56f0f6c7
Child:
3:359e019da3b9

File content as of revision 2:3402e0dbab6b:

#include "mbed.h"
#include "EthernetInterface.h"
 
EthernetInterface eth;
 
AnalogIn pot1(p19);
TCPSocketConnection sock;
 
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
 
int main() 
{
    
    char *MODEL = "mbed";
    char *SERIAL_NUM = "abc-123"; 
    float DEADBAND = 0.015;
    
    char* ip;
    
    char http_cmd[300];   
    char buffer[300];  
    int returnCode = 0;
    
    led1 = 1;
    led2 = 1;
    led3 = 1;
    led4 = 1;
    
    printf("initializing Ethernet\r\n");
    returnCode = eth.init(); //Use DHCP
 
    if ( returnCode == 0 )
    {
        printf(" - Ethernet ready\r\n");
        led1 = returnCode;
    }
    else
    {
        printf(" - Could not initialize Ethernet - ending\r\n");
        return 0;
    }
    
    printf("Ethernet.connecting \r\n");
    returnCode = eth.connect();
    printf(" - connecting returned %d \r\n", returnCode);
    led2 = returnCode != -1 ? 0: 1;
    printf("Trying to get IP address..\r\n");
    ip = eth.getIPAddress();
    led3 = strlen(ip)<4 ? 1: 0;
    printf("  -  IP address:%s\r\n", ip);
    
    float potVal = 0.0;
    float oldPotVal = -2.0;
    
    while(1) {
    
        potVal = pot1.read();
        
        if ( abs(potVal - oldPotVal) < DEADBAND)
        {
            continue;   
        }
        else
        {
            led4 = 1;
            oldPotVal = potVal;
            printf("Sending Value  %.2f\n\r", potVal);
            sock.connect("dev6-connect.axeda.com", 52689);
 
            sprintf(http_cmd,  "POST /ammp/data/1/%s!%s HTTP/1.1\r\nContent-Type: application/json\r\nContent-Length: 47\r\n\r\n{\"data\":[{\"di\":{\"bar\":\"camp\",\"pot1\":%.2f}}]}\r\n\r\n", MODEL, SERIAL_NUM,potVal);
            sock.send_all(http_cmd, sizeof(http_cmd)-1);
    
            while ( (returnCode = sock.receive(buffer, sizeof(buffer)-1)) > 0)
            {
                buffer[returnCode] = '\0';
                printf("Received %d chars from server:\n\r%s\n", returnCode, buffer);
            }
            led4 = returnCode;
            sock.close();
        }
 
    }
 
}