SX1276Lib updated in order to be RTOS aware
Fork of SX1276Lib by
Diff: sx1276/sx1276.h
- Revision:
- 27:8a37a9362714
- Parent:
- 26:d09a8ef807e2
- Child:
- 31:a9575b07944d
diff -r d09a8ef807e2 -r 8a37a9362714 sx1276/sx1276.h --- a/sx1276/sx1276.h Mon Apr 24 09:26:23 2017 +0000 +++ b/sx1276/sx1276.h Fri Mar 02 15:39:25 2018 +0100 @@ -100,6 +100,12 @@ RadioSettings_t settings; static const FskBandwidth_t FskBandwidths[]; + + // <RTOS> + Thread* _thread_events_queue; + EventQueue* _eq_events; + // </RTOS> + protected: /*! @@ -115,6 +121,11 @@ PinName dio0, PinName dio1, PinName dio2, PinName dio3, PinName dio4, PinName dio5 ); SX1276( RadioEvents_t *events ); virtual ~SX1276( ); + + // <RTOS> + void assign_events_queue_thread(Thread* thread) {_thread_events_queue=thread;} + void assign_events_queue(EventQueue* event_queue) {_eq_events=event_queue;} + // </RTOS> //------------------------------------------------------------------------- // Redefined Radio functions @@ -501,6 +512,36 @@ * \retval regValue Bandwidth register value. */ static uint8_t GetFskBandwidthRegValue( uint32_t bandwidth ); + + // Inizio nuova parte per RTOS + + virtual void enqueueOnTimeoutIrq(); + + virtual void enqueueRadioEvent_RxTimeout(); + virtual void enqueueRadioEvent_TxTimeout(); + virtual void enqueueRadioEvent_RxError(); + virtual void enqueueRadioEvent_RxDone(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr); + virtual void enqueueRadioEvent_TxDone(); + virtual void enqueueRadioEvent_FhssChangeChannel(uint8_t currentChannel); + virtual void enqueueRadioEvent_CadDone(bool channelActivityDetected); + virtual void enqueueOnDio0Irq(); + virtual void enqueueOnDio1Irq(); + virtual void enqueueOnDio2Irq(); + virtual void enqueueOnDio3Irq(); + virtual void enqueueOnDio4Irq(); + virtual void enqueueOnDio5Irq(); + +private: + + void radioEvent_RxTimeout(); + void radioEvent_TxTimeout(); + void radioEvent_RxError(); + void radioEvent_RxDone(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr); + void radioEvent_TxDone(); + void radioEvent_FhssChangeChannel(uint8_t currentChannel); + void radioEvent_CadDone(bool channelActivityDetected); + + // Fine nuova parte per RTOS }; #endif // __SX1276_H__