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

Servo RWServo;
Servo LWServo;
Servo HTServo;
Servo VTServo;
Servo RigthBLDC;
Servo LeftBLDC;




RF24 radio(7,8); 
const byte address[] = "node1";

bool buttonState = 0; 


int RWServoAngle =  0;
int LWServoAngle =  0;
int HTServoAngle =  0;
int VTServoAngle =  0;
int RightBLDCAngle = 0;
int LeftBLDCAngle = 0;


struct PacketData{
  int RWServoAngle = 0 ;
  int LWServoAngle = 0 ;
  int HTServoAngle = 0 ;
  int VTServoAngle = 0 ;
  int RightBLDCAngle = 0;
  int LeftBLDCAngle = 0;
};

PacketData data;

    
void setup(){

  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  // pinMode(10, INPUT);
  // pinMode(11, INPUT);
  // pinMode(12, INPUT);
  // pinMode(13, INPUT);


  RWServo.attach(3);
  LWServo.attach(4);
  HTServo.attach(5);
  VTServo.attach(6);
  RigthBLDC.attach(7);
  LeftBLDC.attach(8);

  Serial.begin(9600);

  radio.begin(); 
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
  
}

void loop(){

  while(radio.available()){  
    radio.read(&data, sizeof(PacketData));
    RWServoAngle = data.RWServoAngle ;
    LWServoAngle = data.LWServoAngle ;
    HTServoAngle = data.HTServoAngle ;
    VTServoAngle = data.VTServoAngle ;
    RightBLDCAngle = data.RightBLDCAngle ;
    LeftBLDCAngle = data.LeftBLDCAngle ;

  RWServo.write(RWServoAngle);
  LWServo.write(LWServoAngle);
  HTServo.write(HTServoAngle);
  VTServo.write(VTServoAngle);
  RigthBLDC.write(RightBLDCAngle);
  LeftBLDC.write(LeftBLDCAngle);
  
    Serial.print(" ");
    Serial.print(RWServoAngle);
    Serial.print(" ");
    Serial.print(LWServoAngle);
    Serial.print(" ");
    Serial.print(HTServoAngle);
    Serial.print(" ");
    Serial.print(VTServoAngle);
    Serial.print(" ");
    Serial.print(RightBLDCAngle);
    Serial.print(" ");
    Serial.println(LeftBLDCAngle);
    Serial.print(" ");

 }
}