esp32: In recv_cb, get espnow rssi from recv_info->rx_ctrl.

IDF v5.0 provides access to rssi value for received espnow packets via
recv_info arg to recv_cb().

Signed-off-by: Glenn Moloney <glenn.moloney@gmail.com>
diff --git a/ports/esp32/modespnow.c b/ports/esp32/modespnow.c
index c94fc81..08836c0 100644
--- a/ports/esp32/modespnow.c
+++ b/ports/esp32/modespnow.c
@@ -313,21 +313,6 @@
 // - to return unique bytestrings for each peer which supports more efficient
 //   application memory usage and peer handling.
 
-// Get the RSSI value from the wifi packet header
-static inline int8_t _get_rssi_from_wifi_pkt(const uint8_t *msg) {
-    // Warning: Secret magic to get the rssi from the wifi packet header
-    // See espnow.c:espnow_recv_cb() at https://github.com/espressif/esp-now/
-    // In the wifi packet the msg comes after a wifi_promiscuous_pkt_t
-    // and a espnow_frame_format_t.
-    // Backtrack to get a pointer to the wifi_promiscuous_pkt_t.
-    static const size_t sizeof_espnow_frame_format = 39;
-    wifi_promiscuous_pkt_t *wifi_pkt =
-        (wifi_promiscuous_pkt_t *)(msg - sizeof_espnow_frame_format -
-            sizeof(wifi_promiscuous_pkt_t));
-
-    return wifi_pkt->rx_ctrl.rssi;
-}
-
 // Lookup a peer in the peers table and return a reference to the item in the
 // peers_table. Add peer to the table if it is not found (may alloc memory).
 // Will not return NULL.
@@ -577,7 +562,7 @@
     header.magic = ESPNOW_MAGIC;
     header.msg_len = msg_len;
     #if MICROPY_ESPNOW_RSSI
-    header.rssi = _get_rssi_from_wifi_pkt(msg);
+    header.rssi = recv_info->rx_ctrl->rssi;
     header.time_ms = mp_hal_ticks_ms();
     #endif // MICROPY_ESPNOW_RSSI