lwIP netconn: netif_addr, what is the correct variable

rolobr
Posts: 7
Joined: Thu Feb 15, 2018 3:49 pm

lwIP netconn: netif_addr, what is the correct variable

Postby rolobr » Fri Jun 15, 2018 1:18 pm

Hello,
I would like to use the netconn api in lwIP to use multicast.

There is the function "netconn_join_leave_group" which has the parameter "netif_addr" which is described as "the IP address of the network interface on which to send the imgp message".

Is there a macro I can use for this parameter?
As my ESP32 gets an IP via DHCP the IP might change.
So how can I make sure that always the correct IP is used?

Thank you very much.


rolobr
Posts: 7
Joined: Thu Feb 15, 2018 3:49 pm

Re: lwIP netconn: netif_addr, what is the correct variable

Postby rolobr » Tue Jun 19, 2018 2:13 pm

Thanks!

Sadly I could not get it to work.
Your example uses BSD sockets which I would like to avoid.

It would be really great if someone could help me to get it work.

Please see my example.

Thank you very much!

Code: Select all

static void udp_send_multicast(void *pvParameters) {

   char tag[] = "udp_multicast_send_task";
   ESP_LOGI(tag,"udp_multicast_send task started \n");

   struct netconn *conn;
      struct netbuf *buf;
      char* data;

      struct ip_addr_t multicastip; //Says size of multicastip is unknown
      IP4_ADDR(&multicastip,239,255,255,250);

      char msg [100];
       sprintf(msg, "multicast test message");

      conn = netconn_new(NETCONN_UDP);
      netconn_bind(conn,IP_ADDR_ANY,4990);
      netconn_join_leave_group(conn,multicastip,0,NETCONN_JOIN); //What do I have to use here as second and third argument?
      while(1) {
         buf = netbuf_new();
         data = netbuf_alloc(buf, sizeof(msg));
         memcpy(data,msg,sizeof(msg));
         netconn_send(conn,buf);
         netbuf_delete(buf);
         vTaskDelay(10000 / portTICK_PERIOD_MS);
      }
}

Who is online

Users browsing this forum: No registered users and 10 guests