SPQR-Team-2019-REVAMPED/utility/bluetooth/bluesmirf-rn42/bluesmirf-rn42.ino

65 lines
1.6 KiB
C++

/*Author: EmaMaker (emamaker.altervista.org) on 8/3/2020
Write and read data from two bluesmirf rn-42 at the same time*/
#include <SoftwareSerial.h>
int bluetoothTx = 2; // TX-O pin of bluetooth mate, Arduino D2
int bluetoothRx = 3; // RX-I pin of bluetooth mate, Arduino D3
//SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
#define bluetooth1 Serial3
#define bluetooth2 Serial2
HardwareSerial* current= nullptr;
char a = ' ';
void setup() {
Serial.begin(9600); // Begin the serial monitor at 9600bps
bluetooth1.begin(19200);
bluetooth2.begin(19200);
}
void read(HardwareSerial* bluetooth) {
while (bluetooth->available()) {
if(bluetooth == &bluetooth1){
Serial.print("Bluetooth1 Read: ");
}else if(bluetooth == &bluetooth2){
Serial.print("Bluetooth2 Read: ");
}
// Send any characters the bluetooth prints to the serial monitor
Serial.println((char)bluetooth->read());
delay(50);
}
}
void write(HardwareSerial* bluetooth) {
if(a != ' ') {
if(bluetooth == &bluetooth1){
Serial.print("Bluetooth1 Write: ");
}else if(bluetooth == &bluetooth2){
Serial.print("Bluetooth2 Write: ");
}
// Send any characters the Serial monitor prints to the bluetooth
Serial.println(a);
bluetooth->print(a);
a = ' ';
}
}
bool b = false;
void loop() {
b = !b;
while(Serial.available() > 0){
a = (char)Serial.read();
if(a == '-') current = &bluetooth1;
else if(a == '_') current = &bluetooth2;
if(a == '-' || a == '_') a = ' ';
}
if(current != nullptr) write(current);
read(&bluetooth1);
read(&bluetooth2);
}