MQTT version for enno SDK
Dependencies: EthernetInterface MQTT mbed-rtos mbed serialzation_lib
Fork of HelloMQTT by
Diff: protocol/enno_api.c
- Revision:
- 21:c5f6350a292d
- Parent:
- 20:3858e42b0cd3
diff -r 3858e42b0cd3 -r c5f6350a292d protocol/enno_api.c --- a/protocol/enno_api.c Wed Nov 25 07:07:31 2015 +0000 +++ b/protocol/enno_api.c Wed Dec 02 01:54:31 2015 +0000 @@ -1,6 +1,44 @@ +/* + * enno_api.c + * + * Created on: 2015年11月20日 + * Author: v-chawei + */ #include <stdio.h> #include <stdbool.h> #include "enno_api.h" #include "sitewhere.pb.h" #include "sitewhere.h" #include "pb_decode.h" +//#include "custom.h" +//#include "raspberrypi.pb.h" + +bool registered = false; + +void ennoSystemMessageHandler(char* topic, char* payload, int length) { + Device_Header header; + + pb_istream_t stream = pb_istream_from_buffer(payload, length); + + if (pb_decode_delimited(&stream, Device_Header_fields, &header)) { + + if (header.command == Device_Command_REGISTER_ACK) { + Device_RegistrationAck ack; + if (pb_decode_delimited(&stream, Device_RegistrationAck_fields, &ack)) { + if (ack.state == Device_RegistrationAckState_NEW_REGISTRATION) { + printf("Registered new device.\n"); + registered = true; + } + else if (ack.state == Device_RegistrationAckState_ALREADY_REGISTERED) { + printf("Device has already registered.\n"); + } + else if (ack.state == Device_RegistrationAckState_REGISTRATION_ERROR) { + printf("Error rigistering device.\n"); + } + } + } + } else { + printf("Unable to decode system command.\n"); + } +} +