From 3fba66e9cf888259a1da8c57832c581af026cea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Grome=C5=A1?= Date: Sat, 14 Jul 2018 08:55:26 +0200 Subject: [PATCH] RF69 - Added methods to set node and broadcast addresses --- src/modules/RF69.cpp | 24 +++++++++++------------- src/modules/RF69.h | 2 ++ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/modules/RF69.cpp b/src/modules/RF69.cpp index ab053510..cd498017 100644 --- a/src/modules/RF69.cpp +++ b/src/modules/RF69.cpp @@ -410,6 +410,17 @@ uint8_t RF69::setNodeAddress(uint8_t nodeAddr) { return(_mod->SPIsetRegValue(RF69_REG_NODE_ADRS, nodeAddr)); } +uint8_t RF69::setBroadcastAddress(uint8_t broadAddr) { + // enable address filtering (node + broadcast) + uint8_t state = _mod->SPIsetRegValue(RF69_REG_PACKET_CONFIG_1, RF69_ADDRESS_FILTERING_NODE_BROADCAST, 2, 1); + if(state != ERR_NONE) { + return(state); + } + + // set broadcast address + return(_mod->SPIsetRegValue(RF69_REG_BROADCAST_ADRS, broadAddr)); +} + uint8_t RF69::config() { uint8_t state = ERR_NONE; @@ -456,19 +467,6 @@ uint8_t RF69::config() { return(state); } - // set synchronization - state = _mod->SPIsetRegValue(RF69_REG_SYNC_CONFIG, RF69_SYNC_ON | RF69_FIFO_FILL_CONDITION_SYNC | RF69_SYNC_SIZE | RF69_SYNC_TOL, 7, 0); - if(state != ERR_NONE) { - return(state); - } - - // set sync word - state = _mod->SPIsetRegValue(RF69_REG_SYNC_VALUE_1, 0x2D, 7, 0); - state |= _mod->SPIsetRegValue(RF69_REG_SYNC_VALUE_2, 100, 7, 0); - if(state != ERR_NONE) { - return(state); - } - // set packet configuration and disable encryption state = _mod->SPIsetRegValue(RF69_REG_PACKET_CONFIG_1, RF69_PACKET_FORMAT_VARIABLE | RF69_DC_FREE_NONE | RF69_CRC_ON | RF69_CRC_AUTOCLEAR_ON | RF69_ADDRESS_FILTERING_OFF, 7, 1); state |= _mod->SPIsetRegValue(RF69_REG_PACKET_CONFIG_2, RF69_INTER_PACKET_RX_DELAY, 7, 4); diff --git a/src/modules/RF69.h b/src/modules/RF69.h index 1e380277..aa611af6 100644 --- a/src/modules/RF69.h +++ b/src/modules/RF69.h @@ -435,6 +435,8 @@ class RF69 { uint8_t setFrequencyDeviation(float freqDev); uint8_t setOutputPower(int8_t power); uint8_t setSyncWord(uint8_t* syncWord, size_t len, uint8_t maxErrBits = 0); + uint8_t setNodeAddress(uint8_t nodeAddr); + uint8_t setBroadcastAddress(uint8_t broadAddr); protected: Module* _mod;