MQTT version for enno SDK
Dependencies: EthernetInterface MQTT mbed-rtos mbed serialzation_lib
Fork of HelloMQTT by
protocol/enno_api.h@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 | 20:3858e42b0cd3 | 1 | /* |
weiarm2015 | 20:3858e42b0cd3 | 2 | * enno_api.h |
weiarm2015 | 20:3858e42b0cd3 | 3 | * |
weiarm2015 | 20:3858e42b0cd3 | 4 | * Created on: 2015年11月20日 |
weiarm2015 | 21:c5f6350a292d | 5 | * Author: v-chawei |
weiarm2015 | 20:3858e42b0cd3 | 6 | */ |
weiarm2015 | 20:3858e42b0cd3 | 7 | #ifndef PROTOCOL_ENNO_API_H_ |
weiarm2015 | 20:3858e42b0cd3 | 8 | #define PROTOCOL_ENNO_API_H_ |
weiarm2015 | 20:3858e42b0cd3 | 9 | |
weiarm2015 | 21:c5f6350a292d | 10 | #if defined(__cplusplus) |
weiarm2015 | 20:3858e42b0cd3 | 11 | extern "C" { |
weiarm2015 | 20:3858e42b0cd3 | 12 | #endif |
weiarm2015 | 20:3858e42b0cd3 | 13 | |
weiarm2015 | 20:3858e42b0cd3 | 14 | #include "stddef.h" |
weiarm2015 | 20:3858e42b0cd3 | 15 | #include "stdbool.h" |
weiarm2015 | 20:3858e42b0cd3 | 16 | #include "stdint.h" |
weiarm2015 | 20:3858e42b0cd3 | 17 | #include "enno_error.h" |
weiarm2015 | 20:3858e42b0cd3 | 18 | #include "enno_config.h" |
weiarm2015 | 20:3858e42b0cd3 | 19 | |
weiarm2015 | 20:3858e42b0cd3 | 20 | |
weiarm2015 | 20:3858e42b0cd3 | 21 | |
weiarm2015 | 20:3858e42b0cd3 | 22 | typedef struct { |
weiarm2015 | 20:3858e42b0cd3 | 23 | char *pHardwareId; |
weiarm2015 | 20:3858e42b0cd3 | 24 | char *pSpecificationToken; |
weiarm2015 | 20:3858e42b0cd3 | 25 | char *pOriginator; |
weiarm2015 | 20:3858e42b0cd3 | 26 | } Register_enno; |
weiarm2015 | 20:3858e42b0cd3 | 27 | |
weiarm2015 | 20:3858e42b0cd3 | 28 | typedef struct { |
weiarm2015 | 20:3858e42b0cd3 | 29 | char *pHardwareId; |
weiarm2015 | 20:3858e42b0cd3 | 30 | char *pMessage; |
weiarm2015 | 20:3858e42b0cd3 | 31 | char *pOriginator; |
weiarm2015 | 20:3858e42b0cd3 | 32 | } Acknowledge_enno; |
weiarm2015 | 20:3858e42b0cd3 | 33 | |
weiarm2015 | 20:3858e42b0cd3 | 34 | typedef struct { |
weiarm2015 | 20:3858e42b0cd3 | 35 | char *pHardwareId; |
weiarm2015 | 20:3858e42b0cd3 | 36 | char *pName; |
weiarm2015 | 20:3858e42b0cd3 | 37 | char *pOriginator; |
weiarm2015 | 20:3858e42b0cd3 | 38 | float value; |
weiarm2015 | 20:3858e42b0cd3 | 39 | int64_t eventDate; |
weiarm2015 | 20:3858e42b0cd3 | 40 | } Measurement_enno; |
weiarm2015 | 20:3858e42b0cd3 | 41 | |
weiarm2015 | 20:3858e42b0cd3 | 42 | typedef struct { |
weiarm2015 | 20:3858e42b0cd3 | 43 | char *pHardwareId; |
weiarm2015 | 20:3858e42b0cd3 | 44 | char *pOriginator; |
weiarm2015 | 20:3858e42b0cd3 | 45 | float lat; |
weiarm2015 | 20:3858e42b0cd3 | 46 | float lon; |
weiarm2015 | 20:3858e42b0cd3 | 47 | float ele; |
weiarm2015 | 20:3858e42b0cd3 | 48 | int64_t eventDate; |
weiarm2015 | 20:3858e42b0cd3 | 49 | } Location_enno; |
weiarm2015 | 20:3858e42b0cd3 | 50 | |
weiarm2015 | 20:3858e42b0cd3 | 51 | typedef struct { |
weiarm2015 | 20:3858e42b0cd3 | 52 | char *pHardwareId; |
weiarm2015 | 20:3858e42b0cd3 | 53 | char *pAlertType; |
weiarm2015 | 20:3858e42b0cd3 | 54 | char *pAlertMessage; |
weiarm2015 | 20:3858e42b0cd3 | 55 | char *pOriginator; |
weiarm2015 | 20:3858e42b0cd3 | 56 | int64_t eventDate; |
weiarm2015 | 20:3858e42b0cd3 | 57 | } Alert_enno; |
weiarm2015 | 20:3858e42b0cd3 | 58 | |
weiarm2015 | 20:3858e42b0cd3 | 59 | typedef struct { |
weiarm2015 | 20:3858e42b0cd3 | 60 | char messageType; |
weiarm2015 | 20:3858e42b0cd3 | 61 | Register_enno Register; |
weiarm2015 | 20:3858e42b0cd3 | 62 | Acknowledge_enno Acknowledge; |
weiarm2015 | 20:3858e42b0cd3 | 63 | Measurement_enno Measurement; |
weiarm2015 | 20:3858e42b0cd3 | 64 | Location_enno Location; |
weiarm2015 | 20:3858e42b0cd3 | 65 | Alert_enno Alert; |
weiarm2015 | 20:3858e42b0cd3 | 66 | } EnnoMessages; |
weiarm2015 | 20:3858e42b0cd3 | 67 | |
weiarm2015 | 21:c5f6350a292d | 68 | #define EnnoMessagesDefault {'R',{"enno-xbed-test-25", "417b36a8-21ef-4196-a8fe-cc756f994d0b", NULL},{"enno-xbed-test-25", NULL, NULL},{"enno-xbed-test-25", "temperature", NULL, 10, 0},{"enno-xbed-test-25", NULL, 27.59, 86.55, 8844.43, 0},{"enno-xbed-test-25", "enno.info", "I am alive", NULL, 0}} |
weiarm2015 | 20:3858e42b0cd3 | 69 | /** |
weiarm2015 | 20:3858e42b0cd3 | 70 | * @brief Handles the system callback message |
weiarm2015 | 20:3858e42b0cd3 | 71 | * |
weiarm2015 | 21:c5f6350a292d | 72 | * params: topic the system topic subscribed by client |
weiarm2015 | 20:3858e42b0cd3 | 73 | * payload the received payload |
weiarm2015 | 20:3858e42b0cd3 | 74 | * length the length of payload |
weiarm2015 | 20:3858e42b0cd3 | 75 | * |
weiarm2015 | 20:3858e42b0cd3 | 76 | */ |
weiarm2015 | 20:3858e42b0cd3 | 77 | void ennoSystemMessageHandler(char* topic, char* payload, int length); |
weiarm2015 | 21:c5f6350a292d | 78 | /** |
weiarm2015 | 21:c5f6350a292d | 79 | * @brief Handles the command callback message |
weiarm2015 | 21:c5f6350a292d | 80 | * |
weiarm2015 | 21:c5f6350a292d | 81 | * params: topic the command topic subscribed by client |
weiarm2015 | 21:c5f6350a292d | 82 | * payload the received payload |
weiarm2015 | 21:c5f6350a292d | 83 | * length the length of payload |
weiarm2015 | 21:c5f6350a292d | 84 | * |
weiarm2015 | 21:c5f6350a292d | 85 | */ |
weiarm2015 | 21:c5f6350a292d | 86 | void ennoCommandMessageHandler(char* topic, char* payload, int length); |
weiarm2015 | 20:3858e42b0cd3 | 87 | |
weiarm2015 | 20:3858e42b0cd3 | 88 | /** |
weiarm2015 | 20:3858e42b0cd3 | 89 | * @brief Connection Function |
weiarm2015 | 20:3858e42b0cd3 | 90 | * |
weiarm2015 | 20:3858e42b0cd3 | 91 | * Called to establish an connection with the Enno IoT Service |
weiarm2015 | 20:3858e42b0cd3 | 92 | * |
weiarm2015 | 20:3858e42b0cd3 | 93 | * @param: HostURL the website address to connect |
weiarm2015 | 20:3858e42b0cd3 | 94 | * port listening port |
weiarm2015 | 20:3858e42b0cd3 | 95 | * appKey a key for authentication |
weiarm2015 | 20:3858e42b0cd3 | 96 | * @return An IoT Error Type defining successful/failed connection |
weiarm2015 | 20:3858e42b0cd3 | 97 | */ |
weiarm2015 | 20:3858e42b0cd3 | 98 | |
weiarm2015 | 20:3858e42b0cd3 | 99 | Error_t enno_connect(char *HostURL, uint16_t port, char *appKey); |
weiarm2015 | 20:3858e42b0cd3 | 100 | |
weiarm2015 | 20:3858e42b0cd3 | 101 | /** |
weiarm2015 | 20:3858e42b0cd3 | 102 | * @brief Subscribe to a topic. |
weiarm2015 | 20:3858e42b0cd3 | 103 | * |
weiarm2015 | 20:3858e42b0cd3 | 104 | * Called to send a subscribe message to the broker |
weiarm2015 | 20:3858e42b0cd3 | 105 | * |
weiarm2015 | 20:3858e42b0cd3 | 106 | * @param: Topic Pointer to a Topic |
weiarm2015 | 20:3858e42b0cd3 | 107 | * callback Pointer to a callback function |
weiarm2015 | 20:3858e42b0cd3 | 108 | * @return An IoT Error Type defining successful/failed subscription |
weiarm2015 | 20:3858e42b0cd3 | 109 | */ |
weiarm2015 | 21:c5f6350a292d | 110 | Error_t enno_subscribe(char *topic, char *topicType); |
weiarm2015 | 20:3858e42b0cd3 | 111 | /** |
weiarm2015 | 20:3858e42b0cd3 | 112 | * @brief Publish a message to a path |
weiarm2015 | 20:3858e42b0cd3 | 113 | * |
weiarm2015 | 20:3858e42b0cd3 | 114 | * Called to publish a message to a path. |
weiarm2015 | 20:3858e42b0cd3 | 115 | * |
weiarm2015 | 20:3858e42b0cd3 | 116 | * @param: path the destination of message sent to |
weiarm2015 | 20:3858e42b0cd3 | 117 | * messages_enno Pointer to the published message |
weiarm2015 | 20:3858e42b0cd3 | 118 | * @return An IoT Error Type defining successful/failed publish |
weiarm2015 | 20:3858e42b0cd3 | 119 | */ |
weiarm2015 | 20:3858e42b0cd3 | 120 | Error_t enno_publish(char *path, EnnoMessages *messages_enno); |
weiarm2015 | 20:3858e42b0cd3 | 121 | /** |
weiarm2015 | 20:3858e42b0cd3 | 122 | * @brief Unsubscribe to an topic. |
weiarm2015 | 20:3858e42b0cd3 | 123 | * |
weiarm2015 | 20:3858e42b0cd3 | 124 | * Called to send an usubscribe message to the broker requesting removal of a subscription |
weiarm2015 | 20:3858e42b0cd3 | 125 | * to a topic. |
weiarm2015 | 20:3858e42b0cd3 | 126 | * |
weiarm2015 | 20:3858e42b0cd3 | 127 | * @param: pTopic Pointer to the requested topic string. Ensure the string is null terminated |
weiarm2015 | 20:3858e42b0cd3 | 128 | * @return An IoT Error Type defining successful/failed unsubscription |
weiarm2015 | 20:3858e42b0cd3 | 129 | */ |
weiarm2015 | 20:3858e42b0cd3 | 130 | Error_t enno_unsubscribe(char *pTopic); |
weiarm2015 | 20:3858e42b0cd3 | 131 | |
weiarm2015 | 20:3858e42b0cd3 | 132 | /** |
weiarm2015 | 20:3858e42b0cd3 | 133 | * @brief Disconnect a Connection |
weiarm2015 | 20:3858e42b0cd3 | 134 | * |
weiarm2015 | 20:3858e42b0cd3 | 135 | * Called to send a disconnect message to the broker. |
weiarm2015 | 20:3858e42b0cd3 | 136 | * |
weiarm2015 | 20:3858e42b0cd3 | 137 | * @return An IoT Error Type defining successful/failed send of the disconnect control packet. |
weiarm2015 | 20:3858e42b0cd3 | 138 | */ |
weiarm2015 | 20:3858e42b0cd3 | 139 | Error_t enno_disconnect(); |
weiarm2015 | 20:3858e42b0cd3 | 140 | |
weiarm2015 | 20:3858e42b0cd3 | 141 | /** |
weiarm2015 | 20:3858e42b0cd3 | 142 | * @brief Yield to the client |
weiarm2015 | 20:3858e42b0cd3 | 143 | * |
weiarm2015 | 20:3858e42b0cd3 | 144 | * Called to yield the current thread to the underlying client. |
weiarm2015 | 20:3858e42b0cd3 | 145 | * |
weiarm2015 | 20:3858e42b0cd3 | 146 | * @param timeout Maximum number of milliseconds to pass thread execution to the client. |
weiarm2015 | 20:3858e42b0cd3 | 147 | * @return An IoT Error Type defining successful/failed client processing. |
weiarm2015 | 20:3858e42b0cd3 | 148 | */ |
weiarm2015 | 20:3858e42b0cd3 | 149 | |
weiarm2015 | 20:3858e42b0cd3 | 150 | Error_t enno_loop(int timeout); |
weiarm2015 | 20:3858e42b0cd3 | 151 | #ifdef __cplusplus |
weiarm2015 | 20:3858e42b0cd3 | 152 | } |
weiarm2015 | 20:3858e42b0cd3 | 153 | #endif |
weiarm2015 | 20:3858e42b0cd3 | 154 | |
weiarm2015 | 20:3858e42b0cd3 | 155 | #endif /* PROTOCOL_ENNO_API_H_ */ |