Some code clean, and buffer overflow prevention (2) (#126)
* Remove trailing whitespaces
* RFM69toMQTT: Add the emitting nodeID to the topic, +
- And remove radio.receiveDone() that is unecessary.
- Send the ACK before the publish to MQTT, to be faster
- Prevent buffer overflow, Terminate the data with a "\0"
- Fix issue with the sender doesn't end its string with "\0"
and rely only on DATALEN.
* Change topic subjectGTWRFM69toMQTT to be distinct from the commands
+ comments
* MQTTtoRFM69: deduplicate the code
- Check once and only once if the topic is good.
- Have or not RCV_ marked doesn't change the structure, as
valueRCV is correctly set anyway
+ realign
* MQTTtoRFM69: Limit the size of the data
- Cut the packet to the limit of what can transmit RFM69
- and terminate the string
* RFM69toMQTT: ACK MQTT message on subjectGTWRFM69toMQTT now contains the nodeID
* RFM69: Publish to MQTT the RSSI on transmit and ACK
This commit is contained in:
1 parent
d9e2e1d482
commit
254e616f31
2 files changed
+83
-65
No files matched your search
+17
-13
@@ -1,15 +1,15 @@
|
||||
/*
|
||||
OpenMQTTGateway - ESP8266 or Arduino program for home automation
|
||||
/*
|
||||
OpenMQTTGateway - ESP8266 or Arduino program for home automation
|
||||
|
||||
Act as a wifi or ethernet gateway between your 433mhz/infrared IR signal and a MQTT broker
|
||||
Act as a wifi or ethernet gateway between your 433mhz/infrared IR signal and a MQTT broker
|
||||
Send and receiving command by MQTT
|
||||
|
||||
|
||||
This files enables to set your parameter for the radiofrequency gateways (ZgatewayRF and ZgatewayRF2) with RCswitch and newremoteswitch library
|
||||
|
||||
|
||||
Copyright: (c)Florian ROBERT
|
||||
|
||||
|
||||
This file is part of OpenMQTTGateway.
|
||||
|
||||
|
||||
OpenMQTTGateway is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
@@ -25,12 +25,18 @@
|
||||
*/
|
||||
|
||||
/*----------------------RFM69 topics & parameters -------------------------*/
|
||||
// Topic where the message from RFM69 will be published by the gateway,
|
||||
// appended with the nodeID of the sender
|
||||
#define subjectRFM69toMQTT "home/RFM69toMQTT"
|
||||
#define subjectRFM69toMQTTrssi "home/RFM69toMQTT/rssi"
|
||||
// Upon reception of a packed, the RSSI of that packet will be publish to this topic,
|
||||
// appended with the nodeID of the sender
|
||||
#define subjectRFM69toMQTTrssi "home/RFM69toMQTT/rssi" // Comment this if you don't want the RSSI to be published.
|
||||
#define subjectRFM69toMQTTsender "home/RFM69toMQTT/sender"
|
||||
// Topic subscribed by the gateway. Messages received will be sent to RFM69
|
||||
#define subjectMQTTtoRFM69 "home/commands/MQTTtoRFM69"
|
||||
#define RFM69receiverKey "RCV_" // receiver id will be defined if a subject contains RFM69receiverKey followed by a value of 3 digits
|
||||
#define subjectGTWRFM69toMQTT "home/RFM69toMQTT"
|
||||
// On reception of an ack from RFM69, the message that has been sent is published here
|
||||
#define subjectGTWRFM69toMQTT "home/RFM69toMQTT/acked"
|
||||
#define defaultRFM69ReceiverId 99
|
||||
|
||||
// Default values
|
||||
@@ -48,9 +54,9 @@ const char PROGMEM RFM69AP_NAME[] = "RFM69-AP";
|
||||
#define IS_RFM69HCW true // set to 'true' if you are using an RFM69HCW module
|
||||
#define POWER_LEVEL 31
|
||||
|
||||
/*-------------------PIN DEFINITIONS----------------------*/
|
||||
/*-------------------PIN DEFINITIONS----------------------*/
|
||||
#ifdef ESP8266
|
||||
#define RFM69_CS D1
|
||||
#define RFM69_CS D1
|
||||
#define RFM69_IRQ D8 // GPIO15/D8
|
||||
#define RFM69_IRQN digitalPinToInterrupt(RFM69_IRQ)
|
||||
#define RFM69_RST D4 // GPIO02/D4
|
||||
@@ -61,5 +67,3 @@ const char PROGMEM RFM69AP_NAME[] = "RFM69-AP";
|
||||
#define RFM69_IRQN digitalPinToInterrupt(RFM69_IRQ)
|
||||
#define RFM69_RST 9
|
||||
#endif
|
||||
|
||||
|
||||
Reference in new issue
Block a user