@@ -99,14 +99,37 @@ void SX126xInit( DioIrqHandler dioIrq )
9999#endif
100100
101101 SX126xSetDio2AsRfSwitchCtrl ( true );
102- OperatingMode = MODE_STDBY_RC ;
102+ SX126xSetOperatingMode ( MODE_STDBY_RC ) ;
103103}
104104
105105RadioOperatingModes_t SX126xGetOperatingMode ( void )
106106{
107107 return OperatingMode ;
108108}
109109
110+ void SX126xSetOperatingMode ( RadioOperatingModes_t mode )
111+ {
112+ OperatingMode = mode ;
113+ #if defined( USE_RADIO_DEBUG )
114+ switch ( mode )
115+ {
116+ case MODE_TX :
117+ SX126xDbgPinTxWrite ( 1 );
118+ SX126xDbgPinRxWrite ( 0 );
119+ break ;
120+ case MODE_RX :
121+ case MODE_RX_DC :
122+ SX126xDbgPinTxWrite ( 0 );
123+ SX126xDbgPinRxWrite ( 1 );
124+ break ;
125+ default :
126+ SX126xDbgPinTxWrite ( 0 );
127+ SX126xDbgPinRxWrite ( 0 );
128+ break ;
129+ }
130+ #endif
131+ }
132+
110133void SX126xCheckDeviceReady ( void )
111134{
112135 if ( ( SX126xGetOperatingMode ( ) == MODE_SLEEP ) || ( SX126xGetOperatingMode ( ) == MODE_RX_DC ) )
@@ -223,85 +246,64 @@ void SX126xSetSleep( SleepParams_t sleepConfig )
223246 SX126xAntSwOff ( );
224247
225248 SX126xWriteCommand ( RADIO_SET_SLEEP , & sleepConfig .Value , 1 );
226- OperatingMode = MODE_SLEEP ;
227- #if defined( USE_RADIO_DEBUG )
228- SX126xDbgPinTxWrite ( 0 );
229- SX126xDbgPinRxWrite ( 0 );
230- #endif
249+ SX126xSetOperatingMode ( MODE_SLEEP );
231250}
232251
233252void SX126xSetStandby ( RadioStandbyModes_t standbyConfig )
234253{
235254 SX126xWriteCommand ( RADIO_SET_STANDBY , ( uint8_t * )& standbyConfig , 1 );
236255 if ( standbyConfig == STDBY_RC )
237256 {
238- OperatingMode = MODE_STDBY_RC ;
257+ SX126xSetOperatingMode ( MODE_STDBY_RC ) ;
239258 }
240259 else
241260 {
242- OperatingMode = MODE_STDBY_XOSC ;
261+ SX126xSetOperatingMode ( MODE_STDBY_XOSC ) ;
243262 }
244- #if defined( USE_RADIO_DEBUG )
245- SX126xDbgPinTxWrite ( 0 );
246- SX126xDbgPinRxWrite ( 0 );
247- #endif
248263}
249264
250265void SX126xSetFs ( void )
251266{
252267 SX126xWriteCommand ( RADIO_SET_FS , 0 , 0 );
253- OperatingMode = MODE_FS ;
254- #if defined( USE_RADIO_DEBUG )
255- SX126xDbgPinTxWrite ( 0 );
256- SX126xDbgPinRxWrite ( 0 );
257- #endif
268+ SX126xSetOperatingMode ( MODE_FS );
258269}
259270
260271void SX126xSetTx ( uint32_t timeout )
261272{
262273 uint8_t buf [3 ];
263274
264- OperatingMode = MODE_TX ;
275+ SX126xSetOperatingMode ( MODE_TX ) ;
265276
266277 buf [0 ] = ( uint8_t )( ( timeout >> 16 ) & 0xFF );
267278 buf [1 ] = ( uint8_t )( ( timeout >> 8 ) & 0xFF );
268279 buf [2 ] = ( uint8_t )( timeout & 0xFF );
269280 SX126xWriteCommand ( RADIO_SET_TX , buf , 3 );
270- #if defined( USE_RADIO_DEBUG )
271- SX126xDbgPinTxWrite ( 1 );
272- #endif
273281}
274282
275283void SX126xSetRx ( uint32_t timeout )
276284{
277285 uint8_t buf [3 ];
278286
279- OperatingMode = MODE_RX ;
287+ SX126xSetOperatingMode ( MODE_RX ) ;
280288
281289 buf [0 ] = ( uint8_t )( ( timeout >> 16 ) & 0xFF );
282290 buf [1 ] = ( uint8_t )( ( timeout >> 8 ) & 0xFF );
283291 buf [2 ] = ( uint8_t )( timeout & 0xFF );
284292 SX126xWriteCommand ( RADIO_SET_RX , buf , 3 );
285- #if defined( USE_RADIO_DEBUG )
286- SX126xDbgPinRxWrite ( 1 );
287- #endif
288293}
289294
290295void SX126xSetRxBoosted ( uint32_t timeout )
291296{
292297 uint8_t buf [3 ];
293298
294- OperatingMode = MODE_RX ;
299+ SX126xSetOperatingMode ( MODE_RX ) ;
295300
296301 SX126xWriteRegister ( REG_RX_GAIN , 0x96 ); // max LNA gain, increase current by ~2mA for around ~3dB in sensivity
297302
298303 buf [0 ] = ( uint8_t )( ( timeout >> 16 ) & 0xFF );
299304 buf [1 ] = ( uint8_t )( ( timeout >> 8 ) & 0xFF );
300305 buf [2 ] = ( uint8_t )( timeout & 0xFF );
301306 SX126xWriteCommand ( RADIO_SET_RX , buf , 3 );
302- #if defined( USE_RADIO_DEBUG )
303- SX126xDbgPinRxWrite ( 1 );
304- #endif
305307}
306308
307309void SX126xSetRxDutyCycle ( uint32_t rxTime , uint32_t sleepTime )
@@ -315,13 +317,13 @@ void SX126xSetRxDutyCycle( uint32_t rxTime, uint32_t sleepTime )
315317 buf [4 ] = ( uint8_t )( ( sleepTime >> 8 ) & 0xFF );
316318 buf [5 ] = ( uint8_t )( sleepTime & 0xFF );
317319 SX126xWriteCommand ( RADIO_SET_RXDUTYCYCLE , buf , 6 );
318- OperatingMode = MODE_RX_DC ;
320+ SX126xSetOperatingMode ( MODE_RX_DC ) ;
319321}
320322
321323void SX126xSetCad ( void )
322324{
323325 SX126xWriteCommand ( RADIO_SET_CAD , 0 , 0 );
324- OperatingMode = MODE_CAD ;
326+ SX126xSetOperatingMode ( MODE_CAD ) ;
325327}
326328
327329void SX126xSetTxContinuousWave ( void )
@@ -631,7 +633,7 @@ void SX126xSetCadParams( RadioLoRaCadSymbols_t cadSymbolNum, uint8_t cadDetPeak,
631633 buf [5 ] = ( uint8_t )( ( cadTimeout >> 8 ) & 0xFF );
632634 buf [6 ] = ( uint8_t )( cadTimeout & 0xFF );
633635 SX126xWriteCommand ( RADIO_SET_CADPARAMS , buf , 5 );
634- OperatingMode = MODE_CAD ;
636+ SX126xSetOperatingMode ( MODE_CAD ) ;
635637}
636638
637639void SX126xSetBufferBaseAddress ( uint8_t txBaseAddress , uint8_t rxBaseAddress )
0 commit comments