![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
MQTT version for enno SDK
Dependencies: EthernetInterface MQTT mbed-rtos mbed serialzation_lib
Fork of HelloMQTT by
protocol/enno_api.c@21:c5f6350a292d, 2015-12-02 (annotated)
- 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?
User | Revision | Line number | New 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 |