/*
rover_project_2_controllermaster.ino
Use this for the controller
Written by Michael Wright
Robotics for Kid Geniuses
https://www.y2kLeader.com
*/
#include <SoftwareSerial.h>
int rx=2;
int tx=3;
int key1pin=6;
int key2pin=7;
int key1,key2;
int x1pin=0,y1pin=1,x2pin=2,y2pin=3;
int x1,y1,x2,y2;
String x1str,y1str,x2str,y2str;
String data;
SoftwareSerial Bluetooth(rx,tx);
void setup() {
  Serial.begin(38400);
  Bluetooth.begin(38400);
  pinMode(6,INPUT_PULLUP);
  pinMode(7,INPUT_PULLUP);
  Serial.println("Master Ready");
}
void loop() {
  read_joysticks();
}
void read_joysticks(){
  y1=analogRead(x1pin);
  x1=analogRead(y1pin);
  y2=analogRead(x2pin);
  x2=analogRead(y2pin);
  x1=map(x1,1023,0,0,1023);
  x2=map(x2,1023,0,0,1023);
  key1=digitalRead(key1pin);
  key2=digitalRead(key2pin);
  y1str=pad(y1);
  x1str=pad(x1);
  y2str=pad(y2);
  x2str=pad(x2);
  data=x1str+","+y1str+":"+String(key1)+"/"+x2str+","+y2str+":"+String(key2);
  for (int i=0; i<data.length(); i++){
    Serial.print(data.charAt(i));
    Bluetooth.write(data.charAt(i));
  }
  Serial.println();
  Bluetooth.write("A");
  delay(10);
}
  String pad(int n){
  String s=String(n);
  if (n<10){s="000"+s;}
  if (n>9 && n<100){s="00"+s;}
  if (n>99 && n<1000){s="0"+s;} 
  return s;
}
