Fork of my original MQTTGateway

Dependencies:   mbed-http

Committer:
vpcola
Date:
Sat Apr 08 14:43:14 2017 +0000
Revision:
0:a1734fe1ec4b
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vpcola 0:a1734fe1ec4b 1 /**
vpcola 0:a1734fe1ec4b 2 * Copyright (c) 2015 Digi International Inc.,
vpcola 0:a1734fe1ec4b 3 * All rights not expressly granted are reserved.
vpcola 0:a1734fe1ec4b 4 *
vpcola 0:a1734fe1ec4b 5 * This Source Code Form is subject to the terms of the Mozilla Public
vpcola 0:a1734fe1ec4b 6 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
vpcola 0:a1734fe1ec4b 7 * You can obtain one at http://mozilla.org/MPL/2.0/.
vpcola 0:a1734fe1ec4b 8 *
vpcola 0:a1734fe1ec4b 9 * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
vpcola 0:a1734fe1ec4b 10 * =======================================================================
vpcola 0:a1734fe1ec4b 11 */
vpcola 0:a1734fe1ec4b 12
vpcola 0:a1734fe1ec4b 13 #if !defined(__FH_AT_CMD_RESP_H_)
vpcola 0:a1734fe1ec4b 14 #define __FH_AT_CMD_RESP_H_
vpcola 0:a1734fe1ec4b 15
vpcola 0:a1734fe1ec4b 16 #include "FrameHandler.h"
vpcola 0:a1734fe1ec4b 17 #include "XBee/XBee.h"
vpcola 0:a1734fe1ec4b 18
vpcola 0:a1734fe1ec4b 19 namespace XBeeLib {
vpcola 0:a1734fe1ec4b 20 typedef void (*at_cmd_resp_cb_t)(const uint8_t * data, uint16_t len);
vpcola 0:a1734fe1ec4b 21
vpcola 0:a1734fe1ec4b 22 class FH_AtCmdResp : public FrameHandler
vpcola 0:a1734fe1ec4b 23 {
vpcola 0:a1734fe1ec4b 24 private:
vpcola 0:a1734fe1ec4b 25 /** Callback function, invoked (if registered) when an at command response packet is received */
vpcola 0:a1734fe1ec4b 26 at_cmd_resp_cb_t at_cmd_resp_cb;
vpcola 0:a1734fe1ec4b 27
vpcola 0:a1734fe1ec4b 28 public:
vpcola 0:a1734fe1ec4b 29
vpcola 0:a1734fe1ec4b 30 /** Class constructor */
vpcola 0:a1734fe1ec4b 31 FH_AtCmdResp();
vpcola 0:a1734fe1ec4b 32
vpcola 0:a1734fe1ec4b 33 /** Class constructor */
vpcola 0:a1734fe1ec4b 34 FH_AtCmdResp(ApiFrame::ApiFrameType type);
vpcola 0:a1734fe1ec4b 35
vpcola 0:a1734fe1ec4b 36
vpcola 0:a1734fe1ec4b 37 /** Class destructor */
vpcola 0:a1734fe1ec4b 38 virtual ~FH_AtCmdResp();
vpcola 0:a1734fe1ec4b 39
vpcola 0:a1734fe1ec4b 40 virtual void process_frame_data(const ApiFrame *const frame);
vpcola 0:a1734fe1ec4b 41
vpcola 0:a1734fe1ec4b 42 virtual void register_at_cmd_resp_cb(at_cmd_resp_cb_t function);
vpcola 0:a1734fe1ec4b 43
vpcola 0:a1734fe1ec4b 44 virtual void unregister_at_cmd_resp_cb();
vpcola 0:a1734fe1ec4b 45 };
vpcola 0:a1734fe1ec4b 46
vpcola 0:a1734fe1ec4b 47 /**
vpcola 0:a1734fe1ec4b 48 * @defgroup callback_types "Callback types declaration"
vpcola 0:a1734fe1ec4b 49 * @{
vpcola 0:a1734fe1ec4b 50 */
vpcola 0:a1734fe1ec4b 51 /** Node Discovery Response callback type declaration for ZigBee
vpcola 0:a1734fe1ec4b 52 * @param remote discovered remote node.
vpcola 0:a1734fe1ec4b 53 * @param node_id Node Identifier (NI parameter) of remote.
vpcola 0:a1734fe1ec4b 54 */
vpcola 0:a1734fe1ec4b 55 typedef void (*node_discovery_zb_cb_t)(const RemoteXBeeZB& remote, char const * const node_id);
vpcola 0:a1734fe1ec4b 56 /**
vpcola 0:a1734fe1ec4b 57 * @}
vpcola 0:a1734fe1ec4b 58 */
vpcola 0:a1734fe1ec4b 59
vpcola 0:a1734fe1ec4b 60 class FH_NodeDiscoveryZB : public FH_AtCmdResp
vpcola 0:a1734fe1ec4b 61 {
vpcola 0:a1734fe1ec4b 62 private:
vpcola 0:a1734fe1ec4b 63 /** Callback function, invoked (if registered) when an at command response packet is received */
vpcola 0:a1734fe1ec4b 64 node_discovery_zb_cb_t node_discovery_cb;
vpcola 0:a1734fe1ec4b 65
vpcola 0:a1734fe1ec4b 66 public:
vpcola 0:a1734fe1ec4b 67
vpcola 0:a1734fe1ec4b 68 /** Class constructor */
vpcola 0:a1734fe1ec4b 69 FH_NodeDiscoveryZB();
vpcola 0:a1734fe1ec4b 70
vpcola 0:a1734fe1ec4b 71 /** Class destructor */
vpcola 0:a1734fe1ec4b 72 virtual ~FH_NodeDiscoveryZB();
vpcola 0:a1734fe1ec4b 73
vpcola 0:a1734fe1ec4b 74 virtual void process_frame_data(const ApiFrame *const frame);
vpcola 0:a1734fe1ec4b 75
vpcola 0:a1734fe1ec4b 76 virtual void register_node_discovery_cb(node_discovery_zb_cb_t function);
vpcola 0:a1734fe1ec4b 77
vpcola 0:a1734fe1ec4b 78 virtual void unregister_node_discovery_cb();
vpcola 0:a1734fe1ec4b 79 };
vpcola 0:a1734fe1ec4b 80
vpcola 0:a1734fe1ec4b 81 /**
vpcola 0:a1734fe1ec4b 82 * @defgroup callback_types "Callback types declaration"
vpcola 0:a1734fe1ec4b 83 * @{
vpcola 0:a1734fe1ec4b 84 */
vpcola 0:a1734fe1ec4b 85 /** Node Discovery Response callback type declaration for ZigBee
vpcola 0:a1734fe1ec4b 86 * @param remote discovered remote node.
vpcola 0:a1734fe1ec4b 87 * @param node_id Node Identifier (NI parameter) of remote.
vpcola 0:a1734fe1ec4b 88 */
vpcola 0:a1734fe1ec4b 89 typedef void (*node_discovery_dm_cb_t)(const RemoteXBeeDM& remote, char const * const node_id);
vpcola 0:a1734fe1ec4b 90 /**
vpcola 0:a1734fe1ec4b 91 * @}
vpcola 0:a1734fe1ec4b 92 */
vpcola 0:a1734fe1ec4b 93
vpcola 0:a1734fe1ec4b 94 class FH_NodeDiscoveryDM : public FH_AtCmdResp
vpcola 0:a1734fe1ec4b 95 {
vpcola 0:a1734fe1ec4b 96 private:
vpcola 0:a1734fe1ec4b 97 /** Callback function, invoked (if registered) when an at command response packet is received */
vpcola 0:a1734fe1ec4b 98 node_discovery_dm_cb_t node_discovery_cb;
vpcola 0:a1734fe1ec4b 99
vpcola 0:a1734fe1ec4b 100 public:
vpcola 0:a1734fe1ec4b 101
vpcola 0:a1734fe1ec4b 102 /** Class constructor */
vpcola 0:a1734fe1ec4b 103 FH_NodeDiscoveryDM();
vpcola 0:a1734fe1ec4b 104
vpcola 0:a1734fe1ec4b 105 /** Class destructor */
vpcola 0:a1734fe1ec4b 106 virtual ~FH_NodeDiscoveryDM();
vpcola 0:a1734fe1ec4b 107
vpcola 0:a1734fe1ec4b 108 virtual void process_frame_data(const ApiFrame *const frame);
vpcola 0:a1734fe1ec4b 109
vpcola 0:a1734fe1ec4b 110 virtual void register_node_discovery_cb(node_discovery_dm_cb_t function);
vpcola 0:a1734fe1ec4b 111
vpcola 0:a1734fe1ec4b 112 virtual void unregister_node_discovery_cb();
vpcola 0:a1734fe1ec4b 113 };
vpcola 0:a1734fe1ec4b 114
vpcola 0:a1734fe1ec4b 115 /**
vpcola 0:a1734fe1ec4b 116 * @defgroup callback_types "Callback types declaration"
vpcola 0:a1734fe1ec4b 117 * @{
vpcola 0:a1734fe1ec4b 118 */
vpcola 0:a1734fe1ec4b 119 /** Node Discovery Response callback type declaration for 802.15.4
vpcola 0:a1734fe1ec4b 120 * @param remote discovered remote node.
vpcola 0:a1734fe1ec4b 121 * @param node_id Node Identifier (NI parameter) of remote.
vpcola 0:a1734fe1ec4b 122 */
vpcola 0:a1734fe1ec4b 123 typedef void (*node_discovery_802_cb_t)(const RemoteXBee802& remote, char const * const node_id);
vpcola 0:a1734fe1ec4b 124 /**
vpcola 0:a1734fe1ec4b 125 * @}
vpcola 0:a1734fe1ec4b 126 */
vpcola 0:a1734fe1ec4b 127
vpcola 0:a1734fe1ec4b 128 class FH_NodeDiscovery802 : public FH_AtCmdResp
vpcola 0:a1734fe1ec4b 129 {
vpcola 0:a1734fe1ec4b 130 private:
vpcola 0:a1734fe1ec4b 131 /** Callback function, invoked (if registered) when an at command response packet is received */
vpcola 0:a1734fe1ec4b 132 node_discovery_802_cb_t node_discovery_cb;
vpcola 0:a1734fe1ec4b 133
vpcola 0:a1734fe1ec4b 134 public:
vpcola 0:a1734fe1ec4b 135
vpcola 0:a1734fe1ec4b 136 /** Class constructor */
vpcola 0:a1734fe1ec4b 137 FH_NodeDiscovery802();
vpcola 0:a1734fe1ec4b 138
vpcola 0:a1734fe1ec4b 139 /** Class destructor */
vpcola 0:a1734fe1ec4b 140 virtual ~FH_NodeDiscovery802();
vpcola 0:a1734fe1ec4b 141
vpcola 0:a1734fe1ec4b 142 virtual void process_frame_data(const ApiFrame *const frame);
vpcola 0:a1734fe1ec4b 143
vpcola 0:a1734fe1ec4b 144 virtual void register_node_discovery_cb(node_discovery_802_cb_t function);
vpcola 0:a1734fe1ec4b 145
vpcola 0:a1734fe1ec4b 146 virtual void unregister_node_discovery_cb();
vpcola 0:a1734fe1ec4b 147 };
vpcola 0:a1734fe1ec4b 148
vpcola 0:a1734fe1ec4b 149 } /* namespace XBeeLib */
vpcola 0:a1734fe1ec4b 150
vpcola 0:a1734fe1ec4b 151 #endif /* __FH_AT_CMD_RESP_H_ */