#include "Arduino.h"
#include "Declares.h"
#include "NRF.h"
#include "Device.h"
Device_class Device1;
Device_class Device2;
TIMER_E_Mill ShowTO;
TIMER_E_Mill FakesendDataa;
TIMER_E_Mill FakesendRegister;
bool showaactive;
bool showregister;
bool showsend;
bool showRec;
unsigned long Senddata_long = 2000;
float Senddata_float = 200.55;
uint16_t senddata_int16 = 450;
uint8_t Senddata_int8 = 20;
bool Senddata_bool = true;
unsigned long Readdata_long;
float Readdata_float;
uint16_t readdata_int16;
uint8_t Readdata_int8;
bool Readdata_bool = false;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
while (!Serial) {
// some boards need to wait to ensure access to serial over USB
}
Serial.println("-----------------------------");
ShowTO.SetTimeout = 3000;
FakesendDataa.SetTimeout = 100;
FakesendRegister.SetTimeout = 3000;
NRF.SetRole(_Slave);
NRF.Set_Transmit(Activate);
NRF.init();
Device1.Set_Transmit(Receiving);
Device1.Set_Control(ManualACK);
Device1.Set_Valtypes(isuint8_t);
Device1.Set_Receiver_ID(200);
Device1.Set_SendTimer(5000);
Device2.Set_Receiver_ID(240);
Device2.Set_SendTimer(5000);
NRF.Register_Dev(Device1);
// NRF.Register_Dev(Device2);
NRF.CreateAddress();
Serial.println(" Register size = " + String( NRF.Register_p_size));
}
//----------------------------------------------------------------------
//--------------------------------loop---------------------------------
void loop() {
FakesendDataa.Start_Timeout();
if (FakesendDataa.Timeout()) {
NRF.Act_Send();
}
NRF.Updates();
// all these should be under nrf update easier for now here
switch (NRF.Transmit) {
case Activate:
if (!showaactive) {
Serial.println(F("Activate"));
showaactive = true;
}
if (NRF.Role == _Master) {
NRF.Act_Send();
}
else if (NRF.Role == _Slave) {
NRF.Act_Rec();
}
break;
// NOTE: on register master sends first then Receives slave receives then sends
case Register:
if (!showregister) {
Serial.println(F("Register"));
showregister = true;
}
if (NRF.Role == _Master) {
NRF.Register_send();
}
else if (NRF.Role == _Slave) {
NRF.FakeRegister_send();
NRF.Register_rec();
}
break;
case Sending:
if (!showsend) {
Serial.println(F("Sending"));
showsend = true;
showRec = false;
}
break;
case Receiving:
if (!showRec) {
Serial.println(F("Receiveing"));
Serial.println(Globaltime());
showRec = true;
showsend = false;
}
break;
}
//Device1.Setdata(Senddata_int8);
Device1.Getdata(Readdata_int8);
ShowTO.Start_Timeout();
if (ShowTO.Timeout()) {
// Print_Receive_Address(1);
//Print_WritePipe_Address(1);
//Serial.print("Readdata_int8 = ");
// Serial.println(Readdata_int8);
}
}