Port of aduino LoRa library from https://github.com/sandeepmistry/arduino-LoRa

Dependents:   WeatherStationRemote

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?

UserRevisionLine numberNew 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