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 * enno_api.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 <stdio.h>
weiarm2015 20:3858e42b0cd3 8 #include <stdbool.h>
weiarm2015 20:3858e42b0cd3 9 #include "enno_api.h"
weiarm2015 20:3858e42b0cd3 10 #include "sitewhere.pb.h"
weiarm2015 20:3858e42b0cd3 11 #include "sitewhere.h"
weiarm2015 20:3858e42b0cd3 12 #include "pb_decode.h"
weiarm2015 21:c5f6350a292d 13 //#include "custom.h"
weiarm2015 21:c5f6350a292d 14 //#include "raspberrypi.pb.h"
weiarm2015 21:c5f6350a292d 15
weiarm2015 21:c5f6350a292d 16 bool registered = false;
weiarm2015 21:c5f6350a292d 17
weiarm2015 21:c5f6350a292d 18 void ennoSystemMessageHandler(char* topic, char* payload, int length) {
weiarm2015 21:c5f6350a292d 19 Device_Header header;
weiarm2015 21:c5f6350a292d 20
weiarm2015 21:c5f6350a292d 21 pb_istream_t stream = pb_istream_from_buffer(payload, length);
weiarm2015 21:c5f6350a292d 22
weiarm2015 21:c5f6350a292d 23 if (pb_decode_delimited(&stream, Device_Header_fields, &header)) {
weiarm2015 21:c5f6350a292d 24
weiarm2015 21:c5f6350a292d 25 if (header.command == Device_Command_REGISTER_ACK) {
weiarm2015 21:c5f6350a292d 26 Device_RegistrationAck ack;
weiarm2015 21:c5f6350a292d 27 if (pb_decode_delimited(&stream, Device_RegistrationAck_fields, &ack)) {
weiarm2015 21:c5f6350a292d 28 if (ack.state == Device_RegistrationAckState_NEW_REGISTRATION) {
weiarm2015 21:c5f6350a292d 29 printf("Registered new device.\n");
weiarm2015 21:c5f6350a292d 30 registered = true;
weiarm2015 21:c5f6350a292d 31 }
weiarm2015 21:c5f6350a292d 32 else if (ack.state == Device_RegistrationAckState_ALREADY_REGISTERED) {
weiarm2015 21:c5f6350a292d 33 printf("Device has already registered.\n");
weiarm2015 21:c5f6350a292d 34 }
weiarm2015 21:c5f6350a292d 35 else if (ack.state == Device_RegistrationAckState_REGISTRATION_ERROR) {
weiarm2015 21:c5f6350a292d 36 printf("Error rigistering device.\n");
weiarm2015 21:c5f6350a292d 37 }
weiarm2015 21:c5f6350a292d 38 }
weiarm2015 21:c5f6350a292d 39 }
weiarm2015 21:c5f6350a292d 40 } else {
weiarm2015 21:c5f6350a292d 41 printf("Unable to decode system command.\n");
weiarm2015 21:c5f6350a292d 42 }
weiarm2015 21:c5f6350a292d 43 }
weiarm2015 21:c5f6350a292d 44