#include #define MY_DEBUG #define MY_RADIO_RF24 #define MY_RF24_CHANNEL (105) #define MY_RF24_PA_LEVEL RF24_PA_HIGH #include #define SOCK1 2 #define SOCK2 3 #define MY_DEFAULT_ERR_LED_PIN 4 // Error led pin #define MY_DEFAULT_RX_LED_PIN 5 // Receive led pin #define MY_DEFAULT_TX_LED_PIN 6 // the PCB, on board LED void presentation(); void sendData(MyMessage msg, bool status); void receive(const MyMessage &message); MyMessage msgMillis(2, V_VAR1); MyMessage msgSock1(2, V_VAR2); MyMessage msgSock2(2, V_VAR3); void setup() { pinMode(SOCK1, OUTPUT); pinMode(SOCK2, OUTPUT); } void loop() { static uint32_t cRun = millis(); if((cRun + 10000) <= millis()){ cRun = millis(); send(msgMillis.set(cRun)); } } void presentation() { sendSketchInfo("Rozetka", "1.0"); present(0, S_BINARY, "Socket1"); present(1, S_BINARY, "Socket2"); present(2, S_CUSTOM, "ESMillis"); } void sendData(MyMessage msg, bool status) { bool send_data = false; uint8_t count = 0; while(send_data == false){ count++; send_data = send(msg.set(status)); wait(100, C_SET, V_STATUS); if ((count == 3 )&&(send_data == 0)){ // Если сделано 3 попытки и нет подтверждения отправки count = 0; // Обнуляем счётчик send_data = 1; // Выходим из цикла } } } void receive(const MyMessage &message) { switch (message.sensor) { case 0: digitalWrite(SOCK1, message.getBool()); sendData(msgSock1, digitalRead(SOCK1)); break; case 1: digitalWrite(SOCK1, message.getBool()); sendData(msgSock2, digitalRead(SOCK2)); break; default: break; } }