aidar_i писал(а): ↑27.02.2021{, 16:55}
Я посмотрю, скорее, блок не рассчитан на повторное использование. Тогда не стояла передо мной такая задача.
я не спец в коде но возможно стоит обратить внимание
void loop()
{
if ((0))
{
esp_now_register_recv_cb(OnDataRecv);
}
if ((0))
{
str = (String(""));
str.toCharArray(char_array, str.length() + 1);
strcpy(myData.a, char_array);
esp_now_send(broadcastAddress0, (uint8_t *) &myData, sizeof(myData));
}
if ((0))
{
esp_now_register_recv_cb(OnDataRecv1);
и соотв далее где ошибка
void OnDataRecv(uint8_t * mac, uint8_t *incomingData, uint8_t len)
{
memcpy(&myData, incomingData, sizeof(myData));
Serial.print("Bytes received: ");
Serial.println(len);
Serial.println();
Out_153177633_245678552 = String (myData.a);
}
void OnDataRecv1(uint8_t * mac, uint8_t *incomingData, uint8_t len)
{
memcpy(&myData, incomingData, sizeof(myData));
Serial.print("Bytes received: ");
Serial.println(len);
Serial.println();
Out_153177633_113783045 = String (myData.a);
при этом компиляция проходит.
но работоспособность еще не проверял.
если блок заработает то вероятно стоит добавить нумерацию от номера блока в void loop
void loop()
{
if ((0))
{
esp_now_register_recv_cb(OnDataRecv0);
}
if ((0))
{
str = (String(""));
str.toCharArray(char_array, str.length() + 1);
strcpy(myData.a, char_array);
esp_now_send(broadcastAddress0, (uint8_t *) &myData, sizeof(myData));
}
if ((0))
{
esp_now_register_recv_cb(OnDataRecv1);
void OnDataRecv0(uint8_t * mac, uint8_t *incomingData, uint8_t len)
{
memcpy(&myData, incomingData, sizeof(myData));
Serial.print("Bytes received: ");
Serial.println(len);
Serial.println();
Out_153177633_245678552 = String (myData.a);
}
void OnDataRecv1(uint8_t * mac, uint8_t *incomingData, uint8_t len)
{
memcpy(&myData, incomingData, sizeof(myData));
Serial.print("Bytes received: ");
Serial.println(len);
Serial.println();
Out_153177633_113783045 = String (myData.a);