PIPEING PROBLEM IN RADIO COMMUNICATION

Hie, I am working on a project in which I am using two Arduino Uno and both are connected with NRF24L01( NRF24 Module) as well as Serially. My 1st Arduino is working as Transmitter and 2nd is working as Receiver. My Project AIM is that first I want a serial communication between TX to RX. After successful Serial communication, I want my Radio Communication will start working.

Now, for a Radio Communication, I am using PIPE() as:
Tx: radio.openWritingPipe(pipe);
Rx: radio.openReadingPipe(1,pipe); and radio.startListening();
Because it helps us in uniquely identification of TX and RX wirelessly.

I initialize a PIPE Value to TX in Starting but not initialize it in RX in starting. Now My AIM is that I will send a pipe value from TX to RX through serial communication and when RX will receive that value then it will set to its pipe variable. And then radio communication will work.

In my project, RX will not have a value of PIPE in starting. An RX will receive that value through TX serially.

I am attaching My code ::

TRANSMITTER CODE :

#include <SPI.h>
#include "RF24.h"
byte data1[1];
byte data2[1];
byte data3[1];
byte data4[1];
byte data[1];
const uint64_t pipe = 123;
RF24 radio(9,10);
int val;
void setup(){
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
pinMode(6, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
radio.begin();
radio.openWritingPipe(pipe);
}

void loop(){
val = digitalRead(2);
if (val == HIGH)
{
Serial.write(123);
delay(100);
}

if(digitalRead(5)==HIGH ){
data1[0]=0;
data[0]=data1[0];
radio.write(data, 1);
}
if(digitalRead(5)==LOW){
data1[0]=1;
data[0]=data1[0];
radio.write(data, 1);
}
if(digitalRead(6)==HIGH ){
data2[0]=2;
data[0]=data2[0];
radio.write(data, 1);
}
if(digitalRead(6)==LOW){
data2[0]=3;
data[0]=data2[0];
radio.write(data, 1);
}
if(digitalRead(7)==HIGH ){
data3[0]=4;
data[0]=data3[0];
radio.write(data, 1);
}
if(digitalRead(7)==LOW){
data3[0]=5;
data[0]=data3[0];
radio.write(data, 1);
}
if(digitalRead(8)==HIGH ){
data4[0]=6;
data[0]=data4[0];
radio.write(data, 1);
}
if(digitalRead(8)==LOW){
data4[0]=7;
data[0]=data4[0];
radio.write(data, 1);
}

} //VOID LOOP CLOSE...

RECEIVER CODE :

#include <SPI.h>
#include "RF24.h"
boolean var;
byte data[1];

static int val, pos = 0;
int *value = &val;
int a = *value;
const uint64_t pipe = a;

RF24 radio(9,10);

void setup(){
pinMode(2, OUTPUT); //SERIAL
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
}

void loop()
{
if (Serial.available() > 0)
{
val = Serial.read();
if (val == 123 && pos == 0)
{
digitalWrite(2, HIGH);
pos = 1;
}
else if (val == 123 && pos == 1)
{
digitalWrite(2, LOW);
pos = 0;
}
Serial.println(val);
Serial.println(*value);
} // If Serial Close.

if(radio.available()){
var = false;
while(!var){
var = radio.read(data, 1);
if(data[0] == 0){
digitalWrite(5, LOW);
}
if(data[0] == 1){
digitalWrite(5, HIGH);
}
if(data[0] == 2){
digitalWrite(6, LOW);
}
if(data[0] == 3){
digitalWrite(6, HIGH);
}
if(data[0] == 4){
digitalWrite(7, LOW);
}
if(data[0] == 5){
digitalWrite(7, HIGH);
}
if(data[0] == 6){
digitalWrite(8, LOW);
}
if(data[0] == 7){
digitalWrite(8, HIGH);
}
} // WHILE LOOP CLOSE
} // IF CLOSE
} //VOID LOOP CLOSE...

static int val, pos = 0;
int *value = &val;
int a = *value;
const uint64_t pipe = a;

So, pipe is zero.

Why so prolix?

Please remember to use code tags when posting code