kopia lustrzana https://github.com/jgromes/RadioLib
				
				
				
			[SX128x] Added missing RF switch control
							rodzic
							
								
									5f4481aef6
								
							
						
					
					
						commit
						75197d78a0
					
				|  | @ -340,6 +340,9 @@ int16_t SX128x::receive(uint8_t* data, size_t len) { | |||
| } | ||||
| 
 | ||||
| int16_t SX128x::transmitDirect(uint32_t frf) { | ||||
|   // set RF switch (if present)
 | ||||
|   _mod->setRfSwitchState(LOW, HIGH); | ||||
| 
 | ||||
|   // user requested to start transmitting immediately (required for RTTY)
 | ||||
|   int16_t state = ERR_NONE; | ||||
|   if(frf != 0) { | ||||
|  | @ -352,6 +355,9 @@ int16_t SX128x::transmitDirect(uint32_t frf) { | |||
| } | ||||
| 
 | ||||
| int16_t SX128x::receiveDirect() { | ||||
|   // set RF switch (if present)
 | ||||
|   _mod->setRfSwitchState(HIGH, LOW); | ||||
| 
 | ||||
|   // SX128x is unable to output received data directly
 | ||||
|   return(ERR_UNKNOWN); | ||||
| } | ||||
|  | @ -374,6 +380,9 @@ int16_t SX128x::scanChannel() { | |||
|   state = clearIrqStatus(); | ||||
|   RADIOLIB_ASSERT(state); | ||||
| 
 | ||||
|   // set RF switch (if present)
 | ||||
|   _mod->setRfSwitchState(HIGH, LOW); | ||||
| 
 | ||||
|   // set mode to CAD
 | ||||
|   state = setCad(); | ||||
|   RADIOLIB_ASSERT(state); | ||||
|  | @ -399,6 +408,9 @@ int16_t SX128x::scanChannel() { | |||
| } | ||||
| 
 | ||||
| int16_t SX128x::sleep(bool retainConfig) { | ||||
|   // set RF switch (if present)
 | ||||
|   _mod->setRfSwitchState(LOW, LOW); | ||||
| 
 | ||||
|   uint8_t sleepConfig = SX128X_SLEEP_DATA_BUFFER_RETAIN | SX128X_SLEEP_DATA_RAM_RETAIN; | ||||
|   if(!retainConfig) { | ||||
|     sleepConfig = SX128X_SLEEP_DATA_BUFFER_FLUSH | SX128X_SLEEP_DATA_RAM_FLUSH; | ||||
|  | @ -416,6 +428,9 @@ int16_t SX128x::standby() { | |||
| } | ||||
| 
 | ||||
| int16_t SX128x::standby(uint8_t mode) { | ||||
|   // set RF switch (if present)
 | ||||
|   _mod->setRfSwitchState(LOW, LOW); | ||||
| 
 | ||||
|   uint8_t data[] = { mode }; | ||||
|   return(SPIwriteCommand(SX128X_CMD_SET_STANDBY, data, 1)); | ||||
| } | ||||
|  | @ -478,7 +493,7 @@ int16_t SX128x::startTransmit(uint8_t* data, size_t len, uint8_t addr) { | |||
|   RADIOLIB_ASSERT(state); | ||||
| 
 | ||||
|   // set RF switch (if present)
 | ||||
|   _mod->setRfSwitchState(true); | ||||
|   _mod->setRfSwitchState(LOW, HIGH); | ||||
| 
 | ||||
|   // start transmission
 | ||||
|   state = setTx(SX128X_TX_TIMEOUT_NONE); | ||||
|  | @ -517,7 +532,7 @@ int16_t SX128x::startReceive(uint16_t timeout) { | |||
|   } | ||||
| 
 | ||||
|   // set RF switch (if present)
 | ||||
|   _mod->setRfSwitchState(false); | ||||
|   _mod->setRfSwitchState(HIGH, LOW); | ||||
| 
 | ||||
|   // set mode to receive
 | ||||
|   state = setRx(timeout); | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 jgromes
						jgromes