RF69 - Added methods to set node and broadcast addresses

This commit is contained in:
Jan Gromeš 2018-07-14 08:55:26 +02:00
parent 9ea57154be
commit 3fba66e9cf
2 changed files with 13 additions and 13 deletions

View file

@ -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);

View file

@ -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;