Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
mbed-mqtt-master/paho_mqtt-sn_embedded_c/MQTTSNGateway/src/MQTTSNGWPacket.h@0:ba7e439238ab, 2022-06-20 (annotated)
- Committer:
- pavleradojkovic
- Date:
- Mon Jun 20 16:24:43 2022 +0000
- Revision:
- 0:ba7e439238ab
Inital commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pavleradojkovic | 0:ba7e439238ab | 1 | /************************************************************************************** |
pavleradojkovic | 0:ba7e439238ab | 2 | * Copyright (c) 2016, Tomoaki Yamaguchi |
pavleradojkovic | 0:ba7e439238ab | 3 | * |
pavleradojkovic | 0:ba7e439238ab | 4 | * All rights reserved. This program and the accompanying materials |
pavleradojkovic | 0:ba7e439238ab | 5 | * are made available under the terms of the Eclipse Public License v1.0 |
pavleradojkovic | 0:ba7e439238ab | 6 | * and Eclipse Distribution License v1.0 which accompany this distribution. |
pavleradojkovic | 0:ba7e439238ab | 7 | * |
pavleradojkovic | 0:ba7e439238ab | 8 | * The Eclipse Public License is available at |
pavleradojkovic | 0:ba7e439238ab | 9 | * http://www.eclipse.org/legal/epl-v10.html |
pavleradojkovic | 0:ba7e439238ab | 10 | * and the Eclipse Distribution License is available at |
pavleradojkovic | 0:ba7e439238ab | 11 | * http://www.eclipse.org/org/documents/edl-v10.php. |
pavleradojkovic | 0:ba7e439238ab | 12 | * |
pavleradojkovic | 0:ba7e439238ab | 13 | * Contributors: |
pavleradojkovic | 0:ba7e439238ab | 14 | * Tomoaki Yamaguchi - initial API and implementation and/or initial documentation |
pavleradojkovic | 0:ba7e439238ab | 15 | **************************************************************************************/ |
pavleradojkovic | 0:ba7e439238ab | 16 | #ifndef MQTTSNGWPACKET_H_ |
pavleradojkovic | 0:ba7e439238ab | 17 | #define MQTTSNGWPACKET_H_ |
pavleradojkovic | 0:ba7e439238ab | 18 | |
pavleradojkovic | 0:ba7e439238ab | 19 | #include "MQTTSNGWDefines.h" |
pavleradojkovic | 0:ba7e439238ab | 20 | #include "MQTTSNPacket.h" |
pavleradojkovic | 0:ba7e439238ab | 21 | #include "SensorNetwork.h" |
pavleradojkovic | 0:ba7e439238ab | 22 | |
pavleradojkovic | 0:ba7e439238ab | 23 | namespace MQTTSNGW |
pavleradojkovic | 0:ba7e439238ab | 24 | { |
pavleradojkovic | 0:ba7e439238ab | 25 | |
pavleradojkovic | 0:ba7e439238ab | 26 | class MQTTSNPacket |
pavleradojkovic | 0:ba7e439238ab | 27 | { |
pavleradojkovic | 0:ba7e439238ab | 28 | public: |
pavleradojkovic | 0:ba7e439238ab | 29 | MQTTSNPacket(void); |
pavleradojkovic | 0:ba7e439238ab | 30 | MQTTSNPacket(MQTTSNPacket &packet); |
pavleradojkovic | 0:ba7e439238ab | 31 | ~MQTTSNPacket(void); |
pavleradojkovic | 0:ba7e439238ab | 32 | int unicast(SensorNetwork* network, SensorNetAddress* sendTo); |
pavleradojkovic | 0:ba7e439238ab | 33 | int broadcast(SensorNetwork* network); |
pavleradojkovic | 0:ba7e439238ab | 34 | int recv(SensorNetwork* network); |
pavleradojkovic | 0:ba7e439238ab | 35 | int serialize(uint8_t* buf); |
pavleradojkovic | 0:ba7e439238ab | 36 | int desirialize(unsigned char* buf, unsigned short len); |
pavleradojkovic | 0:ba7e439238ab | 37 | int getType(void); |
pavleradojkovic | 0:ba7e439238ab | 38 | unsigned char* getPacketData(void); |
pavleradojkovic | 0:ba7e439238ab | 39 | int getPacketLength(void); |
pavleradojkovic | 0:ba7e439238ab | 40 | const char* getName(); |
pavleradojkovic | 0:ba7e439238ab | 41 | |
pavleradojkovic | 0:ba7e439238ab | 42 | int setConnect(void); // Debug |
pavleradojkovic | 0:ba7e439238ab | 43 | int setADVERTISE(uint8_t gatewayid, uint16_t duration); |
pavleradojkovic | 0:ba7e439238ab | 44 | int setGWINFO(uint8_t gatewayId); |
pavleradojkovic | 0:ba7e439238ab | 45 | int setCONNACK(uint8_t returnCode); |
pavleradojkovic | 0:ba7e439238ab | 46 | int setWILLTOPICREQ(void); |
pavleradojkovic | 0:ba7e439238ab | 47 | int setWILLMSGREQ(void); |
pavleradojkovic | 0:ba7e439238ab | 48 | int setREGISTER(uint16_t topicId, uint16_t msgId, MQTTSNString* TopicName); |
pavleradojkovic | 0:ba7e439238ab | 49 | int setREGACK(uint16_t topicId, uint16_t msgId, uint8_t returnCode); |
pavleradojkovic | 0:ba7e439238ab | 50 | int setPUBLISH(uint8_t dup, int qos, uint8_t retained, uint16_t msgId, |
pavleradojkovic | 0:ba7e439238ab | 51 | MQTTSN_topicid topic, uint8_t* payload, uint16_t payloadlen); |
pavleradojkovic | 0:ba7e439238ab | 52 | int setPUBACK(uint16_t topicId, uint16_t msgId, uint8_t returnCode); |
pavleradojkovic | 0:ba7e439238ab | 53 | int setPUBREC(uint16_t msgId); |
pavleradojkovic | 0:ba7e439238ab | 54 | int setPUBREL(uint16_t msgId); |
pavleradojkovic | 0:ba7e439238ab | 55 | int setPUBCOMP(uint16_t msgId); |
pavleradojkovic | 0:ba7e439238ab | 56 | int setSUBACK(int qos, uint16_t topicId, uint16_t msgId, uint8_t returnCode); |
pavleradojkovic | 0:ba7e439238ab | 57 | int setUNSUBACK(uint16_t msgId); |
pavleradojkovic | 0:ba7e439238ab | 58 | int setPINGRESP(void); |
pavleradojkovic | 0:ba7e439238ab | 59 | int setDISCONNECT(uint16_t duration); |
pavleradojkovic | 0:ba7e439238ab | 60 | int setWILLTOPICRESP(uint8_t returnCode); |
pavleradojkovic | 0:ba7e439238ab | 61 | int setWILLMSGRESP(uint8_t returnCode); |
pavleradojkovic | 0:ba7e439238ab | 62 | |
pavleradojkovic | 0:ba7e439238ab | 63 | int setCONNECT(MQTTSNPacket_connectData* options); |
pavleradojkovic | 0:ba7e439238ab | 64 | int setPINGREQ(MQTTSNString* clientId); |
pavleradojkovic | 0:ba7e439238ab | 65 | |
pavleradojkovic | 0:ba7e439238ab | 66 | int getSERCHGW(uint8_t* radius); |
pavleradojkovic | 0:ba7e439238ab | 67 | int getCONNECT(MQTTSNPacket_connectData* option); |
pavleradojkovic | 0:ba7e439238ab | 68 | int getCONNACK(uint8_t* returnCode); |
pavleradojkovic | 0:ba7e439238ab | 69 | int getWILLTOPIC(int* willQoS, uint8_t* willRetain, MQTTSNString* willTopic); |
pavleradojkovic | 0:ba7e439238ab | 70 | int getWILLMSG(MQTTSNString* willmsg); |
pavleradojkovic | 0:ba7e439238ab | 71 | int getREGISTER(uint16_t* topicId, uint16_t* msgId, MQTTSNString* topicName); |
pavleradojkovic | 0:ba7e439238ab | 72 | int getREGACK(uint16_t* topicId, uint16_t* msgId, uint8_t* returnCode); |
pavleradojkovic | 0:ba7e439238ab | 73 | int getPUBLISH(uint8_t* dup, int* qos, uint8_t* retained, uint16_t* msgId, |
pavleradojkovic | 0:ba7e439238ab | 74 | MQTTSN_topicid* topic, unsigned char** payload, int* payloadlen); |
pavleradojkovic | 0:ba7e439238ab | 75 | int getPUBACK(uint16_t* topicId, uint16_t* msgId, uint8_t* returnCode); |
pavleradojkovic | 0:ba7e439238ab | 76 | int getACK(uint16_t* msgId); |
pavleradojkovic | 0:ba7e439238ab | 77 | int getSUBSCRIBE(uint8_t* dup, int* qos, uint16_t* msgId, MQTTSN_topicid* topicFilter); |
pavleradojkovic | 0:ba7e439238ab | 78 | int getUNSUBSCRIBE(uint16_t* msgId, MQTTSN_topicid* topicFilter); |
pavleradojkovic | 0:ba7e439238ab | 79 | int getPINGREQ(void); |
pavleradojkovic | 0:ba7e439238ab | 80 | int getDISCONNECT(uint16_t* duration); |
pavleradojkovic | 0:ba7e439238ab | 81 | int getWILLTOPICUPD(uint8_t* willQoS, uint8_t* willRetain, MQTTSNString* willTopic); |
pavleradojkovic | 0:ba7e439238ab | 82 | int getWILLMSGUPD(MQTTSNString* willMsg); |
pavleradojkovic | 0:ba7e439238ab | 83 | |
pavleradojkovic | 0:ba7e439238ab | 84 | bool isAccepted(void); |
pavleradojkovic | 0:ba7e439238ab | 85 | bool isDuplicate(void); |
pavleradojkovic | 0:ba7e439238ab | 86 | bool isQoSMinusPUBLISH(void); |
pavleradojkovic | 0:ba7e439238ab | 87 | char* getMsgId(char* buf); |
pavleradojkovic | 0:ba7e439238ab | 88 | int getMsgId(void); |
pavleradojkovic | 0:ba7e439238ab | 89 | void setMsgId(uint16_t msgId); |
pavleradojkovic | 0:ba7e439238ab | 90 | char* print(char* buf); |
pavleradojkovic | 0:ba7e439238ab | 91 | |
pavleradojkovic | 0:ba7e439238ab | 92 | private: |
pavleradojkovic | 0:ba7e439238ab | 93 | unsigned char* _buf; // Ptr to a packet data |
pavleradojkovic | 0:ba7e439238ab | 94 | int _bufLen; // length of the packet data |
pavleradojkovic | 0:ba7e439238ab | 95 | }; |
pavleradojkovic | 0:ba7e439238ab | 96 | |
pavleradojkovic | 0:ba7e439238ab | 97 | } |
pavleradojkovic | 0:ba7e439238ab | 98 | #endif /* MQTTSNGWPACKET_H_ */ |