cad.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "cad.h"
  2. #include "radio.h"
  3. States_t State = LOWPOWER;
  4. CadRx_t CadRx = CAD_FAIL;
  5. bool PacketReceived = false;
  6. bool RxTimeoutTimerIrqFlag = false;
  7. uint16_t channelActivityDetectedCnt = 0;
  8. uint16_t RxCorrectCnt = 0;
  9. uint16_t RxErrorCnt = 0;
  10. uint16_t RxTimeoutCnt = 0;
  11. uint16_t SymbTimeoutCnt = 0;
  12. int16_t RssiMoy = 0;
  13. int8_t SnrMoy = 0;
  14. void OnCadDone( bool channelActivityDetected)
  15. {
  16. Radio.Standby( );
  17. if( channelActivityDetected == true )
  18. {
  19. CadRx = CAD_SUCCESS;
  20. }
  21. else
  22. {
  23. CadRx = CAD_FAIL;
  24. }
  25. State = RX;
  26. }
  27. void SX126xConfigureCad( RadioLoRaCadSymbols_t cadSymbolNum, uint8_t cadDetPeak, uint8_t cadDetMin , uint32_t cadTimeout)
  28. {
  29. SX126xSetDioIrqParams( IRQ_CAD_DONE | IRQ_CAD_ACTIVITY_DETECTED, IRQ_CAD_DONE | IRQ_CAD_ACTIVITY_DETECTED,
  30. IRQ_RADIO_NONE, IRQ_RADIO_NONE );
  31. SX126xSetCadParams( cadSymbolNum, cadDetPeak, cadDetMin, LORA_CAD_ONLY, ((cadTimeout * 1000) / 15.625 ));
  32. }
  33. //static void CADTimeoutTimeoutIrq( void )
  34. //{
  35. // Radio.Standby( );
  36. // State = START_CAD;
  37. //}
  38. //static void RxTimeoutTimerIrq( void )
  39. //{
  40. // RxTimeoutTimerIrqFlag = true;
  41. //}