[tuxdroid-svn] r976 - software_suite_v2/middleware/tuxdriver/trunk/src
Status: Beta
Brought to you by:
ks156
From: eFfeM <c2m...@c2...> - 2008-04-20 10:31:21
|
Author: eFfeM Date: 2008-04-20 12:31:21 +0200 (Sun, 20 Apr 2008) New Revision: 976 Modified: software_suite_v2/middleware/tuxdriver/trunk/src/tux_firmware.c Log: clean includes, layout Modified: software_suite_v2/middleware/tuxdriver/trunk/src/tux_firmware.c =================================================================== --- software_suite_v2/middleware/tuxdriver/trunk/src/tux_firmware.c 2008-04-20 10:22:21 UTC (rev 975) +++ software_suite_v2/middleware/tuxdriver/trunk/src/tux_firmware.c 2008-04-20 10:31:21 UTC (rev 976) @@ -19,14 +19,12 @@ */ #include <stdio.h> -#include <errno.h> #include <string.h> -#include <stdlib.h> + #include "tux_descriptor.h" -#include "tux_usb.h" +#include "tux_firmware.h" #include "tux_hw_status.h" #include "tux_sw_status.h" -#include "tux_firmware.h" #include "tux_usb.h" /** State of the versioning state machine. */ @@ -187,44 +185,44 @@ static void dump_descriptor_of_cpu(char *descriptor, firmware_descriptor_t *desc) { - char tmp_str[80] = ""; + char tmp_str[80] = ""; - sprintf(tmp_str, " CPU id : \t\t\t%d\n", - desc->cpu_id); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " CPU name : \t\t\t%s\n", - cpu_id_to_name(desc->cpu_id)); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " Version major : \t\t%d\n", - desc->version_major); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " Version minor : \t\t%d\n", - desc->version_minor); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " Version update : \t\t%d\n", - desc->version_update); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " Revision : \t\t\t%d\n", - desc->revision); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " Released : \t\t\t%s\n", - desc->release ? "True" : "False"); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " Local modification : \t%s\n", - desc->local_modification ? "True" : "False"); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " Mixed revisions : \t\t%s\n", - desc->mixed_revisions ? "True" : "False"); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " Author id : \t\t%d\n", - desc->author); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " Variation : \t\t%d\n", - desc->variation); - strcat(descriptor, tmp_str); - sprintf(tmp_str, " Symbolic version : \t\t[%s]\n", - desc->version_string); - strcat(descriptor, tmp_str); + sprintf(tmp_str, " CPU id : \t\t\t%d\n", + desc->cpu_id); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " CPU name : \t\t\t%s\n", + cpu_id_to_name(desc->cpu_id)); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " Version major : \t\t%d\n", + desc->version_major); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " Version minor : \t\t%d\n", + desc->version_minor); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " Version update : \t\t%d\n", + desc->version_update); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " Revision : \t\t\t%d\n", + desc->revision); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " Released : \t\t\t%s\n", + desc->release ? "True" : "False"); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " Local modification : \t%s\n", + desc->local_modification ? "True" : "False"); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " Mixed revisions : \t\t%s\n", + desc->mixed_revisions ? "True" : "False"); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " Author id : \t\t%d\n", + desc->author); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " Variation : \t\t%d\n", + desc->variation); + strcat(descriptor, tmp_str); + sprintf(tmp_str, " Symbolic version : \t\t[%s]\n", + desc->version_string); + strcat(descriptor, tmp_str); return; } @@ -235,26 +233,30 @@ LIBLOCAL void tux_firmware_dump_descriptor(char *descriptor) { - char tmp_str[80] = ""; - int i; + char tmp_str[80] = ""; + int i; - strcat(descriptor, "- Firmwares\n"); + strcat(descriptor, "- Firmwares\n"); - if (firmware_release_desc.version_string[0] == '\0') { - sprintf(tmp_str, " - %s : \t[%s]\n", - RELEASE_STR_NAME, UNOFFICIAL_RELEASE_STR); - strcat(descriptor, tmp_str); - } else { - sprintf(tmp_str, " - %s : \t[%s]\n", - RELEASE_STR_NAME, firmware_release_desc.version_string); - strcat(descriptor, tmp_str); + if (firmware_release_desc.version_string[0] == '\0') + { + sprintf(tmp_str, " - %s : \t[%s]\n", + RELEASE_STR_NAME, UNOFFICIAL_RELEASE_STR); + strcat(descriptor, tmp_str); } + else + { + sprintf(tmp_str, " - %s : \t[%s]\n", + RELEASE_STR_NAME, firmware_release_desc.version_string); + strcat(descriptor, tmp_str); + } - for (i = 0; i < NUMBER_OF_CPU; i++) { - sprintf(tmp_str, " - CPU %d\n", i + 1); - strcat(descriptor, tmp_str); - - dump_descriptor_of_cpu(descriptor, &firmwares_desc[i]); + for (i = 0; i < NUMBER_OF_CPU; i++) + { + sprintf(tmp_str, " - CPU %d\n", i + 1); + strcat(descriptor, tmp_str); + + dump_descriptor_of_cpu(descriptor, &firmwares_desc[i]); } return; @@ -286,7 +288,9 @@ firmware_descriptor_t *f_desc; if (current_cpu == INVALID_CPU_NUM) + { return; + } f_desc = &firmwares_desc[current_cpu]; f_desc->revision = hw_status_table.revision.msb_number << 8; @@ -321,7 +325,9 @@ firmware_descriptor_t *f_desc; if (current_cpu == INVALID_CPU_NUM) + { return; + } f_desc = &firmwares_desc[current_cpu]; f_desc->author = hw_status_table.author.msb_id << 8; @@ -348,9 +354,13 @@ ret = tux_usb_send_to_tux(data); if (ret) + { return 1; + } else + { return 0; + } } /** @@ -365,10 +375,17 @@ unsigned char const author[4] = {0xC9, 0, 0, 0}; if (cpu_id == TUXRF_CPU_NUM) + { tux_hw_parse_body_version(tuxrf_version); + } - else if (cpu_id == FUXRF_CPU_NUM) - tux_hw_parse_body_version(fuxrf_version); + else + { + if (cpu_id == FUXRF_CPU_NUM) + { + tux_hw_parse_body_version(fuxrf_version); + } + } tux_hw_parse_body_revision(revision); tux_hw_parse_body_author(author); @@ -387,9 +404,13 @@ if ((firmware->version_major != major) || (firmware->version_minor != minor) || (firmware->version_update != update)) + { return false; + } else + { return true; + } } /** @@ -444,66 +465,92 @@ /* Check if all firmwares is released and it have the same * version */ - while (cpu_num <= HIGHEST_CPU_NUM) { + while (cpu_num <= HIGHEST_CPU_NUM) + { if (first_rf_ver && ((cpu_num == FUXRF_CPU_NUM) || (cpu_num == TUXRF_CPU_NUM))) + { cpu_num ++; - else { + } + else + { firmware = &firmwares_desc[cpu_num]; if (!firmware->release) + { /* Firmware is not released -> FAIL */ return; + } if (!test_fw_ver(firmware, t_major, t_minor, t_update)) + { /* Firmware have not the same version than the first one */ perfect_package = false; + } cpu_num ++; } } /* If the firmware set is not a perfect package */ - if (!perfect_package) { + if (!perfect_package) + { /* Determine the general version major */ cpu_num = LOWEST_CPU_NUM; - while (cpu_num <= HIGHEST_CPU_NUM) { + while (cpu_num <= HIGHEST_CPU_NUM) + { firmware = &firmwares_desc[cpu_num]; if (firmware->version_major > major) + { major = firmware->version_major; + } cpu_num ++; } /* Determine the general version minor */ cpu_num = LOWEST_CPU_NUM; - while (cpu_num <= HIGHEST_CPU_NUM) { + while (cpu_num <= HIGHEST_CPU_NUM) + { firmware = &firmwares_desc[cpu_num]; if ((firmware->version_major == major) && (firmware->version_minor > minor)) + { minor = firmware->version_minor; + } cpu_num ++; } /* Determine the general version update */ cpu_num = LOWEST_CPU_NUM; - while (cpu_num <= HIGHEST_CPU_NUM) { + while (cpu_num <= HIGHEST_CPU_NUM) + { firmware = &firmwares_desc[cpu_num]; if ((firmware->version_major == major) && (firmware->version_minor == minor) && (firmware->version_update > update)) + { update = firmware->version_update; + } cpu_num ++; } /* Test if the firmware set is an official package */ /* release 0.3.1, tuxcore and tuxaudio updated to 0.3.1 */ - if ((major == 0) && (minor == 3) && (update == 1)) { + if ((major == 0) && (minor == 3) && (update == 1)) + { ret = test_fw_ver(&firmwares_desc[TUXCORE_CPU_NUM], 0, 3, 1); ret &= test_fw_ver(&firmwares_desc[TUXAUDIO_CPU_NUM], 0, 3, 1); ret &= test_fw_ver(&firmwares_desc[FUXUSB_CPU_NUM], 0, 3, 0); if (!ret) + { /* Not official package -> FAIL */ return; - } else + } + } + else + { /* Not other special case -> FAIL */ return; - } else { + } + } + else + { major = t_major; minor = t_minor; update = t_update; @@ -529,7 +576,9 @@ tux_firmware_state_machine_call(void) { if (!tux_usb_connected()) + { return; + } switch (versioning_state) { case STDBY: @@ -541,18 +590,22 @@ retries = TUX_FIRMWARE_RETRY_COUNT; break; case INFO_REQ: - if (cpu_num > HIGHEST_CPU_NUM) { + if (cpu_num > HIGHEST_CPU_NUM) + { versioning_state = SPECIAL; break; } - if (firmwares_desc[cpu_num].version_string[0] == '\0') { - if (!retries) { + if (firmwares_desc[cpu_num].version_string[0] == '\0') + { + if (!retries) + { cpu_num++; break; } - if (!send_firmware_versionning_request(cpu_num)) { + if (!send_firmware_versionning_request(cpu_num)) + { retries--; break; } @@ -562,14 +615,16 @@ versioning_state = INFO_GET; break; case INFO_GET: - if (!retries) { + if (!retries) + { cpu_num++; retries = TUX_FIRMWARE_RETRY_COUNT; versioning_state = INFO_REQ; break; } - if (firmwares_desc[cpu_num].version_string[0] != '\0') { + if (firmwares_desc[cpu_num].version_string[0] != '\0') + { cpu_num++; retries = TUX_FIRMWARE_RETRY_COUNT; versioning_state = INFO_REQ; @@ -579,15 +634,23 @@ 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')) + { versioning_state = INIT; + } else + { versioning_state = RELEASE; + } break; case RELEASE: determine_release_package(); @@ -619,7 +682,8 @@ LIBLOCAL void tux_firmware_get_descriptor(void) { - if (versioning_state == STDBY) { + if (versioning_state == STDBY) + { tux_firmware_init_descriptor(); versioning_state = INIT; } |