Port of aduino LoRa library from https://github.com/sandeepmistry/arduino-LoRa
Dependents: WeatherStationRemote
LoRa.h@1:8b16ccb7ea3f, 2018-01-24 (annotated)
- Committer:
- fadhlika
- Date:
- Wed Jan 24 10:51:18 2018 +0000
- Revision:
- 1:8b16ccb7ea3f
- Parent:
- 0:c28964675044
enable callback
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fadhlika | 0:c28964675044 | 1 | #ifndef LORA_H |
fadhlika | 0:c28964675044 | 2 | #define LORA_H |
fadhlika | 0:c28964675044 | 3 | |
fadhlika | 0:c28964675044 | 4 | #include "mbed.h" |
fadhlika | 0:c28964675044 | 5 | |
fadhlika | 0:c28964675044 | 6 | #define LORA_DEFAULT_SS_PIN PA_4 |
fadhlika | 0:c28964675044 | 7 | #define LORA_DEFAULT_RESET_PIN PA_2 |
fadhlika | 0:c28964675044 | 8 | #define LORA_DEFAULT_DIO0_PIN PA_3 |
fadhlika | 0:c28964675044 | 9 | |
fadhlika | 0:c28964675044 | 10 | #define PA_OUTPUT_RFO_PIN 0 |
fadhlika | 0:c28964675044 | 11 | #define PA_OUTPUT_PA_BOOST_PIN 1 |
fadhlika | 0:c28964675044 | 12 | |
fadhlika | 0:c28964675044 | 13 | class LoRaClass: public Stream |
fadhlika | 0:c28964675044 | 14 | { |
fadhlika | 0:c28964675044 | 15 | public: |
fadhlika | 0:c28964675044 | 16 | LoRaClass(); |
fadhlika | 0:c28964675044 | 17 | |
fadhlika | 0:c28964675044 | 18 | int begin(long frequency); |
fadhlika | 0:c28964675044 | 19 | void end(); |
fadhlika | 0:c28964675044 | 20 | |
fadhlika | 0:c28964675044 | 21 | int beginPacket(int implicitHeader = false); |
fadhlika | 0:c28964675044 | 22 | int endPacket(); |
fadhlika | 0:c28964675044 | 23 | |
fadhlika | 0:c28964675044 | 24 | int parsePacket(int size = 0); |
fadhlika | 0:c28964675044 | 25 | int packetRssi(); |
fadhlika | 0:c28964675044 | 26 | float packetSnr(); |
fadhlika | 0:c28964675044 | 27 | |
fadhlika | 0:c28964675044 | 28 | void onReceive(void(*callback)(int)); |
fadhlika | 0:c28964675044 | 29 | |
fadhlika | 0:c28964675044 | 30 | void receive(int size = 0); |
fadhlika | 0:c28964675044 | 31 | void idle(); |
fadhlika | 0:c28964675044 | 32 | void sleep(); |
fadhlika | 0:c28964675044 | 33 | |
fadhlika | 0:c28964675044 | 34 | void setTxPower(int level, int outputPin = PA_OUTPUT_PA_BOOST_PIN); |
fadhlika | 0:c28964675044 | 35 | void setFrequency(long frequency); |
fadhlika | 0:c28964675044 | 36 | void setSpreadingFactor(int sf); |
fadhlika | 0:c28964675044 | 37 | void setSignalBandwidth(long sbw); |
fadhlika | 0:c28964675044 | 38 | void setCodingRate4(int denominator); |
fadhlika | 0:c28964675044 | 39 | void setPreambleLength(long length); |
fadhlika | 0:c28964675044 | 40 | void setSyncWord(int sw); |
fadhlika | 0:c28964675044 | 41 | void enableCrc(); |
fadhlika | 0:c28964675044 | 42 | void disableCrc(); |
fadhlika | 0:c28964675044 | 43 | |
fadhlika | 0:c28964675044 | 44 | // deprecated |
fadhlika | 0:c28964675044 | 45 | void crc() { |
fadhlika | 0:c28964675044 | 46 | enableCrc(); |
fadhlika | 0:c28964675044 | 47 | } |
fadhlika | 0:c28964675044 | 48 | void noCrc() { |
fadhlika | 0:c28964675044 | 49 | disableCrc(); |
fadhlika | 0:c28964675044 | 50 | } |
fadhlika | 0:c28964675044 | 51 | |
fadhlika | 0:c28964675044 | 52 | uint8_t random(); |
fadhlika | 0:c28964675044 | 53 | |
fadhlika | 0:c28964675044 | 54 | void dumpRegisters(Stream& out); |
fadhlika | 0:c28964675044 | 55 | |
fadhlika | 0:c28964675044 | 56 | protected: |
fadhlika | 0:c28964675044 | 57 | // from Print |
fadhlika | 0:c28964675044 | 58 | virtual int _putc(int value); |
fadhlika | 0:c28964675044 | 59 | virtual int _getc(); |
fadhlika | 0:c28964675044 | 60 | |
fadhlika | 0:c28964675044 | 61 | int available(); |
fadhlika | 0:c28964675044 | 62 | int peek(); |
fadhlika | 0:c28964675044 | 63 | |
fadhlika | 0:c28964675044 | 64 | private: |
fadhlika | 0:c28964675044 | 65 | void explicitHeaderMode(); |
fadhlika | 0:c28964675044 | 66 | void implicitHeaderMode(); |
fadhlika | 0:c28964675044 | 67 | |
fadhlika | 0:c28964675044 | 68 | void handleDio0Rise(); |
fadhlika | 0:c28964675044 | 69 | |
fadhlika | 0:c28964675044 | 70 | uint8_t readRegister(uint8_t address); |
fadhlika | 0:c28964675044 | 71 | void writeRegister(uint8_t address, uint8_t value); |
fadhlika | 0:c28964675044 | 72 | uint8_t singleTransfer(uint8_t address, uint8_t value); |
fadhlika | 0:c28964675044 | 73 | |
fadhlika | 0:c28964675044 | 74 | static void onDio0Rise(); |
fadhlika | 0:c28964675044 | 75 | |
fadhlika | 0:c28964675044 | 76 | private: |
fadhlika | 0:c28964675044 | 77 | SPI &spi; |
fadhlika | 0:c28964675044 | 78 | DigitalOut _ss; |
fadhlika | 0:c28964675044 | 79 | DigitalOut _reset; |
fadhlika | 1:8b16ccb7ea3f | 80 | InterruptIn _dio0; |
fadhlika | 0:c28964675044 | 81 | int _frequency; |
fadhlika | 0:c28964675044 | 82 | int _packetIndex; |
fadhlika | 0:c28964675044 | 83 | int _implicitHeaderMode; |
fadhlika | 0:c28964675044 | 84 | void (*_onReceive)(int); |
fadhlika | 0:c28964675044 | 85 | }; |
fadhlika | 0:c28964675044 | 86 | |
fadhlika | 0:c28964675044 | 87 | extern LoRaClass LoRa; |
fadhlika | 0:c28964675044 | 88 | |
fadhlika | 0:c28964675044 | 89 | #endif |