diff --git a/main/espd.c b/main/espd.c index b249e28..56312b1 100644 --- a/main/espd.c +++ b/main/espd.c @@ -162,6 +162,7 @@ void pd_pollhost( void) xSemaphoreGive(pd_bt_mutex); } + /* this doesn't work as a printhook yet since posts are split into atoms */ void pdmain_print( const char *s) { char y[81]; @@ -172,7 +173,7 @@ void pdmain_print( const char *s) if (strlen(y) > 0) pd_bt_writeback((unsigned char *)y, strlen(y)); #endif -#if 0 /* this doesn't work all that well since posts are split into atoms */ +#if 1 net_sendudp(y, strlen(y), CONFIG_ESP_WIFI_SENDPORT); net_sendtcp(y, strlen(y)); #endif diff --git a/main/pdmain.c b/main/pdmain.c index 3ca7408..de5c7c3 100644 --- a/main/pdmain.c +++ b/main/pdmain.c @@ -69,7 +69,7 @@ extern float soundin[], soundout[]; void canvas_start_dsp( void); void pdmain_init( void) { - sys_printhook = pdmain_print; + /* sys_printhook = pdmain_print; */ pd_init(); STUFF->st_dacsr = sys_getsr(); STUFF->st_soundout = soundout; diff --git a/wifi/net.c b/wifi/net.c index a7b48ae..1804642 100644 --- a/wifi/net.c +++ b/wifi/net.c @@ -73,49 +73,43 @@ void tcpreceivertask(void *z) void udpreceivertask(void *z) { char rx_buffer[1000]; - int ip_protocol = 0, err, newsocket; + int ip_protocol = 0, err, udpsocket; struct sockaddr_in dest_addr; ESP_LOGI(TAG, "udpreceivertask starting..."); - dest_addr.sin_addr.s_addr = inet_addr(CONFIG_ESP_WIFI_SENDADDR); + dest_addr.sin_addr.s_addr = htonl(INADDR_ANY); dest_addr.sin_family = AF_INET; - dest_addr.sin_port = htons(CONFIG_ESP_WIFI_SENDPORT); + dest_addr.sin_port = htons(CONFIG_ESP_WIFI_LISTENPORT); - newsocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); - if (newsocket < 0) { + udpsocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); + if (udpsocket < 0) { ESP_LOGE(TAG, "Unable to create socket: errno %d", errno); return; } - ESP_LOGI(TAG, "udp connecting..."); - while (err = connect(newsocket, &dest_addr, sizeof(dest_addr)) < 0) - { - ESP_LOGE(TAG, "Socket unable to bind: errno %d - retrying", errno); - close(newsocket); - vTaskDelay(2000 / portTICK_PERIOD_MS); - newsocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); - if (newsocket < 0) { - ESP_LOGE(TAG, "Unable to create socket: errno %d", errno); - return; - } + ESP_LOGI(TAG, "udp binding..."); + err = bind(udpsocket, (struct sockaddr *)&dest_addr, sizeof(dest_addr)); + if (err < 0) { + ESP_LOGE(TAG, "Socket unable to bind: errno %d", errno); } + ESP_LOGI(TAG, "udp bound. receiving ..."); while (1) { - int len = recv(newsocket, rx_buffer, sizeof(rx_buffer) - 1, 0); + int len = recv(udpsocket, rx_buffer, sizeof(rx_buffer) - 1, 0); if (len < 0) { - ESP_LOGE(TAG, "recvfrom failed: errno %d -- restarting", errno); + ESP_LOGE(TAG, "UDP recvfrom failed: errno %d -- restarting", errno); esp_restart(); } else if (len == 0) { - ESP_LOGE(TAG, "unexpected EOF on socket"); + ESP_LOGE(TAG, "UDP unexpected EOF on socket"); vTaskDelay(500 / portTICK_PERIOD_MS); } else { rx_buffer[len] = 0; - ESP_LOGI(TAG, "rcv: %s", rx_buffer); + ESP_LOGI(TAG, "UDP rcv: %s", rx_buffer); pd_fromhost(rx_buffer, strlen(rx_buffer)); } } @@ -140,7 +134,7 @@ void net_init( void) xTaskCreate(udpreceivertask, "udprcv", 3000, NULL, PRIORITY_WIFI, NULL); while (!tcp_socket) { - ESP_LOGE(TAG, "sendtcp: waiting for socket"); + ESP_LOGI(TAG, "sendtcp: waiting for socket"); vTaskDelay(1000 / portTICK_PERIOD_MS); } }