Browse Source

Change RF library for more reliable comms

Robert Marshall 5 years ago
parent
commit
c2808802cd

+ 2 - 2
Receiver/platformio.ini

@@ -15,5 +15,5 @@ framework = arduino
 upload_port = /dev/ttyUSB1
 
 lib_deps=
-	RadioHead
-	SPI
+	RFReceiver
+	PinChangeInterruptHandler

+ 11 - 9
Receiver/src/Receiver.cpp

@@ -1,24 +1,26 @@
-#include <RH_ASK.h>
+#include <PinChangeInterruptHandler.h>
+#include <RFReceiver.h>
 
 class Receiver{
 	void (*_messageCallback)(char *);
-	RH_ASK _driver;
 	unsigned int _bufferSize;
+	RFReceiver _receiver;
 
 public:
-	Receiver(void(*messageCallback)(char*), unsigned int bufferSize){
+	Receiver(unsigned int pin, void(*messageCallback)(char*), unsigned int bufferSize):_receiver(pin){
 		_messageCallback = messageCallback;
 		_bufferSize = bufferSize;
 	}
 
-	bool setup(){
-		return _driver.init();
+	void setup(){
+		_receiver.begin();
 	}
 
-	void loop() {
-		uint8_t message[_bufferSize];
-		uint8_t length = sizeof(message);
-		if (_driver.recv(message, &length))
+	void loop()	{
+		char message[_bufferSize];
+		if (_receiver.ready()){
+			_receiver.recvPackage((byte *)message);
 			_messageCallback((char *)message);
+		}
 	}
 };

+ 2 - 3
Receiver/src/main.cpp

@@ -3,7 +3,7 @@
 
 unsigned int _output = 12;
 void messageCallback(char *message);
-Receiver _receiver(&messageCallback, 9);
+Receiver _receiver(11, &messageCallback, 9);
 
 bool validateMessage(char* message){
 	return strncmp("LED On: ", message, 8) == 0; //returns 0 on match
@@ -25,8 +25,7 @@ void setup(){
 	pinMode(_output, OUTPUT);
 	Serial.begin(9600);
 	Serial.println("Starting...");
-	if (!_receiver.setup())
-		Serial.println("init failed");
+	_receiver.setup();
 	Serial.println("Started");
 }
 

+ 2 - 3
Transmitter/platformio.ini

@@ -12,8 +12,7 @@
 platform = atmelavr
 board = nanoatmega328
 framework = arduino
-upload_port = /dev/ttyUSB0
+upload_port = /dev/ttyUSB2
 
 lib_deps=
-	RadioHead
-	SPI
+	RFTransmitter

+ 5 - 10
Transmitter/src/Transmitter.cpp

@@ -1,19 +1,14 @@
 #include <Arduino.h>
-#include <RH_ASK.h>
+#include <RFTransmitter.h>
 
 class Transmitter{
-	RH_ASK _driver;
-public:
-	// Transmitter(unsigned int pin){
-	// 	pinMode(pin, INPUT);
-	// }
+	RFTransmitter _transmitter;
 
-	bool setup(){
-		return _driver.init();
+public:
+	Transmitter(unsigned int pin):_transmitter(pin){
 	}
 
 	void send(char* message){
-		_driver.send((uint8_t *)message, strlen(message));
-		_driver.waitPacketSent();
+		_transmitter.send((byte*)message, strlen(message));
 	}
 };

+ 2 - 5
Transmitter/src/main.cpp

@@ -6,7 +6,7 @@ void sendOnSignal();
 void sendOffSignal();
 Button _button(13, &sendOnSignal, &sendOffSignal);
 unsigned int _counter;
-Transmitter _transmitter;
+Transmitter _transmitter(12);
 
 void sendSignal(int value){
 	Serial.print("Transmitting: ");
@@ -27,10 +27,7 @@ void sendOffSignal(){
 
 void setup() {
 	Serial.begin(9600);
-	Serial.println("Starting...");
-    if (!_transmitter.setup())
-		Serial.println("init failed");
-	Serial.println("Started");
+	Serial.println("Starting");
 }
 
 void loop() {