kopia lustrzana https://github.com/jgromes/RadioLib
				
				
				
			[LR11x0] Added direct mode support
							rodzic
							
								
									6fa4aa3ebb
								
							
						
					
					
						commit
						99d2e6c452
					
				| 
						 | 
				
			
			@ -8,6 +8,7 @@
 | 
			
		|||
    - SX127x/RFM9x
 | 
			
		||||
    - SX126x/LLCC68
 | 
			
		||||
    - SX128x
 | 
			
		||||
    - LR11x0
 | 
			
		||||
 | 
			
		||||
   For default module settings, see the wiki page
 | 
			
		||||
   https://github.com/jgromes/RadioLib/wiki/Default-configuration
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,7 @@
 | 
			
		|||
    - SX126x
 | 
			
		||||
    - nRF24
 | 
			
		||||
    - Si443x/RFM2x
 | 
			
		||||
    - LR11x0
 | 
			
		||||
 | 
			
		||||
   Using raw AX.25 frames requires some
 | 
			
		||||
   knowledge of the protocol, refer to
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,7 @@
 | 
			
		|||
    - SX126x
 | 
			
		||||
    - nRF24
 | 
			
		||||
    - Si443x/RFM2x
 | 
			
		||||
    - LR11x0
 | 
			
		||||
 | 
			
		||||
   For default module settings, see the wiki page
 | 
			
		||||
   https://github.com/jgromes/RadioLib/wiki/Default-configuration
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
    - nRF24
 | 
			
		||||
    - Si443x/RFM2x
 | 
			
		||||
    - SX128x
 | 
			
		||||
    - LR11x0
 | 
			
		||||
 | 
			
		||||
   For default module settings, see the wiki page
 | 
			
		||||
   https://github.com/jgromes/RadioLib/wiki/Default-configuration
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -292,6 +292,29 @@ int16_t LR11x0::receive(uint8_t* data, size_t len) {
 | 
			
		|||
  return(readData(data, len));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int16_t LR11x0::transmitDirect(uint32_t frf) {
 | 
			
		||||
  // set RF switch (if present)
 | 
			
		||||
  this->mod->setRfSwitchState(Module::MODE_TX);
 | 
			
		||||
 | 
			
		||||
  // user requested to start transmitting immediately (required for RTTY)
 | 
			
		||||
  int16_t state = RADIOLIB_ERR_NONE;
 | 
			
		||||
  if(frf != 0) {
 | 
			
		||||
    state = setRfFrequency(frf);
 | 
			
		||||
  }
 | 
			
		||||
  RADIOLIB_ASSERT(state);
 | 
			
		||||
 | 
			
		||||
  // start transmitting
 | 
			
		||||
  return(setTxCw());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int16_t LR11x0::receiveDirect() {
 | 
			
		||||
  // set RF switch (if present)
 | 
			
		||||
  this->mod->setRfSwitchState(Module::MODE_RX);
 | 
			
		||||
 | 
			
		||||
  // LR11x0 is unable to output received data directly
 | 
			
		||||
  return(RADIOLIB_ERR_UNKNOWN);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int16_t LR11x0::standby() {
 | 
			
		||||
  return(LR11x0::standby(RADIOLIB_LR11X0_STANDBY_RC));
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -643,7 +666,7 @@ int16_t LR11x0::setFrequencyDeviation(float freqDev) {
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  RADIOLIB_CHECK_RANGE(newFreqDev, 0.6, 200.0, RADIOLIB_ERR_INVALID_FREQUENCY_DEVIATION);
 | 
			
		||||
  this->frequencyDev = freqDev * 1000.0;
 | 
			
		||||
  this->frequencyDev = newFreqDev * 1000.0;
 | 
			
		||||
  return(setModulationParamsGFSK(this->bitRate, this->pulseShape, this->rxBandwidth, this->frequencyDev));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@
 | 
			
		|||
#include "../../protocols/PhysicalLayer/PhysicalLayer.h"
 | 
			
		||||
 | 
			
		||||
// LR11X0 physical layer properties
 | 
			
		||||
#define RADIOLIB_LR11X0_FREQUENCY_STEP_SIZE                     0.9536743164
 | 
			
		||||
#define RADIOLIB_LR11X0_FREQUENCY_STEP_SIZE                     1.0
 | 
			
		||||
#define RADIOLIB_LR11X0_MAX_PACKET_LENGTH                       255
 | 
			
		||||
#define RADIOLIB_LR11X0_CRYSTAL_FREQ                            32.0
 | 
			
		||||
#define RADIOLIB_LR11X0_DIV_EXPONENT                            25
 | 
			
		||||
| 
						 | 
				
			
			@ -606,6 +606,20 @@ class LR11x0: public PhysicalLayer {
 | 
			
		|||
    */
 | 
			
		||||
    int16_t receive(uint8_t* data, size_t len) override;
 | 
			
		||||
 | 
			
		||||
    /*!
 | 
			
		||||
      \brief Starts direct mode transmission.
 | 
			
		||||
      \param frf Raw RF frequency value. Defaults to 0, required for quick frequency shifts in RTTY.
 | 
			
		||||
      \returns \ref status_codes
 | 
			
		||||
    */
 | 
			
		||||
    int16_t transmitDirect(uint32_t frf = 0) override;
 | 
			
		||||
 | 
			
		||||
    /*!
 | 
			
		||||
      \brief Starts direct mode reception. Only implemented for PhysicalLayer compatibility, as %SX126x series does not support direct mode reception.
 | 
			
		||||
      Will always return RADIOLIB_ERR_UNKNOWN.
 | 
			
		||||
      \returns \ref status_codes
 | 
			
		||||
    */
 | 
			
		||||
    int16_t receiveDirect() override;
 | 
			
		||||
 | 
			
		||||
    /*!
 | 
			
		||||
      \brief Sets the module to standby mode (overload for PhysicalLayer compatibility, uses 13 MHz RC oscillator).
 | 
			
		||||
      \returns \ref status_codes
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue