Skip to content
This repository has been archived by the owner on Feb 21, 2025. It is now read-only.

Commit

Permalink
First import
Browse files Browse the repository at this point in the history
  • Loading branch information
manchoz committed Dec 1, 2017
1 parent 227cd25 commit 6143afb
Show file tree
Hide file tree
Showing 8 changed files with 1,077 additions and 0 deletions.
68 changes: 68 additions & 0 deletions examples/MQTT-Publisher.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#include <Arduino.h>
#include <mqttsn-messages.h>

#define TOPIC "test"

MQTTSN mqttsn;

uint16_t u16TopicID;

void setup() {
Serial.begin(115200);
Serial1.begin(9600);
}

void loop() {
uint8_t index;

CheckSerial();
delay(2000);

if (mqttsn.wait_for_response()) {
return;
}

if (!mqttsn.connected()) {
mqttsn.connect(0, 10, "arduino");
return;
}

u16TopicID = mqttsn.find_topic_id(TOPIC, &index);
if (u16TopicID == 0xffff) {
mqttsn.register_topic(TOPIC);
return;
}

char str[50] = "Hello World!";
mqttsn.publish(0, u16TopicID, str, strlen(str));
}

void MQTTSN_serial_send(uint8_t *message_buffer, int length) {
Serial1.write(message_buffer, length);
Serial1.flush();
}

void MQTTSN_publish_handler(const msg_publish *msg) {

}

void MQTTSN_gwinfo_handler(const msg_gwinfo *msg) {
}

void CheckSerial() {
uint16_t cnt = 0;
uint8_t buffer[512];
uint8_t *buf = &buffer[0];

while (Serial1.available()) {
buffer[cnt++] = Serial1.read();
}

if (cnt > 0) {
for (int i = 0; i < cnt ; i++) {
Serial.print("0x"); Serial.print(buffer[i], HEX); Serial.print(" ");
}
Serial.println("");
mqttsn.parse_stream(buf, cnt);
}
}
71 changes: 71 additions & 0 deletions examples/MQTT-Subscriber.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/*
(c) Diego Fernández <[email protected]>
Originally published on https://github.com/ESIBot/MQTT-SN-Arduino
*/

#include <Arduino.h>
#include <mqttsn-messages.h>

#define TOPIC "test"

MQTTSN mqttsn;

uint16_t u16TopicID;

void setup() {
Serial.begin(115200);
Serial1.begin(9600);
}

void loop() {
uint8_t index;

CheckSerial();
delay(2000);

if (mqttsn.wait_for_response()) {
return;
}

if (!mqttsn.connected()) {
mqttsn.connect(0, 10, "arduino");
return;
}

u16TopicID = mqttsn.find_topic_id(TOPIC, &index);
if (u16TopicID == 0xffff) {
mqttsn.register_topic(TOPIC);
mqttsn.subscribe_by_name(0, TOPIC);
return;
}
}

void MQTTSN_serial_send(uint8_t *message_buffer, int length) {
Serial1.write(message_buffer, length);
Serial1.flush();
}

void MQTTSN_publish_handler(const msg_publish *msg) {

}

void MQTTSN_gwinfo_handler(const msg_gwinfo *msg) {
}

void CheckSerial() {
uint16_t cnt = 0;
uint8_t buffer[512];
uint8_t *buf = &buffer[0];

while (Serial1.available()) {
buffer[cnt++] = Serial1.read();
}

if (cnt > 0) {
for (int i = 0; i < cnt ; i++) {
Serial.print("0x"); Serial.print(buffer[i], HEX); Serial.print(" ");
}
Serial.println("");
mqttsn.parse_stream(buf, cnt);
}
}
3 changes: 3 additions & 0 deletions examples/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#define API_DATA_LEN 20
#define API_PAY_LEN (API_DATA_LEN + 5)
#define API_FRAME_LEN (API_DATA_LEN + 9)
31 changes: 31 additions & 0 deletions keywords.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
MQTTSN KEYWORD1

find_topic_id KEYWORD2
wait_for_response KEYWORD2
connected KEYWORD2
parse_stream KEYWORD2
searchgw KEYWORD2
connect KEYWORD2
willtopic KEYWORD2
willmsg KEYWORD2
register_topic KEYWORD2
publish KEYWORD2
subscribe_by_name KEYWORD2
subscribe_by_id KEYWORD2
unsubscribe_by_name KEYWORD2
unsubscribe_by_id KEYWORD2
pingreq KEYWORD2
pingresp KEYWORD2
disconnect KEYWORD2

FLAG_DUP LITERAL1
FLAG_QOS_0 LITERAL1
FLAG_QOS_1 LITERAL1
FLAG_QOS_2 LITERAL1
FLAG_QOS_M1 LITERAL1
FLAG_RETAIN LITERAL1
FLAG_WILL LITERAL1
FLAG_CLEAN LITERAL1
FLAG_TOPIC_NAME LITERAL1
FLAG_TOPIC_PREDEFINED_ID LITERAL1
FLAG_TOPIC_SHORT_NAME LITERAL1
10 changes: 10 additions & 0 deletions library.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name=MQTT-SN for Arduino
version=0.1
author=John Donovan <https://bitbucket.org/MerseyViking/>, Boris <http://dmcinfo.com>, Diego Fernández <[email protected]>, Giampaolo Mancini <[email protected]>
maintainer=Giampaolo Mancini <[email protected]>
sentence=Simple MQTT-SN library for Arduino.
paragraph=An implementation of the MQTT-SN client protocol for AVR-based microcontrollers.
category=Communication
url=https://github.com/kiotlog/mqttsn-arduino
architectures=*
includes=mqttsn-messages.h
Loading

0 comments on commit 6143afb

Please sign in to comment.