Author: remi
Date: 2008-12-14 00:18:06 +0100 (Sun, 14 Dec 2008)
New Revision: 3099

Modified:
   software_suite_v2/tuxware/tuxdriver/trunk/src/tux_firmware.c
   software_suite_v2/tuxware/tuxdriver/trunk/src/tux_firmware.h
Log:
* now retrieving the version of the RF firmwares. I never receives the 
"revision" from these firmwares so I was forced to made an exception for these 
ones.
* added a global retries counter because the RF versions are very hard and slow 
to retrieve !!! I need to requesting it many times.

Modified: software_suite_v2/tuxware/tuxdriver/trunk/src/tux_firmware.c
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/src/tux_firmware.c        
2008-12-13 21:32:48 UTC (rev 3098)
+++ software_suite_v2/tuxware/tuxdriver/trunk/src/tux_firmware.c        
2008-12-13 23:18:06 UTC (rev 3099)
@@ -36,6 +36,7 @@
 #include "tux_misc.h"
 #include "tux_sw_status.h"
 #include "tux_usb.h"
+#include "log.h"
 
 /** State of the versioning state machine. */
 static versioning_state_t versioning_state = STDBY;
@@ -46,6 +47,7 @@
 static int cpu_num;
 /** Retries counter of firmware versions */
 static int retries;
+static int global_retries;
 
 /** Descriptor of the firmwares */
 LIBLOCAL firmwares_descriptor_t firmwares_desc;
@@ -191,6 +193,7 @@
     memset(&firmware_release_desc, 0, sizeof(firmware_descriptor_t));
     load_knowed_symbolic_versions();
     versioning_state = STDBY;
+    global_retries = TUX_FIRMWARE_GLOBAL_RETRY_COUNT;
 }
 
 /**
@@ -278,6 +281,15 @@
     f_desc->version_major = hw_status_table.version.cm.bits.major;
     f_desc->version_minor = hw_status_table.version.minor;
     f_desc->version_update = hw_status_table.version.update;
+
+    if ((current_cpu == TUXRF_CPU_NUM) || (current_cpu == FUXRF_CPU_NUM))
+    {
+        sprintf(f_desc->version_string, "%s_%d.%d.%d",
+            cpu_id_to_name(current_cpu),
+            f_desc->version_major,
+            f_desc->version_minor,
+            f_desc->version_update);
+    }
 }
 
 /**
@@ -648,19 +660,27 @@
         retries--;
         break;
     case SPECIAL:
-        if (firmwares_desc[TUXRF_CPU_NUM].version_string[0] == '\0')
-        {
-            special_old_versionning(TUXRF_CPU_NUM);
-        }
-        if (firmwares_desc[FUXRF_CPU_NUM].version_string[0] == '\0')
-        {
-            special_old_versionning(FUXRF_CPU_NUM);
-        }
-        /* TODO : old FUXUSB cpu */
         if ((firmwares_desc[TUXCORE_CPU_NUM].version_string[0] == '\0') ||
-            (firmwares_desc[TUXAUDIO_CPU_NUM].version_string[0] == '\0'))
+            (firmwares_desc[TUXAUDIO_CPU_NUM].version_string[0] == '\0') ||
+            (firmwares_desc[TUXRF_CPU_NUM].version_string[0] == '\0') ||
+            (firmwares_desc[FUXRF_CPU_NUM].version_string[0] == '\0'))
         {
-            versioning_state = INIT;
+            if (global_retries)
+            {
+                versioning_state = INIT;
+                global_retries--;
+            }
+            else
+            {
+                if (firmwares_desc[TUXRF_CPU_NUM].version_string[0] == '\0')
+                {
+                    special_old_versionning(TUXRF_CPU_NUM);
+                }
+                if (firmwares_desc[FUXRF_CPU_NUM].version_string[0] == '\0')
+                {
+                    special_old_versionning(FUXRF_CPU_NUM);
+                }
+            }
         }
         else
         {

Modified: software_suite_v2/tuxware/tuxdriver/trunk/src/tux_firmware.h
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/src/tux_firmware.h        
2008-12-13 21:32:48 UTC (rev 3098)
+++ software_suite_v2/tuxware/tuxdriver/trunk/src/tux_firmware.h        
2008-12-13 23:18:06 UTC (rev 3099)
@@ -54,6 +54,7 @@
 #define UNOFFICIAL_RELEASE_STR                      "Unofficial package"
 /** \brief Number of retry count for the firmware versions retrieving */
 #define TUX_FIRMWARE_RETRY_COUNT                    4
+#define TUX_FIRMWARE_GLOBAL_RETRY_COUNT             4
 
 /** \brief CPU identifiers */
 typedef enum


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to