Add setSyncBits for SX126x
Add setSyncBits for possibility to set the sync word length in bits
This commit is contained in:
parent
a04a376afc
commit
1046db24e4
2 changed files with 38 additions and 0 deletions
|
@ -721,6 +721,33 @@ int16_t SX126x::setSyncWord(uint8_t* syncWord, uint8_t len) {
|
|||
return(state);
|
||||
}
|
||||
|
||||
int16_t SX126x::setSyncBits(uint8_t *syncWord, uint8_t bitsLen) {
|
||||
// check active modem
|
||||
if(getPacketType() != SX126X_PACKET_TYPE_GFSK) {
|
||||
return(ERR_WRONG_MODEM);
|
||||
}
|
||||
|
||||
// check sync word Length
|
||||
if(bitsLen > 0x40) {
|
||||
return(ERR_INVALID_SYNC_WORD);
|
||||
}
|
||||
|
||||
uint8_t bytesLen = bitsLen / 8;
|
||||
if ((bitsLen % 8) != 0) bytesLen++;
|
||||
|
||||
// write sync word
|
||||
int16_t state = writeRegister(SX126X_REG_SYNC_WORD_0, syncWord, bytesLen);
|
||||
if(state != ERR_NONE) {
|
||||
return(state);
|
||||
}
|
||||
|
||||
// update packet parameters
|
||||
_syncWordLength = bitsLen;
|
||||
state = setPacketParamsFSK(_preambleLengthFSK, _crcTypeFSK, _syncWordLength, _addrComp);
|
||||
|
||||
return(state);
|
||||
}
|
||||
|
||||
int16_t SX126x::setNodeAddress(uint8_t nodeAddr) {
|
||||
// check active modem
|
||||
if(getPacketType() != SX126X_PACKET_TYPE_GFSK) {
|
||||
|
|
|
@ -604,6 +604,17 @@ class SX126x: public PhysicalLayer {
|
|||
*/
|
||||
int16_t setSyncWord(uint8_t* syncWord, uint8_t len);
|
||||
|
||||
/*!
|
||||
\brief Sets FSK sync word in the form of array of up to 8 bytes.
|
||||
|
||||
\param syncWord FSK sync word to be set.
|
||||
|
||||
\param len FSK sync word length in bits.
|
||||
|
||||
\returns \ref status_codes
|
||||
*/
|
||||
int16_t setSyncBits(uint8_t *sync, uint8_t bitsLen);
|
||||
|
||||
/*!
|
||||
\brief Sets node address. Calling this method will also enable address filtering for node address only.
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue