#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define A1 12
#define B1 13
#define C1 10

#define A2 8
#define B2 9
#define C2 11

RF24 radio(6, 7); // CE, CSN
int text[7]; //8
int butManip = 0;
int Click = 0;
int rightMotor = 0;
int leftMotor = 0;
int butCatch = 0;

int butManip1_up = 0;
int butManip1_down = 0;
int butManip2_up = 0;
int butManip2_down = 0;
int butManip3_right = 0;
int butManip3_left = 0;

int butCatch_left = 0;
int butCatch_right = 0;

int clickLeft_Done = 0;
int clickLeft_Raw = 0;

int clickRight_Done = 0;
int clickRight_Raw = 0;

int rightDone_up = 0;
int rightDone_down = 0;
int rightMedium_up = 0;
int rightMedium_down = 0;
int rightRaw_up = 0;
int rightRaw_down = 0;

int leftDone_up = 0;
int leftDone_down = 0;
int leftMedium_up = 0;
int leftMedium_down = 0;
int leftRaw_up = 0;
int leftRaw_down = 0;

int butMotor_left = 0;
int butMotor_right = 0;

const byte address[6] = "00001";  //установка адреса

void setup() {
  radio.begin();  // Инициализация радиомодуля NRF24L01
  radio.setChannel(5); // Обмен данными будет вестись на пятом канале (2,405 ГГц)
  radio.setDataRate (RF24_1MBPS); // Скорость обмена данными 1 Мбит/сек
  radio.setPALevel(RF24_PA_HIGH); // Выбираем высокую мощность передатчика (-6dBm)
  radio.openReadingPipe(1, address); // Открываем трубу с ID передатчика
  radio.startListening(); // Включаем прослушивание открытой трубы

  Serial.begin(9600);
  //  radio.begin();
  //  radio.openReadingPipe(0, address);   //разрешение на связь
  //  radio.setPALevel(RF24_PA_HIGH);
  //  radio.startListening();  //приемник

  pinMode(A1, OUTPUT);
  pinMode(B1, OUTPUT);
  pinMode(C1, OUTPUT);

  pinMode(A2, OUTPUT);
  pinMode(B2, OUTPUT);
  pinMode(C2, OUTPUT);

}

void loop() {

  if (radio.available()) {
    radio.read(text, 14);  //начинает получать текст
//    Serial.print(text[0]);
//    Serial.print("\t");
//    Serial.print(text[1]);//y первый джостик и одна сторона
//    Serial.print("\t");
//    Serial.print(text[2]);
//    Serial.print("\t");
//    Serial.print(text[3]);
//    Serial.print("\t");
//    Serial.print(text[4]);
//    Serial.print("\t");
//    Serial.print(text[5]);
//    Serial.print("\t");
//    Serial.println(text[6]);
    //    Serial.print("\t");
    //    Serial.println(text[7]);
    //    Serial.print(text[8]);
    //    Serial.print(text[9]);
    //    Serial.print(text[10]);
    //    Serial.print(text[11]);
    //    Serial.print(text[12]);
    //    Serial.print(text[13]);
    //    Serial.print(text[14]);
    //    Serial.print(text[15]);
    //    Serial.print(text[16]);
    //    Serial.print(text[17]);
    //    Serial.print(text[18]);
    //    Serial.print(text[19]);
    //    Serial.print(text[20]);
    //    Serial.print(text[21]);
    //    Serial.print(text[22]);
    //    Serial.print(text[23]);
    //    Serial.print(text[24]);
    //    Serial.println(text[25]);


    //    Serial.print("\t");
    //    Serial.print(text[2]);
    //    Serial.print("\t");
    //    Serial.println(text[3]);  //y второй джостик и вторая сторона

    //    if (text > 800) {   //первый джостик и одна сторона
    //      digitalWrite(A1, HIGH);
    //      digitalWrite(B1, LOW);
    //      analogWrite(C1, 1023);
    //    }
    //
    //    else if (text < 300) {
    //      digitalWrite(A1, LOW);
    //      digitalWrite(B1, HIGH);
    //      analogWrite(C1, 1023);
    //    }
    //
    //    else {
    //      digitalWrite(A1, LOW);
    //      digitalWrite(B1, LOW);
    //      analogWrite(C1, 1023);
    //    }
  }
  butManip = text[2];
  Click = text[3];
  rightMotor = text[4];
  leftMotor = text[5];
  butCatch = text[6];

  butMotor_left = text[0];
  butMotor_right = text[1];

  butManip1_up = bitRead(text[2], 0);
  butManip1_down = bitRead(text[2], 1);
  butManip2_up = bitRead(text[2], 2);
  butManip2_down = bitRead(text[2], 3);
  butManip3_right = bitRead(text[2], 4);
  butManip3_left = bitRead(text[2], 5);

  clickLeft_Done = bitRead(text[3], 0);
  clickLeft_Raw = bitRead(text[3], 1);

  clickRight_Done = bitRead(text[3], 2);
  clickRight_Raw = bitRead(text[3], 3);

  rightDone_up = bitRead(text[4], 0);
  rightDone_down = bitRead(text[4], 1);
  rightMedium_up = bitRead(text[4], 2);
  rightMedium_down = bitRead(text[4], 3);
  rightRaw_up = bitRead(text[4], 4);
  rightRaw_down = bitRead(text[4], 5);

  leftDone_up = bitRead(text[5], 0);
  leftDone_down = bitRead(text[5], 1);
  leftMedium_up = bitRead(text[5], 2);
  leftMedium_down = bitRead(text[5], 3);
  leftRaw_up = bitRead(text[5], 4);
  leftRaw_down = bitRead(text[5], 5);

  butCatch_left = bitRead(text[6], 0);
  butCatch_right = bitRead(text[6], 1);

  Serial.print(butMotor_left);
  Serial.print("\t");
  Serial.print(butMotor_right);
  Serial.print("\t");
  Serial.print(butManip1_up);
  Serial.print(butManip1_down);
  Serial.print(butManip2_up);
  Serial.print(butManip2_down);
  Serial.print(butManip3_right);
  Serial.print(butManip3_left );

  Serial.print(clickLeft_Done);
  Serial.print(clickLeft_Raw );

  Serial.print(clickRight_Done );
  Serial.print(clickRight_Raw );

  Serial.print(rightDone_up );
  Serial.print(rightDone_down );
  Serial.print(rightMedium_up );
  Serial.print(rightMedium_down );
  Serial.print(rightRaw_up );
  Serial.print(rightRaw_down);

  Serial.print(leftDone_up );
  Serial.print(leftDone_down);
  Serial.print(leftMedium_up );
  Serial.print(leftMedium_down );
  Serial.print(leftRaw_up );
  Serial.print(leftRaw_down);

  Serial.print(butCatch_left);
  Serial.print(butCatch_right);
  Serial.println("\t");
}
///////////////////////////////////////////////////

//if (text[1] > 800) {   //второй джостик и вторая сторона
//      digitalWrite(A2, HIGH);
//      digitalWrite(B2, LOW);
//      analogWrite(C2, 1023);
//    }
//
//    else if (text[1] < 300) {
//      digitalWrite(A2, LOW);
//      digitalWrite(B2, HIGH);
//      analogWrite(C2, 1023);
//    }
//
//    else {
//      digitalWrite(A2, LOW);
//      digitalWrite(B2, LOW);
//      analogWrite(C2, 1023);
//    }
//
//  }
//Serial.println("no");
//}
