Владимир Андреевич
Member
После обновлений, прошедших примерно месяц назад, возникли трудности с использованием esp_now. С большим трудом, (попытки вернуть версию Boards не прошли) удалось очистить и обновить список библиотек и все заработало. Но существовавшая система сбора информации и ряда постов, использовавшая esp_now, перестала при приеме информации получать правильный МАК адрес посылающего.
```
void OnDataRecv(const uint8_t * mac_addr, const uint8_t *incomingData, int len)
{
char macStr[18];String Str="";
uint8_t mac8[] = {0xc8,0xf0,0x9e,0x4f,0x1b,0xd4};
uint8_t mac7[] = {0xc8,0xf0,0x9e,0x4e,0xf0,0xbc};
uint8_t mac5[] = {0x54,0x43,0xb2,0xa9,0x34,0xec};
snprintf(macStr, sizeof(macStr), "%02x:%02x:%02x:%02x:%02x:%02x",
mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
Serial.print("mac_addr ");Serial.println(macStr);
```
выводит один и тот же адрес, независимо от реального Sendera. Проверка МАК адресов Сендеров стандартным способом подтвердил различие их адресов и совпадение их с ранее известными. Значения выдаваемые Ресептором 46:f3:fa:3f:40:f3 все одинаковы и не совпадают ни с одним из реальных адресов.
Конечно можно различать Сендера по получаемому сообщению, но это не удобно, так как структуры сообщений отличаются и легко распаковываются, если известна их структура.
```
void OnDataRecv(const uint8_t * mac_addr, const uint8_t *incomingData, int len)
{
char macStr[18];String Str="";
uint8_t mac8[] = {0xc8,0xf0,0x9e,0x4f,0x1b,0xd4};
uint8_t mac7[] = {0xc8,0xf0,0x9e,0x4e,0xf0,0xbc};
uint8_t mac5[] = {0x54,0x43,0xb2,0xa9,0x34,0xec};
snprintf(macStr, sizeof(macStr), "%02x:%02x:%02x:%02x:%02x:%02x",
mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
Serial.print("mac_addr ");Serial.println(macStr);
```
выводит один и тот же адрес, независимо от реального Sendera. Проверка МАК адресов Сендеров стандартным способом подтвердил различие их адресов и совпадение их с ранее известными. Значения выдаваемые Ресептором 46:f3:fa:3f:40:f3 все одинаковы и не совпадают ни с одним из реальных адресов.
Конечно можно различать Сендера по получаемому сообщению, но это не удобно, так как структуры сообщений отличаются и легко распаковываются, если известна их структура.