[tuxdroid-svn] r1062 - software_suite_v2/middleware/tuxdriver/trunk/src
Status: Beta
Brought to you by:
ks156
From: eFfeM <c2m...@c2...> - 2008-05-01 11:58:13
|
Author: eFfeM Date: 2008-05-01 13:58:08 +0200 (Thu, 01 May 2008) New Revision: 1062 Modified: software_suite_v2/middleware/tuxdriver/trunk/src/tux_pong.c software_suite_v2/middleware/tuxdriver/trunk/src/tux_sw_status.c Log: reworked tux_pong.c to using integer values and cleaned up a few things Modified: software_suite_v2/middleware/tuxdriver/trunk/src/tux_pong.c =================================================================== --- software_suite_v2/middleware/tuxdriver/trunk/src/tux_pong.c 2008-05-01 09:50:30 UTC (rev 1061) +++ software_suite_v2/middleware/tuxdriver/trunk/src/tux_pong.c 2008-05-01 11:58:08 UTC (rev 1062) @@ -18,57 +18,55 @@ * 02111-1307, USA. */ -#include <math.h> - #include "tux_hw_status.h" #include "tux_hw_cmd.h" #include "tux_pong.h" #include "tux_sw_status.h" #include "tux_usb.h" -static unsigned char received_pong = 0; -static float average_stack[10]; +#define STACK_SIZE 10 + +static int average_stack[STACK_SIZE]; static unsigned char stack_idx = 0; static unsigned char stack_fill_count = 0; -static unsigned char get_count = 0; /** * */ static void -stack_insert(float value) +stack_insert(int value) { - if (value > 100.0) + if (value > 100) { - value = 100.0; + value = 100; } average_stack[stack_idx] = value; stack_idx++; - if (stack_fill_count < 10) + if (stack_fill_count < STACK_SIZE) { stack_fill_count++; } - stack_idx %= 10; + stack_idx %= STACK_SIZE; } /** * */ -static float +static int stack_average(void) { unsigned char i; - float average = 0.0; + int average = 0; for (i = 0; i < stack_fill_count; i++) { average += average_stack[i]; } - return (average / (stack_fill_count * 1.0)); + return (average / stack_fill_count); } /** @@ -77,24 +75,20 @@ LIBLOCAL void tux_pong_update(void) { - unsigned char new_pending; - float average; - float local_average; - float last_average; + static unsigned char received_pong = 0; + int average; + int last_average; received_pong++; - new_pending = hw_status_table.pong.pongs_pending_number; - if (new_pending <= 190) + if (hw_status_table.pong.pongs_pending_number <= 190) { - local_average = received_pong * 10.0; - - if (local_average > 10.0) + if (received_pong > 1) { - stack_insert(local_average); + stack_insert(received_pong * 10); average = stack_average(); - last_average = *(float *)tux_sw_status_get_value(SW_ID_CONNECTION_QUALITY); - if (fabs(last_average - average) >= 1.0) + last_average = *(int *)tux_sw_status_get_value(SW_ID_CONNECTION_QUALITY); + if (average != last_average) { tux_sw_status_set_value(SW_ID_CONNECTION_QUALITY, (void *)&average, true); @@ -110,8 +104,9 @@ LIBLOCAL void tux_pong_get(void) { - unsigned char frame[TUX_SEND_LENGTH - 1] = { TUX_PONG_PING_CMD, - 200, 0, 0}; + static unsigned char get_count = 0; + const unsigned char frame[TUX_SEND_LENGTH - 1] = + { TUX_PONG_PING_CMD, 200, 0, 0}; get_count++; Modified: software_suite_v2/middleware/tuxdriver/trunk/src/tux_sw_status.c =================================================================== --- software_suite_v2/middleware/tuxdriver/trunk/src/tux_sw_status.c 2008-05-01 09:50:30 UTC (rev 1061) +++ software_suite_v2/middleware/tuxdriver/trunk/src/tux_sw_status.c 2008-05-01 11:58:08 UTC (rev 1062) @@ -211,8 +211,8 @@ tux_sw_status_set_value(SW_ID_RIGHT_LED_STATE, STRING_VALUE_OFF, false); - init_status_struct(SW_ID_CONNECTION_QUALITY, ID_FMT_FLOAT, - "connection_quality", "range[0.0..100.0]"); + init_status_struct(SW_ID_CONNECTION_QUALITY, ID_FMT_INT, + "connection_quality", "range[0..100]"); init_status_struct(SW_ID_AUDIO_FLASH_PLAY, ID_FMT_STRING, "audio_flash_play", "TRACK_<range[0..255]>|STOP"); |