Fork of my MQTTGateway

Dependencies:   mbed-http

Committer:
vpcola
Date:
Sat Apr 08 14:45:51 2017 +0000
Revision:
0:f1d3878b8dd9
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vpcola 0:f1d3878b8dd9 1 /**
vpcola 0:f1d3878b8dd9 2 * Copyright (c) 2015 Digi International Inc.,
vpcola 0:f1d3878b8dd9 3 * All rights not expressly granted are reserved.
vpcola 0:f1d3878b8dd9 4 *
vpcola 0:f1d3878b8dd9 5 * This Source Code Form is subject to the terms of the Mozilla Public
vpcola 0:f1d3878b8dd9 6 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
vpcola 0:f1d3878b8dd9 7 * You can obtain one at http://mozilla.org/MPL/2.0/.
vpcola 0:f1d3878b8dd9 8 *
vpcola 0:f1d3878b8dd9 9 * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
vpcola 0:f1d3878b8dd9 10 * =======================================================================
vpcola 0:f1d3878b8dd9 11 */
vpcola 0:f1d3878b8dd9 12
vpcola 0:f1d3878b8dd9 13 #if !defined(__FH_RX_PACKET_802_H_)
vpcola 0:f1d3878b8dd9 14 #define __FH_RX_PACKET_802_H_
vpcola 0:f1d3878b8dd9 15
vpcola 0:f1d3878b8dd9 16 #include "FrameHandler.h"
vpcola 0:f1d3878b8dd9 17 #include "RemoteXBee/RemoteXBee.h"
vpcola 0:f1d3878b8dd9 18
vpcola 0:f1d3878b8dd9 19 namespace XBeeLib {
vpcola 0:f1d3878b8dd9 20
vpcola 0:f1d3878b8dd9 21 /**
vpcola 0:f1d3878b8dd9 22 * @defgroup callback_types "Callback types declaration"
vpcola 0:f1d3878b8dd9 23 * @{
vpcola 0:f1d3878b8dd9 24 */
vpcola 0:f1d3878b8dd9 25 /** receive callback type declaration
vpcola 0:f1d3878b8dd9 26 * @param remote the remote module that sent the data
vpcola 0:f1d3878b8dd9 27 * @param broadcast a boolean to tell if the message was broadcast (true) or unicast (false)
vpcola 0:f1d3878b8dd9 28 * @param data a pointer to data sent by @b remote.
vpcola 0:f1d3878b8dd9 29 * @param len length (in bytes) of @b data buffer
vpcola 0:f1d3878b8dd9 30 */
vpcola 0:f1d3878b8dd9 31 typedef void (*receive_802_cb_t)(const RemoteXBee802& remote, bool broadcast, const uint8_t *const data, uint16_t len);
vpcola 0:f1d3878b8dd9 32 /**
vpcola 0:f1d3878b8dd9 33 * @}
vpcola 0:f1d3878b8dd9 34 */
vpcola 0:f1d3878b8dd9 35
vpcola 0:f1d3878b8dd9 36 class FH_RxPacket64b802 : public FrameHandler
vpcola 0:f1d3878b8dd9 37 {
vpcola 0:f1d3878b8dd9 38 private:
vpcola 0:f1d3878b8dd9 39 /** Callback function, invoked if registered */
vpcola 0:f1d3878b8dd9 40 receive_802_cb_t receive_cb;
vpcola 0:f1d3878b8dd9 41
vpcola 0:f1d3878b8dd9 42 public:
vpcola 0:f1d3878b8dd9 43 /** Class constructor */
vpcola 0:f1d3878b8dd9 44 FH_RxPacket64b802();
vpcola 0:f1d3878b8dd9 45
vpcola 0:f1d3878b8dd9 46 /** Class destructor */
vpcola 0:f1d3878b8dd9 47 virtual ~FH_RxPacket64b802();
vpcola 0:f1d3878b8dd9 48
vpcola 0:f1d3878b8dd9 49 virtual void process_frame_data(const ApiFrame* const frame);
vpcola 0:f1d3878b8dd9 50
vpcola 0:f1d3878b8dd9 51 virtual void register_receive_cb(receive_802_cb_t function);
vpcola 0:f1d3878b8dd9 52
vpcola 0:f1d3878b8dd9 53 virtual void unregister_receive_cb();
vpcola 0:f1d3878b8dd9 54 };
vpcola 0:f1d3878b8dd9 55
vpcola 0:f1d3878b8dd9 56 class FH_RxPacket16b802 : public FrameHandler
vpcola 0:f1d3878b8dd9 57 {
vpcola 0:f1d3878b8dd9 58 private:
vpcola 0:f1d3878b8dd9 59 /** Callback function, invoked if registered */
vpcola 0:f1d3878b8dd9 60 receive_802_cb_t receive_cb;
vpcola 0:f1d3878b8dd9 61
vpcola 0:f1d3878b8dd9 62 public:
vpcola 0:f1d3878b8dd9 63 /** Class constructor */
vpcola 0:f1d3878b8dd9 64 FH_RxPacket16b802();
vpcola 0:f1d3878b8dd9 65
vpcola 0:f1d3878b8dd9 66 /** Class destructor */
vpcola 0:f1d3878b8dd9 67 virtual ~FH_RxPacket16b802();
vpcola 0:f1d3878b8dd9 68
vpcola 0:f1d3878b8dd9 69 virtual void process_frame_data(const ApiFrame *const frame);
vpcola 0:f1d3878b8dd9 70
vpcola 0:f1d3878b8dd9 71 virtual void register_receive_cb(receive_802_cb_t function);
vpcola 0:f1d3878b8dd9 72
vpcola 0:f1d3878b8dd9 73 virtual void unregister_receive_cb();
vpcola 0:f1d3878b8dd9 74 };
vpcola 0:f1d3878b8dd9 75
vpcola 0:f1d3878b8dd9 76 } /* namespace XBeeLib */
vpcola 0:f1d3878b8dd9 77
vpcola 0:f1d3878b8dd9 78 #endif /* __FH_RX_PACKET_802_H_ */