I am using ipcfg_unbind instead of RTCS_if_unbind since httpserv demo uses ipcfg functions in replacement of RTCS functions everywhere else in program.
After my unbind, I get error 10419 returning for ipcfg_init_device function.
What gives?
void rtcs_init()
{
IPCFG_IP_ADDRESS_DATA ip_data;
_enet_address enet_address;
uint32_t error;
if (rtcs_started == 0){
error = RTCS_create();
if (error != RTCS_OK)
{
printf("\nRTCS failed to initialize, error = %X", error);
_task_block();
}
_IP_forward = TRUE;
}
else{
ipcfg_unbind(ENET_DEVICE);
printf("Unbinded\n");
}
#ifdef BSP_ENET_DEVICE_COUNT
#if (BSP_ENET_DEVICE_COUNT > 0)
/*Following section is relevant only in case there as some enet driver available in BSP (FEC, MACNET, WIFI or other enet driver)*/
if (strlen(ethIpStr) >= 7){
ip_data.ip = IPADDR(strtok(ethIpStr,"."),strtok(NULL,"."),strtok(NULL,"."),strtok(NULL,NULL));
//ip_data.ip = IPADDR(10,1,100,4);
}
else{
ip_data.ip = ENET_IPADDR;
}
if (strlen(ethSubnetStr) >= 7){
ip_data.mask = IPADDR(strtok(ethSubnetStr,"."),strtok(NULL,"."),strtok(NULL,"."),strtok(NULL,NULL));
//ip_data.mask = IPADDR(255,255,254,0);
}
else{
ip_data.mask = ENET_IPMASK;
}
if (strlen(ethGwStr) >= 7){
ip_data.gateway = IPADDR(strtok(ethGwStr,"."),strtok(NULL,"."),strtok(NULL,"."),strtok(NULL,NULL));
//ip_data.gateway = IPADDR(10,1,100,1);
}
else{
ip_data.gateway = ENET_GATEWAY;
}
//ip_data.ip = ENET_IPADDR;
//ip_data.mask = ENET_IPMASK;
//ip_data.gateway = ENET_GATEWAY;
/* calcualte unique mac address from IP ADDRES */
ENET_get_mac_address(ENET_DEVICE, ip_data.ip, enet_address);
error = ipcfg_init_device(ENET_DEVICE, enet_address);
if (error != RTCS_OK)
{
printf("\nFailed to initialize ethernet device, error = %X", error);
_task_block();
}
#if DEMOCFG_USE_WIFI
wifi_params_init();
set_wifi_callback();
wifi_param_connect(gp_WIFI_Params);
if(!wifi_get_property(gp_WIFI_Params, WIFI_WIFI_CONNECTED))
return; // Wi-Fi not connected, give up on rest of networking initialization
#endif //DEMOCFG_USE_WIFI
#if RTCSCFG_ENABLE_LWDNS
LWDNS_server_ipaddr = ip_data.gateway;
ipcfg_add_dns_ip(ENET_DEVICE,LWDNS_server_ipaddr);
#endif /* RTCSCFG_ENABLE_LWDNS */
printf("\nWaiting for ethernet cable plug in ... ");
while(!ipcfg_get_link_active(ENET_DEVICE)) {};
printf("Cable connected\n");
#if RTCS_DHCP
printf("Contacting DHCP server ... ");
error = ipcfg_bind_dhcp_wait(ENET_DEVICE, FALSE, &ip_data);
#else
printf("Setting static IP address ... ");
error = ipcfg_bind_staticip (ENET_DEVICE, &ip_data);
#endif /* RTCS_DHCP */
if (error != IPCFG_ERROR_OK)
{
printf("\nRTCS failed to bind interface with IPv4, error = %X", error);
_task_block();
}
else
{
printf("OK\n");
}
ipcfg_get_ip(ENET_DEVICE, &ip_data);
printf("\nIP Address : %d.%d.%d.%d\n",IPBYTES(ip_data.ip));
printf("\nSubnet Address : %d.%d.%d.%d\n",IPBYTES(ip_data.mask));
printf("\nGateway Address : %d.%d.%d.%d\n",IPBYTES(ip_data.gateway));
printf("\nDNS Address : %d.%d.%d.%d\n",IPBYTES(ipcfg_get_dns_ip(ENET_DEVICE,0)));
#endif /* BSP_ENET_DEVICE_COUNT > 0 */
#endif /* BSP_ENET_DEVICE_COUNT */
#if RTCS_PPP
PPP_start();
#endif /* RTCS_PPP */
/* TODO: start server(s) in separate tasks */
}