MQTT version for enno SDK

Dependencies:   EthernetInterface MQTT mbed-rtos mbed serialzation_lib

Fork of HelloMQTT by MQTT

Committer:
weiarm2015
Date:
Wed Dec 02 01:54:31 2015 +0000
Revision:
21:c5f6350a292d
Parent:
20:3858e42b0cd3
This is a alpha version of enno SDK for mbed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
weiarm2015 21:c5f6350a292d 1 /*
weiarm2015 21:c5f6350a292d 2 * ennoForMbed.c
weiarm2015 21:c5f6350a292d 3 *
weiarm2015 21:c5f6350a292d 4 * Created on: 2015年11月20日
weiarm2015 21:c5f6350a292d 5 * Author: v-chawei
weiarm2015 21:c5f6350a292d 6 */
weiarm2015 20:3858e42b0cd3 7 #include "mbed.h"
weiarm2015 21:c5f6350a292d 8 #include "MQTTClient.h"
weiarm2015 20:3858e42b0cd3 9 #include "enno_api.h"
icraggs 18:07a79d8f01c3 10
weiarm2015 21:c5f6350a292d 11
icraggs 17:0811bdbdd78a 12 #define MQTTCLIENT_QOS2 1
weiarm2015 20:3858e42b0cd3 13 DigitalOut led1(LED1);
weiarm2015 20:3858e42b0cd3 14 DigitalOut led2(LED2);
weiarm2015 20:3858e42b0cd3 15 DigitalOut led3(LED3);
weiarm2015 20:3858e42b0cd3 16 DigitalOut led4(LED4);
icraggs 0:0cae29831d01 17
icraggs 8:a3e3113054a1 18
weiarm2015 21:c5f6350a292d 19 int main(int argc, char* argv[]){
weiarm2015 21:c5f6350a292d 20 Error_t rc = NONE_ERROR;
weiarm2015 20:3858e42b0cd3 21 float version = 0.5;
weiarm2015 21:c5f6350a292d 22 char *ennoCommandPrefix = "SiteWhere/commands/";
weiarm2015 21:c5f6350a292d 23 char *ennoSystemPrefix = "SiteWhere/system/";
weiarm2015 21:c5f6350a292d 24 char *ennoSystemInbound = "SiteWhere/input/protobuf";
weiarm2015 21:c5f6350a292d 25 char *deviceId = "enno-xbed-test-30";
weiarm2015 21:c5f6350a292d 26 char *topicType = "command";
weiarm2015 21:c5f6350a292d 27 char *hostURL = "139.217.10.99";
weiarm2015 21:c5f6350a292d 28 int port = 1883;
weiarm2015 21:c5f6350a292d 29 char *appKey = NULL;
weiarm2015 21:c5f6350a292d 30
weiarm2015 20:3858e42b0cd3 31 led1=1;led2=1;led3=1;led4=1; //light on
weiarm2015 20:3858e42b0cd3 32 wait(0.5);
weiarm2015 20:3858e42b0cd3 33 led1=!led1;led2=!led2;led3=!led3;led4=!led4; //light off
weiarm2015 20:3858e42b0cd3 34 wait(0.5);
weiarm2015 20:3858e42b0cd3 35 led1=!led1;led2=!led2;led3=!led3;led4=!led4; //light on
weiarm2015 20:3858e42b0cd3 36 wait(0.5);
weiarm2015 20:3858e42b0cd3 37 led1=!led1;led2=!led2;led3=!led3;led4=!led4; //light off
weiarm2015 20:3858e42b0cd3 38
weiarm2015 20:3858e42b0cd3 39 printf("HelloMQTT: version is %f\n", version);
weiarm2015 20:3858e42b0cd3 40
weiarm2015 21:c5f6350a292d 41 printf("Connecting to enno server %s:%d...\n",hostURL,port);
weiarm2015 21:c5f6350a292d 42
weiarm2015 21:c5f6350a292d 43 rc = enno_connect(hostURL, port, appKey);
weiarm2015 21:c5f6350a292d 44 if (NONE_ERROR != rc) {
weiarm2015 21:c5f6350a292d 45 printf("Error(%d) on connecting.\n", rc);
weiarm2015 21:c5f6350a292d 46 exit(rc);
weiarm2015 21:c5f6350a292d 47 }
weiarm2015 21:c5f6350a292d 48 printf("connected.\n");
weiarm2015 21:c5f6350a292d 49
weiarm2015 21:c5f6350a292d 50 printf("Subscribing system topic...");
weiarm2015 21:c5f6350a292d 51 char systemTopic[64];
weiarm2015 21:c5f6350a292d 52 char commandTopic[64];
weiarm2015 21:c5f6350a292d 53 strcpy(systemTopic,ennoSystemPrefix);
weiarm2015 21:c5f6350a292d 54 strcat(systemTopic,deviceId);
weiarm2015 21:c5f6350a292d 55
weiarm2015 21:c5f6350a292d 56 rc = enno_subscribe(systemTopic, topicType);
weiarm2015 21:c5f6350a292d 57 if (NONE_ERROR != rc) {
weiarm2015 21:c5f6350a292d 58 printf("Error on subscrie system topic.");
weiarm2015 21:c5f6350a292d 59 exit(rc);
weiarm2015 21:c5f6350a292d 60 }
weiarm2015 21:c5f6350a292d 61 printf("subscribed.\n");
weiarm2015 21:c5f6350a292d 62
weiarm2015 21:c5f6350a292d 63 printf("Send device registeration...\n");
weiarm2015 21:c5f6350a292d 64
weiarm2015 21:c5f6350a292d 65 EnnoMessages Messages_enno = EnnoMessagesDefault;
weiarm2015 21:c5f6350a292d 66 Messages_enno.Register.pHardwareId = deviceId;
weiarm2015 21:c5f6350a292d 67 Messages_enno.messageType = 'R';
weiarm2015 21:c5f6350a292d 68 rc = enno_publish(ennoSystemInbound, &Messages_enno);
weiarm2015 21:c5f6350a292d 69 if (NONE_ERROR != rc) {
weiarm2015 21:c5f6350a292d 70 printf("Error on Registering device.\n");
weiarm2015 21:c5f6350a292d 71 exit(rc);
weiarm2015 21:c5f6350a292d 72 }
weiarm2015 21:c5f6350a292d 73
weiarm2015 21:c5f6350a292d 74 printf("sent.\n");
weiarm2015 21:c5f6350a292d 75 Messages_enno.messageType = 'L';
weiarm2015 21:c5f6350a292d 76 // main loop
weiarm2015 21:c5f6350a292d 77 while (NONE_ERROR == rc) {
weiarm2015 21:c5f6350a292d 78 enno_loop(1000);
weiarm2015 21:c5f6350a292d 79 // sleep(1);
weiarm2015 21:c5f6350a292d 80 rc = enno_publish(ennoSystemInbound, &Messages_enno);
weiarm2015 21:c5f6350a292d 81 led3=!led3;
weiarm2015 21:c5f6350a292d 82 printf("Location updated.\n");
weiarm2015 21:c5f6350a292d 83 }
weiarm2015 21:c5f6350a292d 84
weiarm2015 21:c5f6350a292d 85 return rc;
icraggs 2:638c854c0695 86 }
icraggs 0:0cae29831d01 87
icraggs 2:638c854c0695 88
icraggs 2:638c854c0695 89
icraggs 0:0cae29831d01 90
weiarm2015 20:3858e42b0cd3 91