lora.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef _LORA_H_
  2. #define _LORA_H_
  3. //CAD parameters
  4. #define CAD_SYMBOL_NUM LORA_CAD_02_SYMBOL
  5. #define CAD_DET_PEAK 22
  6. #define CAD_DET_MIN 10
  7. #define CAD_TIMEOUT_MS 2000
  8. #define NB_TRY 10
  9. extern timeout_t g_loraRcvTime;
  10. typedef struct _lora_param_{
  11. uint32_t freq; //发射频率
  12. uint8_t power; // 发射功率
  13. uint8_t bandwidth; //带宽
  14. uint8_t spreadingFactor; //扩频因子
  15. uint8_t codingrate; // 纠错编码率
  16. uint16_t preambleLen; // 前导码长度
  17. }loraParam;
  18. extern loraParam g_loraPa[4];
  19. typedef enum LORA_STATE_ENUM {
  20. lora_state_idle,
  21. lora_state_rcv,
  22. lora_state_send,
  23. lora_state_sendRept,
  24. lora_state_max
  25. } LORA_STATE_ENUM;
  26. typedef struct _system_lora {
  27. uint8_t memory[8][256]; //必须4字节对齐
  28. OS_Q lora_q;
  29. OS_SEM sem;
  30. OS_MEM lora_m;
  31. OS_TMR lora_tmr;
  32. } system_lora_t;
  33. extern void * lora_queue_mem_calloc_must(void);
  34. extern int lora_queue_mem_free(void * p_msg);
  35. extern void lora_queue_insert(char *p_msg, uint32_t msg_len);
  36. extern void lora_init(char *device_id);
  37. extern void lora_task(void);
  38. static void SX126xOnTxDone( void );
  39. static void SX126xOnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr );
  40. static void SX126xOnTxTimeout( void );
  41. static void SX126xOnRxTimeout( void );
  42. static void SX126xOnRxError( void );
  43. extern void lora_queue_proc_testTx(void);
  44. #endif