[tuxdroid-svn] r243 - svnlook: warning: cannot set LC_CTYPE locale svnlook: warning: environment va
Status: Beta
Brought to you by:
ks156
From: svnlook:warning@affinitic.be:cannot s. L. l. <c2m...@c2...> - 2007-04-13 09:25:00
|
Author: svnlook: warning: cannot set LC_CTYPE locale Date: svnlook: warning: environment variable LANG is EN New Revision: 243 Modified: daemon/trunk/libs/USBDaemon_command_tux.c daemon/trunk/libs/USBDaemon_tcp_server.c daemon/trunk/libs/USBDaemon_tcp_server.h daemon/trunk/libs/USBDaemon_usb_enum.c daemon/trunk/libs/USBDaemon_usb_readWrite.c Log: remi 2007-04-13 11:24:31 +0200 (Fri, 13 Apr 2007) 156 UPD Function to disconnect a client has been added. This function cleans the 'tcp_clients_handle' table. The detection of the dongle presence has been moved svnlook: warning: cannot set LC_CTYPE locale svnlook: warning: environment variable LANG is EN svnlook: warning: please check that your locale name is correct Modified: daemon/trunk/libs/USBDaemon_command_tux.c =================================================================== --- daemon/trunk/libs/USBDaemon_command_tux.c 2007-04-13 08:48:33 UTC (rev 242) +++ daemon/trunk/libs/USBDaemon_command_tux.c 2007-04-13 09:24:31 UTC (rev 243) @@ -236,9 +236,7 @@ /* Byte 2 equal id client to disconnect */ if (tcp_clients_handle[data[1]] >= 0) { - tcp_clients_handle[data[1]] = -1; - tcp_clients_count--; - printf("TCP socket : Client %d is disconnected\n", data[1]); + tcp_remove_client(data[1]); result[0] = ACK_CMD_OK; } else @@ -249,10 +247,7 @@ break; case SUB_D_CMD_STRUC_DISCONNECT_CLIENT_ME: pthread_mutex_lock(&tcp_mutex); - close(tcp_clients_handle[id_client]); - tcp_clients_handle[id_client] = -1; - tcp_clients_count--; - printf("TCP socket : Client %d is disconnected\n", id_client); + tcp_remove_client(id_client); result[0] = ACK_CMD_NO_ACK; pthread_mutex_unlock(&tcp_mutex); break; Modified: daemon/trunk/libs/USBDaemon_tcp_server.c =================================================================== --- daemon/trunk/libs/USBDaemon_tcp_server.c 2007-04-13 08:48:33 UTC (rev 242) +++ daemon/trunk/libs/USBDaemon_tcp_server.c 2007-04-13 09:24:31 UTC (rev 243) @@ -161,10 +161,7 @@ r = recv(tcp_clients_handle[i], datas_recv, sizeof(datas_recv), 0); if (r == 0) { - close(tcp_clients_handle[i]); - tcp_clients_handle[i] = -1; - tcp_clients_count--; - printf("TCP socket : Client %d is disconnected READ\n", i); + tcp_remove_client(i); } else if (r > 0) { @@ -200,10 +197,7 @@ if (send(tcp_clients_handle[i], data, sizeof(tcp_frame_t), 0) == 0) { - close(tcp_clients_handle[i]); - tcp_clients_handle[i] = -1; - tcp_clients_count--; - printf("TCP socket : Client %d is disconnected WRITE ALL\n", i); + tcp_remove_client(i); } } @@ -227,10 +221,7 @@ { if (send(tcp_clients_handle[client_index], data, sizeof(tcp_frame_t), 0) == 0) { - close(tcp_clients_handle[client_index]); - tcp_clients_handle[client_index] = -1; - tcp_clients_count--; - printf("TCP socket : Client %d is disconnected WRITE client\n", client_index); + tcp_remove_client(client_index); } } @@ -258,3 +249,23 @@ usleep(10000); } + +/************************************************************************ */ +/* Remove a tcp client */ +/************************************************************************ */ +void tcp_remove_client(unsigned char id_client) +{ + unsigned char i,j; + int tmp_handle; + + tmp_handle = tcp_clients_handle[id_client]; + tcp_clients_handle[id_client] = -1; + tcp_clients_count--; + close(tmp_handle); + for(i = id_client; i < 255; i++) + { + tcp_clients_handle[i] = tcp_clients_handle[i+1]; + for(j = 0; j < 16; j++) + tcp_clients_name[i][j] = tcp_clients_name[i+1][j]; + } +} Modified: daemon/trunk/libs/USBDaemon_tcp_server.h =================================================================== --- daemon/trunk/libs/USBDaemon_tcp_server.h 2007-04-13 08:48:33 UTC (rev 242) +++ daemon/trunk/libs/USBDaemon_tcp_server.h 2007-04-13 09:24:31 UTC (rev 243) @@ -52,3 +52,4 @@ extern void tcp_server_send_raw(const tcp_frame_t data); extern void tcp_server_send_raw_to_client(int client_index, const tcp_frame_t data); extern void send_daemon_disconnected(); +extern void tcp_remove_client(unsigned char id_client); \ No newline at end of file Modified: daemon/trunk/libs/USBDaemon_usb_enum.c =================================================================== --- daemon/trunk/libs/USBDaemon_usb_enum.c 2007-04-13 08:48:33 UTC (rev 242) +++ daemon/trunk/libs/USBDaemon_usb_enum.c 2007-04-13 09:24:31 UTC (rev 243) @@ -105,6 +105,8 @@ /************************************************************************ */ void usb_start_task() { + unsigned char dongle_is_present_counter; + pthread_mutex_init(&usb_mutex, NULL); /* Find Tux */ do @@ -145,8 +147,19 @@ send_usb_dongle_cmd(0x02, 0, 0, 0); current_audio_channel = 0; /* Read loop */ + dongle_is_present_counter = 0; while(tux_handle) { + /* Make circular the variable to 16 values */ + dongle_is_present_counter = (dongle_is_present_counter + 1) & 0x0F; + /* Once on 16, we test the presence of the dongle */ + if (dongle_is_present_counter == 0) + if (usb_find_TuxDroid() == NULL) + { + printf("Tux dongle is disconnected\n"); + send_daemon_disconnected(); + exit(1); + } usb_get_status_TuxDroid(); usleep(50000); } Modified: daemon/trunk/libs/USBDaemon_usb_readWrite.c =================================================================== --- daemon/trunk/libs/USBDaemon_usb_readWrite.c 2007-04-13 08:48:33 UTC (rev 242) +++ daemon/trunk/libs/USBDaemon_usb_readWrite.c 2007-04-13 09:24:31 UTC (rev 243) @@ -26,8 +26,6 @@ #include "USBDaemon_status_table.h" #include "USBDaemon_tcp_server.h" #include "USBDaemon_usb_readWrite.h" -/*_____________________ V A R I A B L E S __________________________________*/ -unsigned char busy_count = 0; /*_____________________ F U N C T I O N S __________________________________*/ /************************************************************************ */ @@ -88,21 +86,10 @@ sizeof(cmd_send), TUX_WRITE_TIMEOUT); if (idx <= 0) { - busy_count++; - if (busy_count > 9) - { - printf("Error : Tux dongle is busy or disconnected\n"); - send_daemon_disconnected(); - - pthread_mutex_unlock(&usb_mutex); - exit(1); - } - pthread_mutex_unlock(&usb_mutex); return; } - busy_count = 0; idx = usb_interrupt_read(tux_handle, TUX_READ_EP, (char*)data, sizeof(data), TUX_READ_TIMEOUT); if (idx <= 0) |