Loom 4 v4.5
Arduino library for Internet of Things Rapid Prototyping in environmental sensing
Loading...
Searching...
No Matches
Loom_LoRa.h
1#pragma once
2
3
4#include "../Radio.h"
5#include "../../Loom_Manager.h"
6
7#include <RH_RF95.h>
8#include <RHReliableDatagram.h>
9
10#define RFM95_CS 8 // Chip select pin
11#define RFM95_RST 4 // Reset pin
12#define RFM95_INT 3 // Interrupt pin
13
14#define RF95_FREQ 915.0 // LoRa Radio Frequency
15
16#define RECV_DATA_SIZE 256
17
23class Loom_LoRa : public Radio{
24 protected:
25 /* These aren't used with this module */
26 void measure() override {};
27
28
29 public:
30
41 Manager& man,
42 const int address = -1,
43 const uint8_t powerLevel = 23,
44 const uint8_t retryCount = 3,
45 const uint16_t retryTimeout = 200
46 );
47
48 /* Destructor for the manager to prevent memory leaks */
49 ~Loom_LoRa(){
50 delete manager;
51 };
52
57 bool receive(uint maxWaitTime) override;
58
63 bool send(const uint8_t destinationAddress) override;
64
68 void initialize() override;
69
73 void power_up() override;
74
78 void power_down() override;
79
83 void package() override;
84
88 void setAddress(const uint8_t addr);
89
90 private:
91 Manager* manInst; // Instance of the manager
92
93 RH_RF95 driver; // Underlying radio driver
94 RHReliableDatagram* manager; // Manager for driver
95
96 bool transmit(JsonObject json, int destination); // Internal method for sending JSON data over radio
97 bool recv(int waitTime); // Internal method for reading data in from radio
98
99 char recvData[RECV_DATA_SIZE];
100
101 bool sendFull(const uint8_t destinationAddress); // Send the full packet with no fragmentation
102 bool sendPartial(const uint8_t destinationAddress); // Fragment the packet when needed
103 bool sendModules(JsonObject json, int numModules, const uint8_t destinationAddress); // Send one module to the hub to allow for fragmented sending
104
105 bool receivePartial(uint waitTime);
106
107};
Definition: Loom_LoRa.h:23
void setAddress(const uint8_t addr)
Definition: Loom_LoRa.cpp:101
void power_down() override
Definition: Loom_LoRa.cpp:299
void initialize() override
Definition: Loom_LoRa.cpp:26
bool receive(uint maxWaitTime) override
Definition: Loom_LoRa.cpp:127
void package() override
Definition: Loom_LoRa.cpp:92
bool send(const uint8_t destinationAddress) override
Definition: Loom_LoRa.cpp:109
void power_up() override
Definition: Loom_LoRa.cpp:293
Definition: Loom_Manager.h:18
Definition: Radio.h:13